#ifndef LOADER_PARSER_H_
#define LOADER_PARSER_H_
+#include "fwd.h"
#include "ParsedSource.h"
#include "Tokenizer.h"
namespace loader {
-class Declaration;
-class Definition;
-class Literal;
-class PropertyList;
-
class Parser {
public:
Literal *ParseArray();
Literal *ParseColor();
Literal *ParseVector();
+ Literal *ParseScript();
private:
void AssertTokenType(Tokenizer::Token::Type actual, Tokenizer::Token::Type expected);
void AssertTokenType(Tokenizer::Token::Type actual, Tokenizer::Token::Type expected, const std::string &msg);
bool BeginningOfLiteral(const Tokenizer::Token &) const;
+ bool BeginningOfPrimitiveLiteral(const Tokenizer::Token &) const;
bool BeginOfPropertyList(const Tokenizer::Token &) const;
+ bool BeginningOfScriptLiteral(const Tokenizer::Token &) const;
private:
std::string file;