private ArrayNode ParseArray() { Expect(TokenType.LBRACK); Next(); var array = new ArrayNode(Position(-1)); while (More() && !Accept(TokenType.RBRACK)) { array.AddDefaultElement(ParseExpression()); if (Accept(TokenType.COMMA)) { Next(); ExpectNot(TokenType.RBRACK); } else { Expect(TokenType.RBRACK); } } Expect(TokenType.RBRACK); Next(); return(array); }
public void ArrayNodesHaveDefaultElements() { subject.AddDefaultElement(new StringNode(SourcePosition.NIL, "foo")); subject.AddDefaultElement(new StringNode(SourcePosition.NIL, "bar")); var defaultElements = subject.DefaultElements.ToList(); Assert.AreEqual(defaultElements.Count, 2); Assert.AreEqual(((StringNode)defaultElements[0]).Value, "foo"); Assert.AreEqual(((StringNode)defaultElements[1]).Value, "bar"); }