public void if_statement(Block container)
{
IToken token = null;
IToken token2 = null;
try
{
IfStatement statement2;
Block block;
token = this.LT(1);
this.match(0x15);
Expression expression = this.paren_expression();
if (base.inputState.guessing == 0)
{
IfStatement statement;
Block block2;
IfStatement statement1 = statement = new IfStatement(ToLexicalInfo(token));
statement.set_Condition(expression);
statement2 = statement;
statement2.set_TrueBlock(block2 = new Block());
block = block2;
container.Add(statement2);
}
this.compound_or_single_stmt(block);
if ((this.LA(1) == 11) && tokenSet_2_.member(this.LA(2)))
{
token2 = this.LT(1);
this.match(11);
if (base.inputState.guessing == 0)
{
Block block3;
statement2.set_FalseBlock(block3 = new Block(ToLexicalInfo(token2)));
block = block3;
}
this.compound_or_single_stmt(block);
}
else if (!tokenSet_15_.member(this.LA(1)) || !tokenSet_20_.member(this.LA(2)))
{
throw new NoViableAltException(this.LT(1), this.getFilename());
}
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_15_);
}
}