rpcs3/parser.h
2008-07-01 06:28:10 +00:00

36 lines
715 B
C++

#pragma once
#include <ios>
#include <string>
#include <vector>
#include <map>
#include "document.h"
#include "parserstate.h"
namespace YAML
{
class Node;
class Scanner;
class Parser
{
public:
Parser(std::istream& in);
~Parser();
operator bool() const;
void GetNextDocument(Document& document);
void PrintTokens(std::ostream& out);
private:
void ParseDirectives();
void HandleDirective(const std::string& name, const std::vector <std::string>& params);
void HandleYamlDirective(const std::vector <std::string>& params);
void HandleTagDirective(const std::vector <std::string>& params);
private:
Scanner *m_pScanner;
ParserState m_state;
};
}