ES3Parser.propertyAssignment C# (CSharp) Method

propertyAssignment() public method

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

        object root_0 = null;

        IToken COLON20 = null;
        ES3Parser.accessor_return acc = default(ES3Parser.accessor_return);

        ES3Parser.propertyName_return prop2 = default(ES3Parser.propertyName_return);

        ES3Parser.formalParameterList_return parameters = default(ES3Parser.formalParameterList_return);

        ES3Parser.functionBody_return statements = default(ES3Parser.functionBody_return);

        ES3Parser.propertyName_return prop1 = default(ES3Parser.propertyName_return);

        ES3Parser.assignmentExpression_return ass = default(ES3Parser.assignmentExpression_return);


        object COLON20_tree=null;


        	retval.value =  new PropertyDeclarationExpression();
        	FunctionExpression func=new FunctionExpression();

        try 
    	{
            // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1010:2: (acc= accessor prop2= propertyName (parameters= formalParameterList )? statements= functionBody | prop1= propertyName COLON ass= assignmentExpression )
            int alt13 = 2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0 == Identifier) )
            {
                int LA13_1 = input.LA(2);

                if ( (LA13_1 == COLON) )
                {
                    alt13 = 2;
                }
                else if ( ((LA13_1 >= Identifier && LA13_1 <= StringLiteral) || (LA13_1 >= DecimalLiteral && LA13_1 <= HexIntegerLiteral)) )
                {
                    alt13 = 1;
                }
                else 
                {
                    NoViableAltException nvae_d13s1 =
                        new NoViableAltException("", 13, 1, input);

                    throw nvae_d13s1;
                }
            }
            else if ( (LA13_0 == StringLiteral || (LA13_0 >= DecimalLiteral && LA13_0 <= HexIntegerLiteral)) )
            {
                alt13 = 2;
            }
            else 
            {
                NoViableAltException nvae_d13s0 =
                    new NoViableAltException("", 13, 0, input);

                throw nvae_d13s0;
            }
            switch (alt13) 
            {
                case 1 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1010:4: acc= accessor prop2= propertyName (parameters= formalParameterList )? statements= functionBody
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_accessor_in_propertyAssignment3391);
                    	acc = accessor();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, acc.Tree);
                    	 retval.value.Mode=acc.value; 
                    	 retval.value.Expression=func; 
                    	PushFollow(FOLLOW_propertyName_in_propertyAssignment3399);
                    	prop2 = propertyName();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, prop2.Tree);
                    	 retval.value.Name=func.Name=prop2.value; 
                    	// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1010:130: (parameters= formalParameterList )?
                    	int alt12 = 2;
                    	int LA12_0 = input.LA(1);

                    	if ( (LA12_0 == LPAREN) )
                    	{
                    	    alt12 = 1;
                    	}
                    	switch (alt12) 
                    	{
                    	    case 1 :
                    	        // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1010:131: parameters= formalParameterList
                    	        {
                    	        	PushFollow(FOLLOW_formalParameterList_in_propertyAssignment3406);
                    	        	parameters = formalParameterList();
                    	        	state.followingStackPointer--;

                    	        	adaptor.AddChild(root_0, parameters.Tree);
                    	        	 func.Parameters.AddRange(parameters.value); 

                    	        }
                    	        break;

                    	}

                    	PushFollow(FOLLOW_functionBody_in_propertyAssignment3414);
                    	statements = functionBody();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, statements.Tree);
                    	 func.Statement=statements.value; 

                    }
                    break;
                case 2 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1011:4: prop1= propertyName COLON ass= assignmentExpression
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_propertyName_in_propertyAssignment3424);
                    	prop1 = propertyName();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, prop1.Tree);
                    	 retval.value.Name=prop1.value; 
                    	COLON20=(IToken)Match(input,COLON,FOLLOW_COLON_in_propertyAssignment3428); 
                    		COLON20_tree = (object)adaptor.Create(COLON20);
                    		adaptor.AddChild(root_0, COLON20_tree);

                    	PushFollow(FOLLOW_assignmentExpression_in_propertyAssignment3432);
                    	ass = assignmentExpression();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, ass.Tree);
                    	 retval.value.Expression=ass.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 "propertyAssignment"
ES3Parser