X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FParser.cpp;h=01ddbe2bbdd19670bee0bcd0f88244063497d542;hb=795bcbebfc3a63f374f8da0790af5b7105adb68a;hp=bd65200ab8bc674bf983d4791962231d5ab21a40;hpb=f3230836ca2e263e84b58ffec6645c0f77439117;p=l2e.git diff --git a/src/loader/Parser.cpp b/src/loader/Parser.cpp index bd65200..01ddbe2 100644 --- a/src/loader/Parser.cpp +++ b/src/loader/Parser.cpp @@ -107,6 +107,7 @@ Declaration *Parser::ProbeDefinition() { bool Parser::BeginningOfLiteral(const Tokenizer::Token &t) const { switch (t.type) { case Tokenizer::Token::CHEVRON_OPEN: + case Tokenizer::Token::COLON: case Tokenizer::Token::BRACKET_OPEN: case Tokenizer::Token::PARENTHESIS_OPEN: case Tokenizer::Token::NUMBER: @@ -205,6 +206,10 @@ Literal *Parser::ParseLiteral() { case Tokenizer::Token::CHEVRON_OPEN: tok.Putback(t); return ParseVector(); + case Tokenizer::Token::COLON: + t = GetToken(); + AssertTokenType(t.type, Tokenizer::Token::STRING); + return new Literal(dirname, t.str); case Tokenizer::Token::BRACKET_OPEN: tok.Putback(t); return ParseArray(); @@ -282,7 +287,7 @@ Literal *Parser::ParseColor() { AssertTokenType(blue.type, Tokenizer::Token::NUMBER, "error parsing blue component of color"); t = GetToken(); - if (t.type == Tokenizer::Token::BRACKET_CLOSE) { + if (t.type == Tokenizer::Token::PARENTHESIS_CLOSE) { return new Literal(red.number, green.number, blue.number); } else if (t.type != Tokenizer::Token::COMMA) { Tokenizer::Token alpha(GetToken());