protected Expression char_literal()
{
Expression e;
IToken charToken = null;
IToken t = null;
IToken i = null;
e = null;
try { // for error handling
charToken = LT(1);
match(CHAR);
match(LPAREN);
{
switch ( LA(1) )
{
case SINGLE_QUOTED_STRING:
{
t = LT(1);
match(SINGLE_QUOTED_STRING);
if (0==inputState.guessing)
{
e = new CharLiteralExpression(ToLexicalInfo(t), t.getText());
}
break;
}
case INT:
{
i = LT(1);
match(INT);
if (0==inputState.guessing)
{
e = new CharLiteralExpression(ToLexicalInfo(i), (char) PrimitiveParser.ParseInt(i));
}
break;
}
case RPAREN:
{
if (0==inputState.guessing)
{
e = new MethodInvocationExpression(
ToLexicalInfo(charToken),
new ReferenceExpression(ToLexicalInfo(charToken), charToken.getText()));
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
match(RPAREN);
}
catch (RecognitionException ex)
{
if (0 == inputState.guessing)
{
reportError(ex, "char_literal");
recover(ex,tokenSet_41_);
}
else
{
throw ex;
}
}
return e;
}