protected IntegerLiteralExpression integer_literal()
{
IntegerLiteralExpression e;
IToken sign = null;
IToken i = null;
IToken l = null;
string number = null;
e = null;
try { // for error handling
{
switch ( LA(1) )
{
case SUBTRACT:
{
sign = LT(1);
match(SUBTRACT);
break;
}
case LONG:
case INT:
{
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
{
switch ( LA(1) )
{
case INT:
{
i = LT(1);
match(INT);
if (0==inputState.guessing)
{
number = sign != null ? sign.getText() + i.getText() : i.getText();
e = PrimitiveParser.ParseIntegerLiteralExpression(i, number, false);
}
break;
}
case LONG:
{
l = LT(1);
match(LONG);
if (0==inputState.guessing)
{
number = sign != null ? sign.getText() + l.getText() : l.getText();
e = PrimitiveParser.ParseIntegerLiteralExpression(l, number, true);
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
}
catch (RecognitionException ex)
{
if (0 == inputState.guessing)
{
reportError(ex, "integer_literal");
recover(ex,tokenSet_41_);
}
else
{
throw ex;
}
}
return e;
}