protected void mML_COMMENT(bool _createToken)
{
int _ttype; IToken _token=null; int _begin=text.Length;
_ttype = ML_COMMENT;
match("/*");
{ // ( ... )*
for (;;)
{
if (((cached_LA1=='*') && ((cached_LA2 >= '\u0003' && cached_LA2 <= '\ufffe')) && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe')))&&( LA(2) != '/' ))
{
match('*');
}
else {
bool synPredMatched803 = false;
if (((cached_LA1=='/') && (cached_LA2=='*') && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe'))))
{
int _m803 = mark();
synPredMatched803 = true;
inputState.guessing++;
try {
{
match("/*");
}
}
catch (RecognitionException)
{
synPredMatched803 = false;
}
rewind(_m803);
inputState.guessing--;
}
if ( synPredMatched803 )
{
mML_COMMENT(false);
}
else if ((tokenSet_3_.member(cached_LA1)) && ((cached_LA2 >= '\u0003' && cached_LA2 <= '\ufffe')) && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe'))) {
{
match(tokenSet_3_);
}
}
else if ((cached_LA1=='\n'||cached_LA1=='\r')) {
mNEWLINE(false);
}
else
{
goto _loop805_breakloop;
}
}
}
_loop805_breakloop: ;
} // ( ... )*
match("*/");
if (0==inputState.guessing)
{
if (!_preserveComments)
_ttype = Token.SKIP;
}
if (_createToken && (null == _token) && (_ttype != Token.SKIP))
{
_token = makeToken(_ttype);
_token.setText(text.ToString(_begin, text.Length-_begin));
}
returnToken_ = _token;
}