// throws RecognitionException [1] // $ANTLR start expressionList // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1222:1: expressionList : assignmentExpression ( COMMA assignmentExpression )* -> ^( ELIST assignmentExpression ( COMMA assignmentExpression )* ) ; public expressionList_return expressionList() { expressionList_return retval = new expressionList_return(); retval.start = input.LT(1); int expressionList_StartIndex = input.Index(); CommonTree root_0 = null; CommonToken COMMA227 = null; assignmentExpression_return assignmentExpression226 = null; assignmentExpression_return assignmentExpression228 = null; CommonTree COMMA227_tree=null; RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(adaptor,"token COMMA"); RewriteRuleSubtreeStream stream_assignmentExpression = new RewriteRuleSubtreeStream(adaptor,"rule assignmentExpression"); try { if ( (backtracking > 0) && AlreadyParsedRule(input, 86) ) { return retval; } // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1223:4: ( assignmentExpression ( COMMA assignmentExpression )* -> ^( ELIST assignmentExpression ( COMMA assignmentExpression )* ) ) // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1223:4: assignmentExpression ( COMMA assignmentExpression )* { PushFollow(FOLLOW_assignmentExpression_in_expressionList4132); assignmentExpression226 = assignmentExpression(); followingStackPointer_--; if (failed) return retval; if ( backtracking==0 ) stream_assignmentExpression.Add(assignmentExpression226.Tree); // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1224:3: ( COMMA assignmentExpression )* do { int alt66 = 2; int LA66_0 = input.LA(1); if ( (LA66_0 == COMMA) ) { alt66 = 1; } switch (alt66) { case 1 : // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1225:4: COMMA assignmentExpression { COMMA227 = (CommonToken)input.LT(1); Match(input,COMMA,FOLLOW_COMMA_in_expressionList4142); if (failed) return retval; if ( backtracking==0 ) stream_COMMA.Add(COMMA227); if ( backtracking == 0 ) { buffer.Append(options.SpaceBetweenArguments ? ", " : ","); } PushFollow(FOLLOW_assignmentExpression_in_expressionList4154); assignmentExpression228 = assignmentExpression(); followingStackPointer_--; if (failed) return retval; if ( backtracking==0 ) stream_assignmentExpression.Add(assignmentExpression228.Tree); } break; default: goto loop66; } } while (true); loop66: ; // Stops C# compiler whinging that label 'loop66' has no statements // AST REWRITE // elements: assignmentExpression, assignmentExpression, COMMA // token labels: // rule labels: retval // token list labels: // rule list labels: if ( backtracking==0 ) { retval.tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null)); root_0 = (CommonTree)adaptor.GetNilNode(); // 1227:6: -> ^( ELIST assignmentExpression ( COMMA assignmentExpression )* ) { // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1227:9: ^( ELIST assignmentExpression ( COMMA assignmentExpression )* ) { CommonTree root_1 = (CommonTree)adaptor.GetNilNode(); root_1 = (CommonTree)adaptor.BecomeRoot(adaptor.Create(ELIST, "ELIST"), root_1); adaptor.AddChild(root_1, stream_assignmentExpression.Next()); // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1227:38: ( COMMA assignmentExpression )* while ( stream_assignmentExpression.HasNext() || stream_COMMA.HasNext() ) { adaptor.AddChild(root_1, stream_COMMA.Next()); adaptor.AddChild(root_1, stream_assignmentExpression.Next()); } stream_assignmentExpression.Reset(); stream_COMMA.Reset(); adaptor.AddChild(root_0, root_1); } } } } retval.stop = input.LT(-1); if ( backtracking==0 ) { retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, retval.start, retval.stop); } } catch (NoViableAltException e) { Debug.WriteLine("NoValiable alt: token=" + e.Token + " (decision=" + e.decisionNumber + " state " + e.stateNumber + ")" + " decision=<<" + e.grammarDecisionDescription + ">>"); throw e; } catch (MismatchedTokenException e) { Debug.WriteLine("[" + e.Line + ":" + e.Index + "]: " + e.Message + ". Unexpected " + e.UnexpectedType.ToString() + "( expecting: "+ e.expecting + " )"); throw e; } catch(RecognitionException e) { Debug.WriteLine("RecognitionException: " + e); throw e; } finally { if ( backtracking > 0 ) { Memoize(input, 86, expressionList_StartIndex); } } return retval; }
// $ANTLR start expressionList // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:274:1: expressionList returns [List<Expression> value] : first= expression ( ',' follow= expression )* ; public expressionList_return expressionList() // throws RecognitionException [1] { expressionList_return retval = new expressionList_return(); retval.start = input.LT(1); CommonTree root_0 = null; IToken char_literal104 = null; expression_return first = null; expression_return follow = null; CommonTree char_literal104_tree=null; List<Expression> expressions = new List<Expression>(); try { // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:278:2: (first= expression ( ',' follow= expression )* ) // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:278:4: first= expression ( ',' follow= expression )* { root_0 = (CommonTree)adaptor.GetNilNode(); PushFollow(FOLLOW_expression_in_expressionList1407); first = expression(); followingStackPointer_--; adaptor.AddChild(root_0, first.Tree); expressions.Add(first.value); // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:278:55: ( ',' follow= expression )* do { int alt39 = 2; int LA39_0 = input.LA(1); if ( (LA39_0 == 36) ) { alt39 = 1; } switch (alt39) { case 1 : // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:278:57: ',' follow= expression { char_literal104 = (IToken)input.LT(1); Match(input,36,FOLLOW_36_in_expressionList1414); char_literal104_tree = (CommonTree)adaptor.Create(char_literal104); adaptor.AddChild(root_0, char_literal104_tree); PushFollow(FOLLOW_expression_in_expressionList1418); follow = expression(); followingStackPointer_--; adaptor.AddChild(root_0, follow.Tree); expressions.Add(follow.value); } break; default: goto loop39; } } while (true); loop39: ; // Stops C# compiler whinging that label 'loop39' has no statements retval.value = expressions; } retval.stop = input.LT(-1); retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, retval.start, retval.stop); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }