public ES3Parser.statementTail_return statementTail() // throws RecognitionException [1]
{
ES3Parser.statementTail_return retval = new ES3Parser.statementTail_return();
retval.Start = input.LT(1);
object root_0 = null;
ES3Parser.variableStatement_return variableStatement89 = default(ES3Parser.variableStatement_return);
ES3Parser.emptyStatement_return emptyStatement90 = default(ES3Parser.emptyStatement_return);
ES3Parser.expressionStatement_return expressionStatement91 = default(ES3Parser.expressionStatement_return);
ES3Parser.ifStatement_return ifStatement92 = default(ES3Parser.ifStatement_return);
ES3Parser.iterationStatement_return iterationStatement93 = default(ES3Parser.iterationStatement_return);
ES3Parser.continueStatement_return continueStatement94 = default(ES3Parser.continueStatement_return);
ES3Parser.breakStatement_return breakStatement95 = default(ES3Parser.breakStatement_return);
ES3Parser.returnStatement_return returnStatement96 = default(ES3Parser.returnStatement_return);
ES3Parser.withStatement_return withStatement97 = default(ES3Parser.withStatement_return);
ES3Parser.labelledStatement_return labelledStatement98 = default(ES3Parser.labelledStatement_return);
ES3Parser.switchStatement_return switchStatement99 = default(ES3Parser.switchStatement_return);
ES3Parser.throwStatement_return throwStatement100 = default(ES3Parser.throwStatement_return);
ES3Parser.tryStatement_return tryStatement101 = default(ES3Parser.tryStatement_return);
try
{
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1427:2: ( variableStatement | emptyStatement | expressionStatement | ifStatement | iterationStatement | continueStatement | breakStatement | returnStatement | withStatement | labelledStatement | switchStatement | throwStatement | tryStatement )
int alt58 = 13;
alt58 = dfa58.Predict(input);
switch (alt58)
{
case 1 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1427:4: variableStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_variableStatement_in_statementTail5259);
variableStatement89 = variableStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, variableStatement89.Tree);
retval.value = ((variableStatement89 != null) ? variableStatement89.value : default(Statement));
}
break;
case 2 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1428:4: emptyStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_emptyStatement_in_statementTail5266);
emptyStatement90 = emptyStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, emptyStatement90.Tree);
retval.value = ((emptyStatement90 != null) ? emptyStatement90.value : default(Statement));
}
break;
case 3 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1429:4: expressionStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_expressionStatement_in_statementTail5273);
expressionStatement91 = expressionStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, expressionStatement91.Tree);
retval.value = ((expressionStatement91 != null) ? expressionStatement91.value : default(Statement));
}
break;
case 4 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1430:4: ifStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_ifStatement_in_statementTail5280);
ifStatement92 = ifStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, ifStatement92.Tree);
retval.value = ((ifStatement92 != null) ? ifStatement92.value : default(Statement));
}
break;
case 5 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1431:4: iterationStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_iterationStatement_in_statementTail5287);
iterationStatement93 = iterationStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, iterationStatement93.Tree);
retval.value = ((iterationStatement93 != null) ? iterationStatement93.value : default(Statement));
}
break;
case 6 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1432:4: continueStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_continueStatement_in_statementTail5294);
continueStatement94 = continueStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, continueStatement94.Tree);
retval.value = ((continueStatement94 != null) ? continueStatement94.value : default(Statement));
}
break;
case 7 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1433:4: breakStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_breakStatement_in_statementTail5301);
breakStatement95 = breakStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, breakStatement95.Tree);
retval.value = ((breakStatement95 != null) ? breakStatement95.value : default(Statement));
}
break;
case 8 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1434:4: returnStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_returnStatement_in_statementTail5308);
returnStatement96 = returnStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, returnStatement96.Tree);
retval.value = ((returnStatement96 != null) ? returnStatement96.value : default(ReturnStatement));
}
break;
case 9 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1435:4: withStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_withStatement_in_statementTail5315);
withStatement97 = withStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, withStatement97.Tree);
retval.value = ((withStatement97 != null) ? withStatement97.value : default(Statement));
}
break;
case 10 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1436:4: labelledStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_labelledStatement_in_statementTail5322);
labelledStatement98 = labelledStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, labelledStatement98.Tree);
retval.value = ((labelledStatement98 != null) ? labelledStatement98.value : default(Statement));
}
break;
case 11 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1437:4: switchStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_switchStatement_in_statementTail5329);
switchStatement99 = switchStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, switchStatement99.Tree);
retval.value = ((switchStatement99 != null) ? switchStatement99.value : default(Statement));
}
break;
case 12 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1438:4: throwStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_throwStatement_in_statementTail5336);
throwStatement100 = throwStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, throwStatement100.Tree);
retval.value = ((throwStatement100 != null) ? throwStatement100.value : default(Statement));
}
break;
case 13 :
// C:\\Users\\s.ros\\Projets\\Jint\\Jint\\ES3.g:1439:4: tryStatement
{
root_0 = (object)adaptor.GetNilNode();
PushFollow(FOLLOW_tryStatement_in_statementTail5343);
tryStatement101 = tryStatement();
state.followingStackPointer--;
adaptor.AddChild(root_0, tryStatement101.Tree);
retval.value = ((tryStatement101 != null) ? tryStatement101.value : default(TryStatement));
}
break;
}
retval.Stop = input.LT(-1);
retval.Tree = (object)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);
if (!(retval.value is ForStatement ||
retval.value is BlockStatement ||
retval.value is WhileStatement ||
retval.value is DoWhileStatement ||
retval.value is SwitchStatement ||
retval.value is TryStatement ||
retval.value is IfStatement)) {
retval.value.Source = ExtractSourceCode((CommonToken)retval.Start, (CommonToken)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 "statementTail"