public Expression equality()
{
Expression expression = null;
IToken token = null;
IToken token2 = null;
IToken token3 = null;
IToken token4 = null;
try
{
expression = this.comparison();
while (true)
{
BinaryOperatorType type;
IToken token5;
if (!tokenSet_58_.member(this.LA(1)) || !tokenSet_16_.member(this.LA(2)))
{
return expression;
}
switch (this.LA(1))
{
case 0x55:
token = this.LT(1);
this.match(0x55);
if (base.inputState.guessing == 0)
{
type = 11;
token5 = token;
}
break;
case 0x56:
token2 = this.LT(1);
this.match(0x56);
if (base.inputState.guessing == 0)
{
type = 12;
token5 = token2;
}
break;
case 0x59:
token3 = this.LT(1);
this.match(0x59);
if (base.inputState.guessing == 0)
{
type = 0x17;
token5 = token3;
}
break;
case 90:
token4 = this.LT(1);
this.match(90);
if (base.inputState.guessing == 0)
{
type = 0x18;
token5 = token4;
}
break;
default:
throw new NoViableAltException(this.LT(1), this.getFilename());
}
Expression expression2 = this.comparison();
if (base.inputState.guessing == 0)
{
expression = new BinaryExpression(ToLexicalInfo(token5), type, expression, expression2);
}
}
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_20_);
return expression;
}
return expression;
}