Boo.Lang.Parser.BooLexer.nextToken C# (CSharp) Method

nextToken() public method

public nextToken ( ) : antlr.IToken
return antlr.IToken
        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);
                    }
                }
            }
        }