public void slice(SlicingExpression se)
{
Expression expression = null;
Expression expression2 = null;
Expression expression3 = null;
try
{
int num = this.LA(1);
if (num == 0x42)
{
this.match(0x42);
if (base.inputState.guessing == 0)
{
expression = OmittedExpression.Default;
}
num = this.LA(1);
switch (num)
{
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.expression();
goto Label_03F1;
case 0x42:
this.match(0x42);
if (base.inputState.guessing == 0)
{
expression2 = OmittedExpression.Default;
}
expression3 = this.expression();
goto Label_03F1;
case 0x43:
case 0x45:
goto Label_03F1;
}
throw new NoViableAltException(this.LT(1), this.getFilename());
}
if ((((((num != 12) && (num != 15)) && ((num != 0x13) && (num != 0x1b))) && (((num != 0x1d) && (num != 0x27)) && ((num != 40) && (num != 0x2a)))) && ((((num != 0x2c) && (num != 0x3b)) && ((num != 60) && (num != 0x3d))) && (((num != 0x3f) && (num != 0x44)) && ((num != 0x4f) && (num != 80))))) && ((((num != 0x52) && (num != 0x58)) && ((num != 0x67) && (num != 0x69))) && (((num != 0x6a) && (num != 0x6b)) && ((num != 0x6c) && (num != 0x6d)))))
{
throw new NoViableAltException(this.LT(1), this.getFilename());
}
expression = this.expression();
num = this.LA(1);
if (num == 0x42)
{
this.match(0x42);
num = this.LA(1);
switch (num)
{
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.expression();
break;
default:
if (((num != 0x42) && (num != 0x43)) && (num != 0x45))
{
throw new NoViableAltException(this.LT(1), this.getFilename());
}
if (base.inputState.guessing == 0)
{
expression2 = OmittedExpression.Default;
}
break;
}
num = this.LA(1);
switch (num)
{
case 0x42:
this.match(0x42);
expression3 = this.expression();
goto Label_03F1;
case 0x43:
case 0x45:
goto Label_03F1;
default:
throw new NoViableAltException(this.LT(1), this.getFilename());
}
}
switch (num)
{
case 0x43:
case 0x45:
break;
default:
throw new NoViableAltException(this.LT(1), this.getFilename());
}
Label_03F1:
if (base.inputState.guessing == 0)
{
se.get_Indices().Add(new Slice(expression, expression2, expression3));
}
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_53_);
}
}