]> git.localhorst.tv Git - l2e.git/blobdiff - src/loader/Parser.cpp
extracted menu properties to a non-template struct
[l2e.git] / src / loader / Parser.cpp
index bd65200ab8bc674bf983d4791962231d5ab21a40..01ddbe2bbdd19670bee0bcd0f88244063497d542 100644 (file)
@@ -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());