public ES3Parser.withStatement_return withStatement() // throws RecognitionException [1]
{
ES3Parser.withStatement_return retval = new ES3Parser.withStatement_return();
retval.Start = input.LT(1);
object root_0 = null;
IToken WITH148 = null;
IToken LPAREN149 = null;
IToken RPAREN150 = null;
ES3Parser.expression_return exp = default(ES3Parser.expression_return);
ES3Parser.statement_return smt = default(ES3Parser.statement_return);
object WITH148_tree=null;
object LPAREN149_tree=null;
object RPAREN150_tree=null;
try
{
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1703:2: ( WITH LPAREN exp= expression RPAREN smt= statement )
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1703:4: WITH LPAREN exp= expression RPAREN smt= statement
{
root_0 = (object)adaptor.GetNilNode();
WITH148=(IToken)Match(input,WITH,FOLLOW_WITH_in_withStatement6218);
WITH148_tree = (object)adaptor.Create(WITH148);
root_0 = (object)adaptor.BecomeRoot(WITH148_tree, root_0);
LPAREN149=(IToken)Match(input,LPAREN,FOLLOW_LPAREN_in_withStatement6221);
PushFollow(FOLLOW_expression_in_withStatement6226);
exp = expression();
state.followingStackPointer--;
adaptor.AddChild(root_0, exp.Tree);
RPAREN150=(IToken)Match(input,RPAREN,FOLLOW_RPAREN_in_withStatement6228);
PushFollow(FOLLOW_statement_in_withStatement6233);
smt = statement();
state.followingStackPointer--;
adaptor.AddChild(root_0, smt.Tree);
retval.value = new WithStatement(exp.value, smt.value);
}
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 "withStatement"