Exemple #1
0
        public Token GetNextToken()
        {
            Token matchedToken;
            int   curPos = 0;

            for (;;)
            {
                try {
                    curChar = input_stream.BeginToken();
                } catch (System.IO.IOException) {
                    mccmatchedKind = 0;
                    matchedToken   = mccFillToken();
                    return(matchedToken);
                }
                try { input_stream.Backup(0);
                      while (curChar <= ' ' && (4294977024L & (1L << curChar)) != 0L)
                      {
                          curChar = input_stream.BeginToken();
                      }
                } catch (System.IO.IOException) { goto EOFLoop; }
                mccmatchedKind = Int32.MaxValue;
                mccmatchedPos  = 0;
                curPos         = mccMoveStringLiteralDfa0_0();
                if (mccmatchedPos == 0 && mccmatchedKind > 44)
                {
                    mccmatchedKind = 44;
                }
                if (mccmatchedKind != Int32.MaxValue)
                {
                    if (mccmatchedPos + 1 < curPos)
                    {
                        input_stream.Backup(curPos - mccmatchedPos - 1);
                    }
                    if ((mcctoToken[mccmatchedKind >> 6] & (1L << (mccmatchedKind & 63))) != 0L)
                    {
                        matchedToken = mccFillToken();
                        return(matchedToken);
                    }
                    else
                    {
                        goto EOFLoop;
                    }
                }
                int    error_line   = input_stream.EndLine;
                int    error_column = input_stream.EndColumn;
                string error_after  = null;
                bool   EOFSeen      = false;
                try { input_stream.ReadChar(); input_stream.Backup(1); }
                catch (System.IO.IOException) {
                    EOFSeen     = true;
                    error_after = curPos <= 1 ? "" : input_stream.GetImage();
                    if (curChar == '\n' || curChar == '\r')
                    {
                        error_line++;
                        error_column = 0;
                    }
                    else
                    {
                        error_column++;
                    }
                }
                if (!EOFSeen)
                {
                    input_stream.Backup(1);
                    error_after = curPos <= 1 ? "" : input_stream.GetImage();
                }
                throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LexicalError);
                EOFLoop :;
            }
        }
Exemple #2
0
        public Token getNextToken()
        {
            int   kind;
            Token specialToken = null;
            Token matchedToken;
            int   curPos = 0;

EOFLoop:
            for (;;)
            {
                try{
                    curChar = input_stream.BeginToken();
                }catch (System.IO.IOException e) {
                    jjmatchedKind = 0;
                    matchedToken  = jjFillToken();
                    return(matchedToken);
                }

                try { input_stream.backup(0);
                      while (curChar <= 32 && (0x100002600L & (1L << curChar)) != 0L)
                      {
                          curChar = input_stream.BeginToken();
                      }
                }
                catch (System.IO.IOException e1) { goto EOFLoop; }
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos  = 0;
                curPos        = jjMoveStringLiteralDfa0_0();
                if (jjmatchedPos == 0 && jjmatchedKind > 51)
                {
                    jjmatchedKind = 51;
                }
                if (jjmatchedKind != 0x7fffffff)
                {
                    if (jjmatchedPos + 1 < curPos)
                    {
                        input_stream.backup(curPos - jjmatchedPos - 1);
                    }
                    if (((ulong)jjtoToken[jjmatchedKind >> 6] & (1UL << (jjmatchedKind & 0x3F))) != 0)
                    {
                        matchedToken = jjFillToken();
                        return(matchedToken);
                    }
                    else
                    {
                        goto EOFLoop;
                    }
                }
                int    error_line   = input_stream.getEndLine();
                int    error_column = input_stream.getEndColumn();
                String error_after  = null;
                bool   EOFSeen      = false;
                try { input_stream.readChar(); input_stream.backup(1); }
                catch (System.IO.IOException e1) {
                    EOFSeen     = true;
                    error_after = curPos <= 1 ? "" : input_stream.GetImage();
                    if (curChar == '\n' || curChar == '\r')
                    {
                        error_line++;
                        error_column = 0;
                    }
                    else
                    {
                        error_column++;
                    }
                }
                if (!EOFSeen)
                {
                    input_stream.backup(1);
                    error_after = curPos <= 1 ? "" : input_stream.GetImage();
                }
                throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
            }
        }