public ArrayLiteral ParseArrayLiteral()
{
var al = new ArrayLiteral {Token = Next()};
Match(TokenType.LeftBracket);
while (Next().IsNot(TokenType.RightBracket))
{
al.Expressions.Add(ParseAssignmentExpression());
if (Next().Is(TokenType.Derive))
{
if (al.Expressions.Count != 1)
throw Error("Invalid array definition", al.Token);
Match(TokenType.Derive);
al.Expressions.Add(ParseAssignmentExpression());
al.IsRange = true;
break;
}
if (Next().Is(TokenType.Comma))
Match(TokenType.Comma);
}
Match(TokenType.RightBracket);
return al;
}