"vscode:/vscode.git/clone" did not exist on "ba787edee4439e867c041ec5d2a45c485bf00c94"
node.h 792 Bytes
Newer Older
beder's avatar
beder committed
1
2
3
#pragma once

#include <string>
4
#include <ios>
5
#include "parserstate.h"
beder's avatar
beder committed
6
7
8

namespace YAML
{
9
10
11
12
13
	const std::string StrTag = "!!str";
	const std::string SeqTag = "!!seq";
	const std::string MapTag = "!!map";

	class Content;
14
	class Scanner;
beder's avatar
beder committed
15
16
17
18
19
20
21

	class Node
	{
	public:
		Node();
		~Node();

22
		void Clear();
23
		void Parse(Scanner *pScanner, const ParserState& state);
24
25
26
		void Write(std::ostream& out, int indent);

	private:
27
28
29
30
		void ParseHeader(Scanner *pScanner, const ParserState& state);
		void ParseTag(Scanner *pScanner, const ParserState& state);
		void ParseAnchor(Scanner *pScanner, const ParserState& state);
		void ParseAlias(Scanner *pScanner, const ParserState& state);
31

beder's avatar
beder committed
32
	private:
33
34
		bool m_alias;
		std::string m_anchor, m_tag;
35
		Content *m_pContent;
beder's avatar
beder committed
36
37
	};
}