public Statement for_c(Block container)
{
Statement statement = null;
try
{
Expression expression;
Expression expression2;
WhileStatement statement3;
Block block;
string str;
switch (this.LA(1))
{
case 0x2d:
this.declaration_statement(container);
if (base.inputState.guessing == 0)
{
statement = container.get_Statements().get_Item(-1) as DeclarationStatement;
if (statement != null)
{
statement.Annotate("PrivateScope");
}
}
break;
case 12:
case 15:
case 0x13:
case 0x1b:
case 0x1d:
case 0x27:
case 40:
case 0x2a:
case 0x2c:
case 0x3b:
case 60:
case 0x3d:
case 0x3f:
case 0x44:
case 0x4f:
case 80:
case 0x52:
case 0x58:
case 0x67:
case 0x69:
case 0x6a:
case 0x6b:
case 0x6c:
case 0x6d:
this.expression_statement(container);
break;
case 0x4d:
break;
default:
throw new NoViableAltException(this.LT(1), this.getFilename());
}
this.match(0x4d);
switch (this.LA(1))
{
case 12:
case 15:
case 0x13:
case 0x1b:
case 0x1d:
case 0x27:
case 40:
case 0x2a:
case 0x2c:
case 0x3b:
case 60:
case 0x3d:
case 0x3f:
case 0x44:
case 0x4f:
case 80:
case 0x52:
case 0x58:
case 0x67:
case 0x69:
case 0x6a:
case 0x6b:
case 0x6c:
case 0x6d:
expression = this.expression();
break;
case 0x4d:
break;
default:
throw new NoViableAltException(this.LT(1), this.getFilename());
}
this.match(0x4d);
switch (this.LA(1))
{
case 12:
case 15:
case 0x13:
case 0x1b:
case 0x1d:
case 0x27:
case 40:
case 0x2a:
case 0x2c:
case 0x3b:
case 60:
case 0x3d:
case 0x3f:
case 0x44:
case 0x4f:
case 80:
case 0x52:
case 0x58:
case 0x67:
case 0x69:
case 0x6a:
case 0x6b:
case 0x6c:
case 0x6d:
expression2 = this.assignment_expression();
break;
case 0x40:
break;
default:
throw new NoViableAltException(this.LT(1), this.getFilename());
}
if (base.inputState.guessing == 0)
{
WhileStatement statement2;
WhileStatement statement1 = statement2 = new WhileStatement();
statement2.set_Condition(expression);
statement3 = statement2;
if (expression == null)
{
BoolLiteralExpression expression3;
BoolLiteralExpression expression1 = expression3 = new BoolLiteralExpression();
expression3.set_Value(true);
statement3.set_Condition(expression3);
}
block = statement3.get_Block();
statement = statement3;
str = this.SetUpLoopLabel(statement3);
container.Add(statement);
this.EnterLoop(statement3);
}
this.match(0x40);
this.compound_or_single_stmt(block);
if (base.inputState.guessing != 0)
{
return statement;
}
this.LeaveLoop(statement3);
if (this.IsLabelInUse(statement3))
{
LabelStatement statement4;
LabelStatement statement5 = statement4 = new LabelStatement();
statement4.set_Name(str);
block.Add(statement4);
}
if (expression2 != null)
{
block.Add(expression2);
}
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_15_);
return statement;
}
return statement;
}