ES3Parser.tryStatement C# (CSharp) Method

tryStatement() public method

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

        object root_0 = null;

        IToken TRY169 = null;
        ES3Parser.block_return b = default(ES3Parser.block_return);

        ES3Parser.catchClause_return c = default(ES3Parser.catchClause_return);

        ES3Parser.finallyClause_return first = default(ES3Parser.finallyClause_return);

        ES3Parser.finallyClause_return last = default(ES3Parser.finallyClause_return);


        object TRY169_tree=null;


        	retval.value =  new TryStatement();

        try 
    	{
            // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1775:2: ( TRY b= block (c= catchClause (first= finallyClause )? | last= finallyClause ) )
            // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1775:4: TRY b= block (c= catchClause (first= finallyClause )? | last= finallyClause )
            {
            	root_0 = (object)adaptor.GetNilNode();

            	TRY169=(IToken)Match(input,TRY,FOLLOW_TRY_in_tryStatement6454); 
            		TRY169_tree = (object)adaptor.Create(TRY169);
            		root_0 = (object)adaptor.BecomeRoot(TRY169_tree, root_0);

            	PushFollow(FOLLOW_block_in_tryStatement6459);
            	b = block();
            	state.followingStackPointer--;

            	adaptor.AddChild(root_0, b.Tree);
            	 retval.value.Statement = b.value; 
            	// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1775:50: (c= catchClause (first= finallyClause )? | last= finallyClause )
            	int alt82 = 2;
            	int LA82_0 = input.LA(1);

            	if ( (LA82_0 == CATCH) )
            	{
            	    alt82 = 1;
            	}
            	else if ( (LA82_0 == FINALLY) )
            	{
            	    alt82 = 2;
            	}
            	else 
            	{
            	    NoViableAltException nvae_d82s0 =
            	        new NoViableAltException("", 82, 0, input);

            	    throw nvae_d82s0;
            	}
            	switch (alt82) 
            	{
            	    case 1 :
            	        // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1775:52: c= catchClause (first= finallyClause )?
            	        {
            	        	PushFollow(FOLLOW_catchClause_in_tryStatement6468);
            	        	c = catchClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, c.Tree);
            	        	 retval.value.Catch = c.value; 
            	        	// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1775:94: (first= finallyClause )?
            	        	int alt81 = 2;
            	        	int LA81_0 = input.LA(1);

            	        	if ( (LA81_0 == FINALLY) )
            	        	{
            	        	    alt81 = 1;
            	        	}
            	        	switch (alt81) 
            	        	{
            	        	    case 1 :
            	        	        // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1775:95: first= finallyClause
            	        	        {
            	        	        	PushFollow(FOLLOW_finallyClause_in_tryStatement6475);
            	        	        	first = finallyClause();
            	        	        	state.followingStackPointer--;

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

            	        	        }
            	        	        break;

            	        	}


            	        }
            	        break;
            	    case 2 :
            	        // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1775:153: last= finallyClause
            	        {
            	        	PushFollow(FOLLOW_finallyClause_in_tryStatement6485);
            	        	last = finallyClause();
            	        	state.followingStackPointer--;

            	        	adaptor.AddChild(root_0, last.Tree);
            	        	 retval.value.Finally = last.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 "tryStatement"
ES3Parser