Added directives and tags.

This commit is contained in:
Jesse Beder 2008-06-30 04:22:41 +00:00
parent 2b8628922f
commit 07d4cac48f
6 changed files with 120 additions and 159 deletions

15
token.h
View file

@ -1,6 +1,8 @@
#pragma once
#include <ios>
#include <string>
#include <vector>
namespace YAML
{
@ -17,6 +19,13 @@ namespace YAML
struct StreamStartToken: public Token {};
struct StreamEndToken: public Token {};
struct DirectiveToken: public Token {
std::string name;
std::vector <std::string> params;
virtual void Write(std::ostream& out) const { out << name; for(unsigned i=0;i<params.size();i++) out << " " << params[i]; }
};
struct DocumentStartToken: public Token {};
struct DocumentEndToken: public Token {};
@ -40,6 +49,12 @@ namespace YAML
virtual void Write(std::ostream& out) const { out << (alias ? '*' : '&') << value; }
};
struct TagToken: public Token {
std::string handle, suffix;
virtual void Write(std::ostream& out) const { out << "!" << handle << "!" << suffix; }
};
struct ScalarToken: public Token {
std::string value;
virtual void Write(std::ostream& out) const { out << value; }