protected void mTRIPLE_QUOTED_STRING(bool _createToken)
{
int _ttype; IToken _token=null; int _begin=text.Length;
_ttype = TRIPLE_QUOTED_STRING;
int _saveIndex = 0;
_saveIndex = text.Length;
match("\"\"");
text.Length = _saveIndex;
{ // ( ... )*
for (;;)
{
// nongreedy exit test
if ((cached_LA1=='"') && (cached_LA2=='"') && (LA(3)=='"')) goto _loop775_breakloop;
bool synPredMatched769 = false;
if (((cached_LA1=='$') && (cached_LA2=='('||cached_LA2=='{') && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe'))))
{
int _m769 = mark();
synPredMatched769 = true;
inputState.guessing++;
try {
{
if ((cached_LA1=='$') && (cached_LA2=='{'))
{
match("${");
}
else if ((cached_LA1=='$') && (cached_LA2=='(')) {
match("$(");
}
else
{
throw new NoViableAltForCharException(cached_LA1, getFilename(), getLine(), getColumn());
}
}
}
catch (RecognitionException)
{
synPredMatched769 = false;
}
rewind(_m769);
inputState.guessing--;
}
if ( synPredMatched769 )
{
if (0==inputState.guessing)
{
Enqueue(makeToken(TRIPLE_QUOTED_STRING), text.ToString(_begin, text.Length-_begin));
text.Length = _begin; text.Append("");
}
mINTERPOLATED_EXPRESSION(false);
}
else {
bool synPredMatched771 = false;
if (((cached_LA1=='$') && (tokenSet_0_.member(cached_LA2)) && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe'))))
{
int _m771 = mark();
synPredMatched771 = true;
inputState.guessing++;
try {
{
match('$');
mID(false);
}
}
catch (RecognitionException)
{
synPredMatched771 = false;
}
rewind(_m771);
inputState.guessing--;
}
if ( synPredMatched771 )
{
if (0==inputState.guessing)
{
Enqueue(makeToken(TRIPLE_QUOTED_STRING), text.ToString(_begin, text.Length-_begin));
text.Length = _begin; text.Append("");
}
mINTERPOLATED_REFERENCE(false);
}
else {
bool synPredMatched773 = false;
if (((cached_LA1=='\\') && (cached_LA2=='$') && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe'))))
{
int _m773 = mark();
synPredMatched773 = true;
inputState.guessing++;
try {
{
match("\\$");
}
}
catch (RecognitionException)
{
synPredMatched773 = false;
}
rewind(_m773);
inputState.guessing--;
}
if ( synPredMatched773 )
{
_saveIndex = text.Length;
match('\\');
text.Length = _saveIndex;
match('$');
}
else if ((tokenSet_2_.member(cached_LA1)) && ((cached_LA2 >= '\u0003' && cached_LA2 <= '\ufffe')) && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe'))) {
{
match(tokenSet_2_);
}
}
else if ((cached_LA1=='\n'||cached_LA1=='\r')) {
mNEWLINE(false);
}
else
{
goto _loop775_breakloop;
}
}}
}
_loop775_breakloop: ;
} // ( ... )*
_saveIndex = text.Length;
match("\"\"\"");
text.Length = _saveIndex;
if (_createToken && (null == _token) && (_ttype != Token.SKIP))
{
_token = makeToken(_ttype);
_token.setText(text.ToString(_begin, text.Length-_begin));
}
returnToken_ = _token;
}