public Expression postfix_unary_expression()
{
Expression expression = null;
IToken token = null;
IToken token2 = null;
try
{
IToken token3;
UnaryOperatorType type;
expression = this.slicing_expression();
if ((this.LA(1) == 0x4f) && tokenSet_20_.member(this.LA(2)))
{
token = this.LT(1);
this.match(0x4f);
if (base.inputState.guessing == 0)
{
token3 = token;
type = 4;
}
}
else if ((this.LA(1) == 80) && tokenSet_20_.member(this.LA(2)))
{
token2 = this.LT(1);
this.match(80);
if (base.inputState.guessing == 0)
{
token3 = token2;
type = 5;
}
}
else if (!tokenSet_20_.member(this.LA(1)) || !tokenSet_28_.member(this.LA(2)))
{
throw new NoViableAltException(this.LT(1), this.getFilename());
}
if ((base.inputState.guessing == 0) && (token3 != null))
{
expression = new UnaryExpression(ToLexicalInfo(token3), type, expression);
}
}
catch (RecognitionException exception)
{
if (base.inputState.guessing != 0)
{
throw;
}
this.reportError(exception);
this.recover(exception, tokenSet_20_);
return expression;
}
return expression;
}