Exemple #1
0
        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);
        }
Exemple #2
0
        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");
        }