protected Expression literal()
{
Expression e;
e = null;
try { // for error handling
{
switch ( LA(1) )
{
case ESEPARATOR:
case TRIPLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case SINGLE_QUOTED_STRING:
case BACKTICK_QUOTED_STRING:
{
e=string_literal();
break;
}
case LBRACK:
{
e=list_literal();
break;
}
case QQ_BEGIN:
{
e=ast_literal_expression();
break;
}
case RE_LITERAL:
{
e=re_literal();
break;
}
case FALSE:
case TRUE:
{
e=bool_literal();
break;
}
case NULL:
{
e=null_literal();
break;
}
case SELF:
{
e=self_literal();
break;
}
case SUPER:
{
e=super_literal();
break;
}
default:
if ((LA(1)==SUBTRACT||LA(1)==LONG||LA(1)==INT) && (tokenSet_41_.member(LA(2))))
{
e=integer_literal();
}
else {
bool synPredMatched611 = false;
if (((LA(1)==LBRACE) && (tokenSet_72_.member(LA(2)))))
{
int _m611 = mark();
synPredMatched611 = true;
inputState.guessing++;
try {
{
hash_literal_test();
}
}
catch (RecognitionException)
{
synPredMatched611 = false;
}
rewind(_m611);
inputState.guessing--;
}
if ( synPredMatched611 )
{
e=hash_literal();
}
else if ((LA(1)==LBRACE) && (tokenSet_124_.member(LA(2)))) {
e=closure_expression();
}
else if ((LA(1)==SUBTRACT||LA(1)==DOUBLE||LA(1)==FLOAT) && (tokenSet_41_.member(LA(2)))) {
e=double_literal();
}
else if ((LA(1)==SUBTRACT||LA(1)==TIMESPAN) && (tokenSet_41_.member(LA(2)))) {
e=timespan_literal();
}
else
{
throw new NoViableAltException(LT(1), getFilename());
}
}break; }
}
}
catch (RecognitionException ex)
{
if (0 == inputState.guessing)
{
reportError(ex, "literal");
recover(ex,tokenSet_41_);
}
else
{
throw ex;
}
}
return e;
}