ES3Parser.propertyName C# (CSharp) Method

propertyName() public method

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

        object root_0 = null;

        IToken ex1 = null;
        IToken ex2 = null;
        ES3Parser.numericLiteral_return ex3 = default(ES3Parser.numericLiteral_return);


        object ex1_tree=null;
        object ex2_tree=null;

        try 
    	{
            // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1019:2: (ex1= Identifier | ex2= StringLiteral | ex3= numericLiteral )
            int alt14 = 3;
            switch ( input.LA(1) ) 
            {
            case Identifier:
            	{
                alt14 = 1;
                }
                break;
            case StringLiteral:
            	{
                alt14 = 2;
                }
                break;
            case DecimalLiteral:
            case OctalIntegerLiteral:
            case HexIntegerLiteral:
            	{
                alt14 = 3;
                }
                break;
            	default:
            	    NoViableAltException nvae_d14s0 =
            	        new NoViableAltException("", 14, 0, input);

            	    throw nvae_d14s0;
            }

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

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

                    	 retval.value =  ex1.Text; 

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

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

                    	 retval.value =  extractString(ex2.Text); 

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

                    	PushFollow(FOLLOW_numericLiteral_in_propertyName3492);
                    	ex3 = numericLiteral();
                    	state.followingStackPointer--;

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

                    }
                    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 "propertyName"
ES3Parser