public virtual void Visit(ListExpression expression) { VisitSubNodes(expression); }
/// <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; }