Beispiel #1
0
 public virtual void Visit(ListExpression expression)
 {
     VisitSubNodes(expression);
 }
Beispiel #2
0
        /// <summary>
        /// Parse an ListExpression
        /// </summary>
        /// <returns>Parsed List Expression</returns>
        public ListExpression ParseListExpression()
        {
            ListExpression listExpression = new ListExpression();

            //Skip [ token
            NextToken("[", "[ expression, expression ]", '[');

            while (TokenStream.HasNext())
            {   //Scan for expressions
                if (TokenStream.Peek(1).GetValue().ToString() == "]")
                {
                    break; //empty list found
                }

                listExpression.AddExpression(ParseExpression());

                if (TokenStream.HasNext() && TokenStream.Peek(1).GetValue().ToString() == ",")
                {   //separator
                    NextToken(",", "[ expression, expression ]", ',');
                }
            }

            //Skip ] token
            NextToken("]", "[ expression, expression ]", ']');

            return listExpression;
        }