protected void mINTERPOLATED_EXPRESSION(bool _createToken)
{
int _ttype; IToken _token=null; int _begin=text.Length;
_ttype = INTERPOLATED_EXPRESSION;
if ((cached_LA1=='$') && (cached_LA2=='{'))
{
int _saveIndex = 0;
_saveIndex = text.Length;
match("${");
text.Length = _saveIndex;
if (0==inputState.guessing)
{
ParseInterpolatedExpression(RBRACE, LBRACE);
}
}
else if ((cached_LA1=='$') && (cached_LA2=='(')) {
int _saveIndex = 0;
_saveIndex = text.Length;
match("$(");
text.Length = _saveIndex;
if (0==inputState.guessing)
{
ParseInterpolatedExpression(RPAREN, LPAREN);
}
}
else
{
throw new NoViableAltForCharException(cached_LA1, getFilename(), getLine(), getColumn());
}
if (_createToken && (null == _token) && (_ttype != Token.SKIP))
{
_token = makeToken(_ttype);
_token.setText(text.ToString(_begin, text.Length-_begin));
}
returnToken_ = _token;
}