Exemple #1
0
        // throws RecognitionException [1]
        // $ANTLR start conditionalExpression
        // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1261:1: conditionalExpression : ( logicalOrExpression -> logicalOrExpression ) ( QUESTION conditionalSubExpression -> ^( QUESTION $conditionalExpression conditionalSubExpression ) )? ;
        public conditionalExpression_return conditionalExpression()
        {
            conditionalExpression_return retval = new conditionalExpression_return();
            retval.start = input.LT(1);
            int conditionalExpression_StartIndex = input.Index();
            CommonTree root_0 = null;

            CommonToken QUESTION232 = null;
            logicalOrExpression_return logicalOrExpression231 = null;

            conditionalSubExpression_return conditionalSubExpression233 = null;

            CommonTree QUESTION232_tree=null;
            RewriteRuleTokenStream stream_QUESTION = new RewriteRuleTokenStream(adaptor,"token QUESTION");
            RewriteRuleSubtreeStream stream_logicalOrExpression = new RewriteRuleSubtreeStream(adaptor,"rule logicalOrExpression");
            RewriteRuleSubtreeStream stream_conditionalSubExpression = new RewriteRuleSubtreeStream(adaptor,"rule conditionalSubExpression");
            try
            {
            if ( (backtracking > 0) && AlreadyParsedRule(input, 89) )
            {
                return retval;
            }
            // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1262:4: ( ( logicalOrExpression -> logicalOrExpression ) ( QUESTION conditionalSubExpression -> ^( QUESTION $conditionalExpression conditionalSubExpression ) )? )
            // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1262:4: ( logicalOrExpression -> logicalOrExpression ) ( QUESTION conditionalSubExpression -> ^( QUESTION $conditionalExpression conditionalSubExpression ) )?
            {
                // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1262:4: ( logicalOrExpression -> logicalOrExpression )
                // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1262:5: logicalOrExpression
                {
                    PushFollow(FOLLOW_logicalOrExpression_in_conditionalExpression4317);
                    logicalOrExpression231 = logicalOrExpression();
                    followingStackPointer_--;
                    if (failed) return retval;
                    if ( backtracking==0 ) stream_logicalOrExpression.Add(logicalOrExpression231.Tree);

                    // AST REWRITE
                    // elements:          logicalOrExpression
                    // 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();
                    // 1262:25: -> logicalOrExpression
                    {
                        adaptor.AddChild(root_0, stream_logicalOrExpression.Next());

                    }

                    }

                }

                // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1263:3: ( QUESTION conditionalSubExpression -> ^( QUESTION $conditionalExpression conditionalSubExpression ) )?
                int alt68 = 2;
                int LA68_0 = input.LA(1);

                if ( (LA68_0 == QUESTION) )
                {
                    alt68 = 1;
                }
                switch (alt68)
                {
                    case 1 :
                        // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1264:4: QUESTION conditionalSubExpression
                        {
                            QUESTION232 = (CommonToken)input.LT(1);
                            Match(input,QUESTION,FOLLOW_QUESTION_in_conditionalExpression4331); if (failed) return retval;
                            if ( backtracking==0 ) stream_QUESTION.Add(QUESTION232);

                            if ( backtracking == 0 )
                            {

                              							if(options.SpaceBetweenOperators) buffer.Append(" ");
                              							buffer.Append("?");
                              							if(options.SpaceBetweenOperators) buffer.Append(" ");

                            }
                            PushFollow(FOLLOW_conditionalSubExpression_in_conditionalExpression4338);
                            conditionalSubExpression233 = conditionalSubExpression();
                            followingStackPointer_--;
                            if (failed) return retval;
                            if ( backtracking==0 ) stream_conditionalSubExpression.Add(conditionalSubExpression233.Tree);

                            // AST REWRITE
                            // elements:          conditionalSubExpression, QUESTION, conditionalExpression
                            // 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();
                            // 1270:4: -> ^( QUESTION $conditionalExpression conditionalSubExpression )
                            {
                                // C:\\Users\\sephiroth\\Documents\\Visual Studio 2005\\Projects\\CodeReformatter\\CodeReformatter\\AS.g:1270:7: ^( QUESTION $conditionalExpression conditionalSubExpression )
                                {
                                CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                                root_1 = (CommonTree)adaptor.BecomeRoot(stream_QUESTION.Next(), root_1);

                                adaptor.AddChild(root_1, stream_retval.Next());
                                adaptor.AddChild(root_1, stream_conditionalSubExpression.Next());

                                adaptor.AddChild(root_0, root_1);
                                }

                            }

                            }

                        }
                        break;

                }

            }

            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, 89, conditionalExpression_StartIndex);
            }
            }
            return retval;
        }
Exemple #2
0
    // $ANTLR start conditionalExpression
    // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:73:1: conditionalExpression returns [Expression value] : left= booleanAndExpression ( '||' right= booleanAndExpression )* ;
    public conditionalExpression_return conditionalExpression() // throws RecognitionException [1]
    {   
        conditionalExpression_return retval = new conditionalExpression_return();
        retval.start = input.LT(1);
        
        CommonTree root_0 = null;
    
        IToken string_literal9 = null;
        booleanAndExpression_return left = null;

        booleanAndExpression_return right = null;
        
        
        CommonTree string_literal9_tree=null;
    
        
        BinaryExpressionType type = BinaryExpressionType.Unknown;
    
        try 
    	{
            // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:77:2: (left= booleanAndExpression ( '||' right= booleanAndExpression )* )
            // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:77:4: left= booleanAndExpression ( '||' right= booleanAndExpression )*
            {
            	root_0 = (CommonTree)adaptor.GetNilNode();
            
            	PushFollow(FOLLOW_booleanAndExpression_in_conditionalExpression151);
            	left = booleanAndExpression();
            	followingStackPointer_--;
            	
            	adaptor.AddChild(root_0, left.Tree);
            	 retval.value =  left.value; 
            	// C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:77:56: ( '||' right= booleanAndExpression )*
            	do 
            	{
            	    int alt3 = 2;
            	    int LA3_0 = input.LA(1);
            	    
            	    if ( (LA3_0 == 19) )
            	    {
            	        alt3 = 1;
            	    }
            	    
            	
            	    switch (alt3) 
            		{
            			case 1 :
            			    // C:\\Documents and Settings\\Sébastien Ros\\Mes documents\\Développement\\NLinq\\NLinq.g:78:4: '||' right= booleanAndExpression
            			    {
            			    	string_literal9 = (IToken)input.LT(1);
            			    	Match(input,19,FOLLOW_19_in_conditionalExpression160); 
            			    	string_literal9_tree = (CommonTree)adaptor.Create(string_literal9);
            			    	adaptor.AddChild(root_0, string_literal9_tree);

            			    	 type = BinaryExpressionType.Or; 
            			    	PushFollow(FOLLOW_booleanAndExpression_in_conditionalExpression170);
            			    	right = booleanAndExpression();
            			    	followingStackPointer_--;
            			    	
            			    	adaptor.AddChild(root_0, right.Tree);
            			    	 retval.value =  new BinaryExpression(type, retval.value, right.value); 
            			    
            			    }
            			    break;
            	
            			default:
            			    goto loop3;
            	    }
            	} while (true);
            	
            	loop3:
            		;	// Stops C# compiler whinging that label 'loop3' has no statements

            
            }
    
            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;
    }