parser.cpp 585 Bytes
Newer Older
beder's avatar
beder committed
1
2
#include "parser.h"
#include "node.h"
beder's avatar
beder committed
3
4
5
#include "token.h"

#include <iostream>
beder's avatar
beder committed
6
7
8

namespace YAML
{
beder's avatar
beder committed
9
	Parser::Parser(std::istream& in): m_scanner(in)
beder's avatar
beder committed
10
	{
beder's avatar
beder committed
11
12
13
		// eat the stream start token
		// TODO: check?
		Token *pToken = m_scanner.GetNextToken();
beder's avatar
beder committed
14
15
16
17
18
19
	}

	Parser::~Parser()
	{
	}

beder's avatar
beder committed
20
	void Parser::GetNextDocument(Document& document)
beder's avatar
beder committed
21
	{
beder's avatar
beder committed
22
23
24
25
26
		// scan and output, for now
		while(1) {
			Token *pToken = m_scanner.GetNextToken();
			if(!pToken)
				break;
beder's avatar
beder committed
27

beder's avatar
beder committed
28
29
			std::cout << typeid(*pToken).name() << ": " << *pToken << std::endl;
			delete pToken;
beder's avatar
beder committed
30
		}
beder's avatar
beder committed
31
		getchar();
beder's avatar
beder committed
32
33
	}
}