1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #ifndef PARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
- #define PARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
- #if defined(_MSC_VER) || \
- (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
- (__GNUC__ >= 4))
- #pragma once
- #endif
- #include <ios>
- #include <memory>
- #include "yaml-cpp/dll.h"
- #include "yaml-cpp/noncopyable.h"
- namespace YAML {
- class EventHandler;
- class Node;
- class Scanner;
- struct Directives;
- struct Token;
- class YAML_CPP_API Parser : private noncopyable {
- public:
-
- Parser();
-
- explicit Parser(std::istream& in);
- ~Parser();
-
- explicit operator bool() const;
-
- void Load(std::istream& in);
-
- bool HandleNextDocument(EventHandler& eventHandler);
- void PrintTokens(std::ostream& out);
- private:
-
- void ParseDirectives();
- void HandleDirective(const Token& token);
-
- void HandleYamlDirective(const Token& token);
-
- void HandleTagDirective(const Token& token);
- private:
- std::unique_ptr<Scanner> m_pScanner;
- std::unique_ptr<Directives> m_pDirectives;
- };
- }
- #endif
|