ES3Parser.primaryExpression C# (CSharp) Method

primaryExpression() public method

public primaryExpression ( ) : ES3Parser.primaryExpression_return
return ES3Parser.primaryExpression_return
    public ES3Parser.primaryExpression_return primaryExpression() // throws RecognitionException [1]
    {   
        ES3Parser.primaryExpression_return retval = new ES3Parser.primaryExpression_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken ex1 = null;
        IToken ex2 = null;
        IToken lpar = null;
        IToken RPAREN15 = null;
        ES3Parser.literal_return ex3 = default(ES3Parser.literal_return);

        ES3Parser.arrayLiteral_return ex4 = default(ES3Parser.arrayLiteral_return);

        ES3Parser.objectLiteral_return ex5 = default(ES3Parser.objectLiteral_return);

        ES3Parser.expression_return ex6 = default(ES3Parser.expression_return);


        object ex1_tree=null;
        object ex2_tree=null;
        object lpar_tree=null;
        object RPAREN15_tree=null;

        try 
    	{
            // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:977:2: (ex1= THIS | ex2= Identifier | ex3= literal | ex4= arrayLiteral | ex5= objectLiteral | lpar= LPAREN ex6= expression RPAREN )
            int alt6 = 6;
            switch ( input.LA(1) ) 
            {
            case THIS:
            	{
                alt6 = 1;
                }
                break;
            case Identifier:
            	{
                alt6 = 2;
                }
                break;
            case NULL:
            case TRUE:
            case FALSE:
            case StringLiteral:
            case RegularExpressionLiteral:
            case DecimalLiteral:
            case OctalIntegerLiteral:
            case HexIntegerLiteral:
            	{
                alt6 = 3;
                }
                break;
            case LBRACK:
            	{
                alt6 = 4;
                }
                break;
            case LBRACE:
            	{
                alt6 = 5;
                }
                break;
            case LPAREN:
            	{
                alt6 = 6;
                }
                break;
            	default:
            	    NoViableAltException nvae_d6s0 =
            	        new NoViableAltException("", 6, 0, input);

            	    throw nvae_d6s0;
            }

            switch (alt6) 
            {
                case 1 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:977:4: ex1= THIS
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	ex1=(IToken)Match(input,THIS,FOLLOW_THIS_in_primaryExpression3175); 
                    		ex1_tree = (object)adaptor.Create(ex1);
                    		adaptor.AddChild(root_0, ex1_tree);

                    	 retval.value =  new Identifier(ex1.Text); 

                    }
                    break;
                case 2 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:978:4: ex2= Identifier
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	ex2=(IToken)Match(input,Identifier,FOLLOW_Identifier_in_primaryExpression3184); 
                    		ex2_tree = (object)adaptor.Create(ex2);
                    		adaptor.AddChild(root_0, ex2_tree);

                    	 retval.value =  new Identifier(ex2.Text); 

                    }
                    break;
                case 3 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:979:4: ex3= literal
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_literal_in_primaryExpression3193);
                    	ex3 = literal();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, ex3.Tree);
                    	 retval.value =  ex3.value; 

                    }
                    break;
                case 4 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:980:4: ex4= arrayLiteral
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_arrayLiteral_in_primaryExpression3202);
                    	ex4 = arrayLiteral();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, ex4.Tree);
                    	 retval.value =  ex4.value; 

                    }
                    break;
                case 5 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:981:4: ex5= objectLiteral
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_objectLiteral_in_primaryExpression3211);
                    	ex5 = objectLiteral();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, ex5.Tree);
                    	 retval.value =  ex5.value; 

                    }
                    break;
                case 6 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:982:4: lpar= LPAREN ex6= expression RPAREN
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	lpar=(IToken)Match(input,LPAREN,FOLLOW_LPAREN_in_primaryExpression3220); 
                    		lpar_tree = (object)adaptor.Create(lpar);
                    		adaptor.AddChild(root_0, lpar_tree);

                    	PushFollow(FOLLOW_expression_in_primaryExpression3224);
                    	ex6 = expression();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, ex6.Tree);
                    	RPAREN15=(IToken)Match(input,RPAREN,FOLLOW_RPAREN_in_primaryExpression3227); 
                    		RPAREN15_tree = (object)adaptor.Create(RPAREN15);
                    		adaptor.AddChild(root_0, RPAREN15_tree);

                    	 retval.value =  ex6.value; 

                    }
                    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;
    }
    // $ANTLR end "primaryExpression"
ES3Parser