public Expression assignment_expression()
{
Expression expression = null;
IToken token = null;
IToken token2 = null;
IToken token3 = null;
IToken token4 = null;
IToken token5 = null;
IToken token6 = null;
IToken token7 = null;
IToken token8 = null;
IToken token9 = null;
IToken token10 = null;
try
{
expression = this.conditional_expression();
int num = this.LA(1);
if ((((num == 0x34) || (num == 0x35)) || ((num == 0x36) || (num == 0x37))) || ((((num == 0x47) || (num == 0x4a)) || ((num == 0x4e) || (num == 0x5e))) || ((num == 0x62) || (num == 0x66))))
{
IToken token11;
BinaryOperatorType type;
num = this.LA(1);
switch (num)
{
case 0x4e:
token = this.LT(1);
this.match(0x4e);
if (base.inputState.guessing == 0)
{
token11 = token;
type = 15;
}
break;
case 0x35:
token2 = this.LT(1);
this.match(0x35);
if (base.inputState.guessing == 0)
{
token11 = token2;
type = 0x10;
}
break;
case 0x36:
token3 = this.LT(1);
this.match(0x36);
if (base.inputState.guessing == 0)
{
token11 = token3;
type = 0x11;
}
break;
case 0x37:
token4 = this.LT(1);
this.match(0x37);
if (base.inputState.guessing == 0)
{
token11 = token4;
type = 0x12;
}
break;
case 0x34:
token5 = this.LT(1);
this.match(0x34);
if (base.inputState.guessing == 0)
{
token11 = token5;
type = 0x13;
}
break;
case 0x47:
token6 = this.LT(1);
this.match(0x47);
if (base.inputState.guessing == 0)
{
token11 = token6;
type = 0x16;
}
break;
case 0x4a:
token7 = this.LT(1);
this.match(0x4a);
if (base.inputState.guessing == 0)
{
token11 = token7;
type = 0x15;
}
break;
case 0x66:
token8 = this.LT(1);
this.match(0x66);
if (base.inputState.guessing == 0)
{
token11 = token8;
type = 0x21;
}
break;
case 0x5e:
token9 = this.LT(1);
this.match(0x5e);
if (base.inputState.guessing == 0)
{
token11 = token9;
type = 0x23;
}
break;
case 0x62:
token10 = this.LT(1);
this.match(0x62);
if (base.inputState.guessing == 0)
{
token11 = token10;
type = 0x25;
}
break;
default:
throw new NoViableAltException(this.LT(1), this.getFilename());
}
Expression expression2 = this.assignment_expression();
if (base.inputState.guessing == 0)
{
BinaryExpression expression3 = new BinaryExpression(ToLexicalInfo(token11));
expression3.set_Operator(type);
expression3.set_Left(expression);
expression3.set_Right(expression2);
expression = expression3;
}
return expression;
}
switch (num)
{
case 1:
case 5:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 15:
case 0x10:
case 0x11:
case 0x12:
case 0x13:
case 20:
case 0x15:
case 0x19:
case 0x1b:
case 0x1d:
case 30:
case 0x1f:
case 0x20:
case 0x21:
case 0x23:
case 0x24:
case 0x25:
case 0x26:
case 0x27:
case 40:
case 0x29:
case 0x2a:
case 0x2b:
case 0x2c:
case 0x2d:
case 0x2e:
case 0x2f:
case 0x30:
case 0x31:
case 50:
case 0x33:
case 0x3b:
case 60:
case 0x3d:
case 0x3e:
case 0x3f:
case 0x40:
case 0x44:
case 0x4d:
case 0x4f:
case 80:
case 0x52:
case 0x58:
case 0x63:
case 0x67:
case 0x69:
case 0x6a:
case 0x6b:
case 0x6c:
return expression;
case 0x6d:
return expression;
}
throw new NoViableAltException(this.LT(1), this.getFilename());
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_51_);
return expression;
}
return expression;
}