protected ReferenceExpression reference_expression()
{
ReferenceExpression e;
IToken ch = null;
e = null;
IToken t = null;
try { // for error handling
{
switch ( LA(1) )
{
case THEN:
case ID:
{
t=macro_name();
break;
}
case CHAR:
{
ch = LT(1);
match(CHAR);
if (0==inputState.guessing)
{
t = ch;
}
break;
}
default:
{
throw new NoViableAltException(LT(1), getFilename());
}
}
}
if (0==inputState.guessing)
{
e = new ReferenceExpression(ToLexicalInfo(t), t.getText());
}
}
catch (RecognitionException ex)
{
if (0 == inputState.guessing)
{
reportError(ex, "reference_expression");
recover(ex,tokenSet_41_);
}
else
{
throw ex;
}
}
return e;
}