+ return new Literal(probe.str, values);
+ } else {
+ vector<string> values;
+ while (t.type != Token::BRACKET_CLOSE) {
+ string value(ParseIdentifier());
+ values.push_back(value);
+
+ t = GetToken();
+ if (t.type != Token::BRACKET_CLOSE && t.type != Token::COMMA) {
+ throw Error(file, tok.Line(), string("unexpected token ") + TokenTypeToString(t.type) + ", expected , or ]");
+ }
+ }
+ return new Literal(probe.str, values);