ES3Parser.sourceElement C# (CSharp) Method

sourceElement() public method

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

        object root_0 = null;

        ES3Parser.functionDeclaration_return func = default(ES3Parser.functionDeclaration_return);

        ES3Parser.statement_return stat = default(ES3Parser.statement_return);



        try 
    	{
            // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1858:2: ({...}?func= functionDeclaration | stat= statement )
            int alt88 = 2;
            alt88 = dfa88.Predict(input);
            switch (alt88) 
            {
                case 1 :
                    // C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1858:4: {...}?func= functionDeclaration
                    {
                    	root_0 = (object)adaptor.GetNilNode();

                    	if ( !(( input.LA(1) == FUNCTION )) ) 
                    	{
                    	    throw new FailedPredicateException(input, "sourceElement", " input.LA(1) == FUNCTION ");
                    	}
                    	PushFollow(FOLLOW_functionDeclaration_in_sourceElement6793);
                    	func = functionDeclaration();
                    	state.followingStackPointer--;

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

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

                    	PushFollow(FOLLOW_statement_in_sourceElement6802);
                    	stat = statement();
                    	state.followingStackPointer--;

                    	adaptor.AddChild(root_0, stat.Tree);
                    	 retval.value =  stat.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 "sourceElement"

Usage Example

Esempio n. 1
0
        public static JsStatement ParseStatement(string source)
        {
            var lex = new ES3Lexer(new ANTLRStringStream(source.Trim()));
            CommonTokenStream tokens = new CommonTokenStream(lex);
            var parser = new ES3Parser(tokens);

            var r    = parser.sourceElement();
            var tree = new ES3Walker(new CommonTreeNodeStream(r.Tree));

            return(tree.statement());
        }
All Usage Examples Of ES3Parser::sourceElement
ES3Parser