public Expression conditional_expression()
{
Expression expression = null;
IToken token = null;
try
{
expression = this.logical_or();
if ((this.LA(1) == 0x57) && tokenSet_16_.member(this.LA(2)))
{
token = this.LT(1);
this.match(0x57);
Expression expression2 = this.logical_or();
this.match(0x42);
Expression expression3 = this.conditional_expression();
if (base.inputState.guessing == 0)
{
ConditionalExpression expression4;
ConditionalExpression expression1 = expression4 = new ConditionalExpression(ToLexicalInfo(token));
expression4.set_Condition(expression);
expression4.set_TrueValue(expression2);
expression4.set_FalseValue(expression3);
expression = expression4;
}
return expression;
}
if (!tokenSet_20_.member(this.LA(1)) || !tokenSet_28_.member(this.LA(2)))
{
throw new NoViableAltException(this.LT(1), this.getFilename());
}
return expression;
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_20_);
return expression;
}
return expression;
}