public override IToken nextToken()
{
IToken theRetToken = null;
tryAgain:
for (;;)
{
IToken _token = null;
int _ttype = Token.INVALID_TYPE;
resetText();
try // for char stream error handling
{
try // for lexical error handling
{
switch ( cached_LA1 )
{
case '\\':
{
mLINE_CONTINUATION(true);
theRetToken = returnToken_;
break;
}
case '#':
{
mSL_COMMENT(true);
theRetToken = returnToken_;
break;
}
case '0': case '1': case '2': case '3':
case '4': case '5': case '6': case '7':
case '8': case '9':
{
mINT(true);
theRetToken = returnToken_;
break;
}
case '.':
{
mDOT(true);
theRetToken = returnToken_;
break;
}
case ':':
{
mCOLON(true);
theRetToken = returnToken_;
break;
}
case '&':
{
mBITWISE_AND(true);
theRetToken = returnToken_;
break;
}
case '^':
{
mEXCLUSIVE_OR(true);
theRetToken = returnToken_;
break;
}
case '(':
{
mLPAREN(true);
theRetToken = returnToken_;
break;
}
case ')':
{
mRPAREN(true);
theRetToken = returnToken_;
break;
}
case ']':
{
mRBRACK(true);
theRetToken = returnToken_;
break;
}
case '{':
{
mLBRACE(true);
theRetToken = returnToken_;
break;
}
case '}':
{
mRBRACE(true);
theRetToken = returnToken_;
break;
}
case '$':
{
mSPLICE_BEGIN(true);
theRetToken = returnToken_;
break;
}
case '%':
{
mMODULUS(true);
theRetToken = returnToken_;
break;
}
case '/':
{
mDIVISION(true);
theRetToken = returnToken_;
break;
}
case '~':
{
mONES_COMPLEMENT(true);
theRetToken = returnToken_;
break;
}
case '=':
{
mASSIGN(true);
theRetToken = returnToken_;
break;
}
case ',':
{
mCOMMA(true);
theRetToken = returnToken_;
break;
}
case '"':
{
mDOUBLE_QUOTED_STRING(true);
theRetToken = returnToken_;
break;
}
case '\'':
{
mSINGLE_QUOTED_STRING(true);
theRetToken = returnToken_;
break;
}
case '`':
{
mBACKTICK_QUOTED_STRING(true);
theRetToken = returnToken_;
break;
}
case '\t': case '\n': case '\u000c': case '\r':
case ' ':
{
mWS(true);
theRetToken = returnToken_;
break;
}
case ';':
{
mEOS(true);
theRetToken = returnToken_;
break;
}
case '?':
{
mNULLABLE_SUFFIX(true);
theRetToken = returnToken_;
break;
}
default:
if ((cached_LA1=='<') && (cached_LA2=='<') && (LA(3)=='='))
{
mINPLACE_SHIFT_LEFT(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='>') && (cached_LA2=='>') && (LA(3)=='=')) {
mINPLACE_SHIFT_RIGHT(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='[') && (cached_LA2=='|')) {
mQQ_BEGIN(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='|') && (cached_LA2==']')) {
mQQ_END(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='+') && (cached_LA2=='+')) {
mINCREMENT(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='-') && (cached_LA2=='-')) {
mDECREMENT(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='*') && (cached_LA2=='*')) {
mEXPONENTIATION(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='<') && (cached_LA2=='<') && (true)) {
mSHIFT_LEFT(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='>') && (cached_LA2=='>') && (true)) {
mSHIFT_RIGHT(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='!'||cached_LA1=='<'||cached_LA1=='>') && (cached_LA2=='='||cached_LA2=='~')) {
mCMP_OPERATOR(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='@') && (cached_LA2=='/')) {
mX_RE_LITERAL(true);
theRetToken = returnToken_;
}
else if ((tokenSet_0_.member(cached_LA1)) && (true)) {
mID(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='|') && (true)) {
mBITWISE_OR(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='[') && (true)) {
mLBRACK(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='+') && (true)) {
mADD(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='-') && (true)) {
mSUBTRACT(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='*') && (true)) {
mMULTIPLY(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='<') && (true)) {
mLESS_THAN(true);
theRetToken = returnToken_;
}
else if ((cached_LA1=='>') && (true)) {
mGREATER_THAN(true);
theRetToken = returnToken_;
}
else
{
if (cached_LA1==EOF_CHAR) { uponEOF(); returnToken_ = makeToken(Token.EOF_TYPE); }
else {throw new NoViableAltForCharException(cached_LA1, getFilename(), getLine(), getColumn());}
}
break; }
if ( null==returnToken_ ) goto tryAgain; // found SKIP token
_ttype = returnToken_.Type;
returnToken_.Type = _ttype;
return returnToken_;
}
catch (RecognitionException e) {
throw new TokenStreamRecognitionException(e);
}
}
catch (CharStreamException cse) {
if ( cse is CharStreamIOException ) {
throw new TokenStreamIOException(((CharStreamIOException)cse).io);
}
else {
throw new TokenStreamException(cse.Message);
}
}
}
}