tamlBinaryParser.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #ifndef _TAML_BINARYPARSER_H_
  3. #ifndef _TAML_PARSER_H_
  4. #include "persistence/taml/tamlParser.h"
  5. #endif
  6. #ifndef _TAML_VISITOR_H_
  7. #include "persistence/taml/tamlVisitor.h"
  8. #endif
  9. #ifndef _STREAM_H_
  10. #include "core/stream/stream.h"
  11. #endif
  12. #ifndef _FILESTREAM_H_
  13. #include "core/stream/fileStream.h"
  14. #endif
  15. class TamlBinaryParser : public TamlParser
  16. {
  17. public:
  18. TamlBinaryParser() {}
  19. virtual ~TamlBinaryParser() {}
  20. /// Whether the parser can change a property or not.
  21. bool canChangeProperty(void) override { return false; }
  22. /// Accept visitor.
  23. bool accept(const char* pFilename, TamlVisitor& visitor) override;
  24. private:
  25. bool parseElement(Stream& stream, TamlVisitor& visitor, const U32 versionId);
  26. void parseAttributes(Stream& stream, TamlVisitor& visitor, const U32 versionId, TamlVisitor::PropertyState& state);
  27. void parseChildren(Stream& stream, TamlVisitor& visitor, const U32 versionId);
  28. void parseCustomElements(Stream& stream, TamlVisitor& visitor, const U32 versionId);
  29. bool parseCustomNode(Stream& stream, TamlVisitor& visitor, const U32 versionId, TamlVisitor::PropertyState& state);
  30. bool isRoot;
  31. };
  32. #endif // !_TAML_BINARYPARSER_H_