protected Expression atom()
{
Expression e;
e = null;
try { // for error handling
{
switch ( LA(1) )
{
case ESEPARATOR:
case FALSE:
case NULL:
case SELF:
case SUPER:
case TRUE:
case TRIPLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case SINGLE_QUOTED_STRING:
case LBRACK:
case LBRACE:
case QQ_BEGIN:
case SUBTRACT:
case LONG:
case INT:
case BACKTICK_QUOTED_STRING:
case RE_LITERAL:
case DOUBLE:
case FLOAT:
case TIMESPAN:
{
e=literal();
break;
}
case LPAREN:
{
e=paren_expression();
break;
}
case CAST:
{
e=cast_expression();
break;
}
case TYPEOF:
{
e=typeof_expression();
break;
}
case SPLICE_BEGIN:
{
e=splice_expression();
break;
}
case DOT:
{
e=omitted_member_expression();
break;
}
default:
bool synPredMatched552 = false;
if (((LA(1)==CHAR) && (LA(2)==LPAREN)))
{
int _m552 = mark();
synPredMatched552 = true;
inputState.guessing++;
try {
{
match(CHAR);
match(LPAREN);
}
}
catch (RecognitionException)
{
synPredMatched552 = false;
}
rewind(_m552);
inputState.guessing--;
}
if ( synPredMatched552 )
{
e=char_literal();
}
else if ((LA(1)==CHAR||LA(1)==THEN||LA(1)==ID) && (tokenSet_41_.member(LA(2)))) {
e=reference_expression();
}
else
{
throw new NoViableAltException(LT(1), getFilename());
}
break; }
}
}
catch (RecognitionException ex)
{
if (0 == inputState.guessing)
{
reportError(ex, "atom");
recover(ex,tokenSet_41_);
}
else
{
throw ex;
}
}
return e;
}