node.h 636 Bytes
Newer Older
beder's avatar
beder committed
1
2
3
#pragma once

#include <string>
4
#include <ios>
beder's avatar
beder committed
5
6
7

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

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

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

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

	private:
		void ParseHeader(Scanner *pScanner);
27
28
29
		void ParseTag(Scanner *pScanner);
		void ParseAnchor(Scanner *pScanner);
		void ParseAlias(Scanner *pScanner);
30

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