Big YAML parser cleanup

This commit is contained in:
Eryn Wells 2014-07-15 17:27:27 -07:00
parent 687de91a81
commit d20e4154fe
13 changed files with 409 additions and 207 deletions

45
src/yaml/scene_parser.hh Normal file
View file

@ -0,0 +1,45 @@
/* scene_parser.hh
* vim: set tw=80:
* Eryn Wells <eryn@erynwells.me>
*/
/**
* A SceneParser parses a YAML Scene object.
*/
#ifndef __YAML_SCENE_PARSER_HH__
#define __YAML_SCENE_PARSER_HH__
#include "parsers.hh"
namespace yaml {
struct SceneParser
: public Parser
{
SceneParser(Scene& scene, ParserStack& parsers);
~SceneParser();
void HandleEvent(yaml_event_t& event);
void HandleTopLevelEvent(yaml_event_t& event);
void HandleDimensionsEvent(yaml_event_t& event);
private:
enum {
NoSection,
CameraSection,
DimensionsSection,
ObjectsSection,
} mSection;
enum {
NoDimension,
HeightDimension,
WidthDimension,
DoneDimension
} mDimension;
};
} /* namespace yaml */
#endif /* __YAML_SCENE_PARSER_HH__ */