"...research_projects/multi_subject_dreambooth/README.md" did not exist on "7674a36a34556c9f478f63c3bfb0670ad398f892"
parser.h 765 Bytes
Newer Older
1
2
3
#pragma once

#include <ios>
4
5
6
#include <string>
#include <vector>
#include <map>
7
#include "node.h"
8
#include "parserstate.h"
9
10
11

namespace YAML
{
12
	class Scanner;
13
	struct Token;
14
15
16
17
18
19
20

	class Parser
	{
	public:
		Parser(std::istream& in);
		~Parser();

21
22
		operator bool() const;

23
		void Load(std::istream& in);
24
		void GetNextDocument(Node& document);
25
26
27
28
		void PrintTokens(std::ostream& out);

	private:
		void ParseDirectives();
29
30
31
		void HandleDirective(Token *pToken);
		void HandleYamlDirective(Token *pToken);
		void HandleTagDirective(Token *pToken);
32

33
34
35
36
37
	private:
		// can't copy this
		Parser(const Parser& rhs) {}
		Parser& operator = (const Parser& rhs) { return *this; }

38
	private:
39
		Scanner *m_pScanner;
40
		ParserState m_state;
41
42
	};
}