public ES3Parser.forControl_return forControl() // throws RecognitionException [1]
{
ES3Parser.forControl_return retval = new ES3Parser.forControl_return();
retval.Start = input.LT(1);
object root_0 = null;
ES3Parser.forControlVar_return ex1 = default(ES3Parser.forControlVar_return);
ES3Parser.forControlExpression_return ex2 = default(ES3Parser.forControlExpression_return);
ES3Parser.forControlSemic_return ex3 = default(ES3Parser.forControlSemic_return);
try
{
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1585:2: (ex1= forControlVar | ex2= forControlExpression | ex3= forControlSemic )
int alt65 = 3;
switch ( input.LA(1) )
{
case VAR:
{
alt65 = 1;
}
break;
case NULL:
case TRUE:
case FALSE:
case DELETE:
case FUNCTION:
case NEW:
case THIS:
case TYPEOF:
case VOID:
case LBRACE:
case LPAREN:
case LBRACK:
case ADD:
case SUB:
case INC:
case DEC:
case NOT:
case INV:
case Identifier:
case StringLiteral:
case RegularExpressionLiteral:
case DecimalLiteral:
case OctalIntegerLiteral:
case HexIntegerLiteral:
{
alt65 = 2;
}
break;
case SEMIC:
{
alt65 = 3;
}
break;
default:
NoViableAltException nvae_d65s0 =
new NoViableAltException("", 65, 0, input);
throw nvae_d65s0;
}
switch (alt65)
{
case 1 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1585:4: ex1= forControlVar
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_forControlVar_in_forControl5778);
ex1 = forControlVar();
state.followingStackPointer--;
adaptor.AddChild(root_0, ex1.Tree);
retval.value = ex1.value;
}
break;
case 2 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1586:4: ex2= forControlExpression
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_forControlExpression_in_forControl5787);
ex2 = forControlExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, ex2.Tree);
retval.value = ex2.value;
}
break;
case 3 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1587:4: ex3= forControlSemic
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_forControlSemic_in_forControl5796);
ex3 = forControlSemic();
state.followingStackPointer--;
adaptor.AddChild(root_0, ex3.Tree);
retval.value = ex3.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 "forControl"