Big YAML parser cleanup
This commit is contained in:
parent
687de91a81
commit
d20e4154fe
13 changed files with 409 additions and 207 deletions
45
src/yaml/scene_parser.hh
Normal file
45
src/yaml/scene_parser.hh
Normal 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__ */
|
Loading…
Add table
Add a link
Reference in a new issue