]> git.localhorst.tv Git - l2e.git/blobdiff - src/loader/Parser.cpp
revised array type notation
[l2e.git] / src / loader / Parser.cpp
index aa770ff12a55fa1137a1a76511a3246a9d6a73e9..183accbbb728f1cdca9c672b33a2a454c43d94e6 100644 (file)
@@ -254,9 +254,8 @@ Literal *Parser::ParseArray() {
        AssertTokenType(t.type, Tokenizer::Token::BRACKET_OPEN);
 
        Tokenizer::Token probe(GetToken());
-       tok.Putback(probe);
 
-       if (probe.type == Tokenizer::Token::ANGLE_BRACKET_OPEN) {
+       if (probe.type == Tokenizer::Token::TYPE_NAME) {
                vector<PropertyList *> values;
                while (t.type != Tokenizer::Token::BRACKET_CLOSE) {
                        PropertyList *value(ParsePropertyList());
@@ -267,8 +266,10 @@ Literal *Parser::ParseArray() {
                                throw Error(file, tok.Line(), string("unexpected token ") + TokenTypeToString(t.type) + ", expected , or ]");
                        }
                }
-               return new Literal(values);
+               return new Literal(probe.str, values);
        } else {
+               tok.Putback(probe);
+
                vector<Value *> values;
                while (t.type != Tokenizer::Token::BRACKET_CLOSE) {
                        Value *value(ParseValue());