示例#1
0
文件: SGLParser.cs 项目: peppy/sgl4cs
    // $ANTLR start "conditionalExpression"
    // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:313:1: conditionalExpression : conditionalOrExpression ( '?' conditionalExpression ':' conditionalExpression )? ;
    public SGLParser.conditionalExpression_return conditionalExpression() // throws RecognitionException [1]
    {   
        SGLParser.conditionalExpression_return retval = new SGLParser.conditionalExpression_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal92 = null;
        IToken char_literal94 = null;
        SGLParser.conditionalOrExpression_return conditionalOrExpression91 = default(SGLParser.conditionalOrExpression_return);

        SGLParser.conditionalExpression_return conditionalExpression93 = default(SGLParser.conditionalExpression_return);

        SGLParser.conditionalExpression_return conditionalExpression95 = default(SGLParser.conditionalExpression_return);


        object char_literal92_tree=null;
        object char_literal94_tree=null;

        try 
    	{
            // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:314:5: ( conditionalOrExpression ( '?' conditionalExpression ':' conditionalExpression )? )
            // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:314:9: conditionalOrExpression ( '?' conditionalExpression ':' conditionalExpression )?
            {
            	root_0 = (object)adaptor.GetNilNode();

            	PushFollow(FOLLOW_conditionalOrExpression_in_conditionalExpression1111);
            	conditionalOrExpression91 = conditionalOrExpression();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, conditionalOrExpression91.Tree);
            	// C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:314:33: ( '?' conditionalExpression ':' conditionalExpression )?
            	int alt20 = 2;
            	int LA20_0 = input.LA(1);

            	if ( (LA20_0 == 67) )
            	{
            	    alt20 = 1;
            	}
            	switch (alt20) 
            	{
            	    case 1 :
            	        // C:\\Users\\Dominik Halfkann\\Documents\\Visual Studio 2010\\Projects\\SGLParserTester\\SGL\\AntlrParser\\SGL.g:314:35: '?' conditionalExpression ':' conditionalExpression
            	        {
            	        	char_literal92=(IToken)Match(input,67,FOLLOW_67_in_conditionalExpression1115); 
            	        		char_literal92_tree = (object)adaptor.Create(char_literal92);
            	        		root_0 = (object)adaptor.BecomeRoot(char_literal92_tree, root_0);

            	        	PushFollow(FOLLOW_conditionalExpression_in_conditionalExpression1118);
            	        	conditionalExpression93 = conditionalExpression();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, conditionalExpression93.Tree);
            	        	char_literal94=(IToken)Match(input,68,FOLLOW_68_in_conditionalExpression1120); 
            	        	PushFollow(FOLLOW_conditionalExpression_in_conditionalExpression1123);
            	        	conditionalExpression95 = conditionalExpression();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, conditionalExpression95.Tree);

            	        }
            	        break;

            	}


            }

            retval.Stop = input.LT(-1);

            	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
        }
        return retval;
    }
示例#2
0
    // $ANTLR start "conditionalExpression"
    // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:286:1: conditionalExpression : conditionalOrExpression ( '?' conditionalExpression ':' conditionalExpression )? ;
    public SGLParser.conditionalExpression_return conditionalExpression() // throws RecognitionException [1]
    {   
        SGLParser.conditionalExpression_return retval = new SGLParser.conditionalExpression_return();
        retval.Start = input.LT(1);
        int conditionalExpression_StartIndex = input.Index();
        object root_0 = null;

        IToken char_literal69 = null;
        IToken char_literal71 = null;
        SGLParser.conditionalOrExpression_return conditionalOrExpression68 = default(SGLParser.conditionalOrExpression_return);

        SGLParser.conditionalExpression_return conditionalExpression70 = default(SGLParser.conditionalExpression_return);

        SGLParser.conditionalExpression_return conditionalExpression72 = default(SGLParser.conditionalExpression_return);


        object char_literal69_tree=null;
        object char_literal71_tree=null;

        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 20) ) 
    	    {
    	    	return retval; 
    	    }
            // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:287:5: ( conditionalOrExpression ( '?' conditionalExpression ':' conditionalExpression )? )
            // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:287:9: conditionalOrExpression ( '?' conditionalExpression ':' conditionalExpression )?
            {
            	root_0 = (object)adaptor.GetNilNode();

            	PushFollow(FOLLOW_conditionalOrExpression_in_conditionalExpression886);
            	conditionalOrExpression68 = conditionalOrExpression();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalOrExpression68.Tree);
            	// E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:287:33: ( '?' conditionalExpression ':' conditionalExpression )?
            	int alt20 = 2;
            	int LA20_0 = input.LA(1);

            	if ( (LA20_0 == 62) )
            	{
            	    alt20 = 1;
            	}
            	switch (alt20) 
            	{
            	    case 1 :
            	        // E:\\SGL\\sgl4c#\\NewSGLGramma\\SGL.g:287:35: '?' conditionalExpression ':' conditionalExpression
            	        {
            	        	char_literal69=(IToken)Match(input,62,FOLLOW_62_in_conditionalExpression890); if (state.failed) return retval;
            	        	if ( state.backtracking == 0 )
            	        	{char_literal69_tree = (object)adaptor.Create(char_literal69);
            	        		root_0 = (object)adaptor.BecomeRoot(char_literal69_tree, root_0);
            	        	}
            	        	PushFollow(FOLLOW_conditionalExpression_in_conditionalExpression893);
            	        	conditionalExpression70 = conditionalExpression();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalExpression70.Tree);
            	        	char_literal71=(IToken)Match(input,63,FOLLOW_63_in_conditionalExpression895); if (state.failed) return retval;
            	        	PushFollow(FOLLOW_conditionalExpression_in_conditionalExpression898);
            	        	conditionalExpression72 = conditionalExpression();
            	        	state.followingStackPointer--;
            	        	if (state.failed) return retval;
            	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, conditionalExpression72.Tree);

            	        }
            	        break;

            	}


            }

            retval.Stop = input.LT(-1);

            if ( (state.backtracking==0) )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (object)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 20, conditionalExpression_StartIndex); 
            }
        }
        return retval;
    }