⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlparsertokenmanager.java

📁 反ajax原代码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                        break;

                    case 10: // '\n'
                        if(curChar == '/')
                            jjstateSet[jjnewStateCnt++] = 9;
                        break;

                    case 11: // '\013'
                        if(curChar == '<')
                            jjstateSet[jjnewStateCnt++] = 10;
                        break;
                    }
                while(i != startsAt);
            } else
            if(curChar < '\200')
            {
                long l = 1L << (curChar & 0x3f);
                do
                    switch(jjstateSet[--i])
                    {
                    case 0: // '\0'
                    case 1: // '\001'
                        if(kind > 13)
                            kind = 13;
                        jjCheckNAdd(0);
                        break;

                    case 2: // '\002'
                        if(curChar == 't')
                            jjCheckNAddTwoStates(3, 4);
                        break;

                    case 3: // '\003'
                        jjCheckNAddTwoStates(3, 4);
                        break;

                    case 5: // '\005'
                        if(curChar == 'p')
                            jjstateSet[jjnewStateCnt++] = 2;
                        break;

                    case 6: // '\006'
                        if(curChar == 'i')
                            jjstateSet[jjnewStateCnt++] = 5;
                        break;

                    case 7: // '\007'
                        if(curChar == 'r')
                            jjstateSet[jjnewStateCnt++] = 6;
                        break;

                    case 8: // '\b'
                        if(curChar == 'c')
                            jjstateSet[jjnewStateCnt++] = 7;
                        break;

                    case 9: // '\t'
                        if(curChar == 's')
                            jjstateSet[jjnewStateCnt++] = 8;
                        break;
                    }
                while(i != startsAt);
            } else
            {
                int i2 = (curChar & 0xff) >> 6;
                long l2 = 1L << (curChar & 0x3f);
                do
                    switch(jjstateSet[--i])
                    {
                    case 0: // '\0'
                    case 1: // '\001'
                        if((jjbitVec0[i2] & l2) != 0L)
                        {
                            if(kind > 13)
                                kind = 13;
                            jjCheckNAdd(0);
                        }
                        break;

                    case 3: // '\003'
                        if((jjbitVec0[i2] & l2) != 0L)
                            jjAddStates(19, 20);
                        break;
                    }
                while(i != startsAt);
            }
            if(kind != 0x7fffffff)
            {
                jjmatchedKind = kind;
                jjmatchedPos = curPos;
                kind = 0x7fffffff;
            }
            curPos++;
            if((i = jjnewStateCnt) == (startsAt = 12 - (jjnewStateCnt = startsAt)))
                return curPos;
            try
            {
                curChar = input_stream.readChar();
            }
            catch(IOException e)
            {
                return curPos;
            }
        } while(true);
    }

    private final int jjStopStringLiteralDfa_2(int pos, long active0)
    {
        switch(pos)
        {
        default:
            return -1;
        }
    }

    private final int jjStartNfa_2(int pos, long active0)
    {
        return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1);
    }

    private final int jjStartNfaWithStates_2(int pos, int kind, int state)
    {
        jjmatchedKind = kind;
        jjmatchedPos = pos;
        try
        {
            curChar = input_stream.readChar();
        }
        catch(IOException e)
        {
            return pos + 1;
        }
        return jjMoveNfa_2(state, pos + 1);
    }

    private final int jjMoveStringLiteralDfa0_2()
    {
        switch(curChar)
        {
        case 34: // '"'
            return jjStopAtPos(0, 20);

        case 39: // '\''
            return jjStopAtPos(0, 19);

        case 61: // '='
            return jjStartNfaWithStates_2(0, 16, 3);
        }
        return jjMoveNfa_2(0, 0);
    }

    private final int jjMoveNfa_2(int startState, int curPos)
    {
        int startsAt = 0;
        jjnewStateCnt = 6;
        int i = 1;
        jjstateSet[0] = startState;
        int kind = 0x7fffffff;
        do
        {
            if(++jjround == 0x7fffffff)
                ReInitRounds();
            if(curChar < '@')
            {
                long l = 1L << curChar;
                do
                    switch(jjstateSet[--i])
                    {
                    case 0: // '\0'
                        if((0x9fffff7affffd9ffL & l) != 0L)
                        {
                            if(kind > 15)
                                kind = 15;
                            jjCheckNAdd(1);
                        } else
                        if((0x100002600L & l) != 0L)
                        {
                            if(kind > 21)
                                kind = 21;
                            jjCheckNAdd(5);
                        } else
                        if(curChar == '=')
                            jjstateSet[jjnewStateCnt++] = 3;
                        else
                        if(curChar == '>' && kind > 17)
                            kind = 17;
                        break;

                    case 1: // '\001'
                        if((0x9ffffffeffffd9ffL & l) != 0L)
                        {
                            if(kind > 15)
                                kind = 15;
                            jjCheckNAdd(1);
                        }
                        break;

                    case 2: // '\002'
                    case 3: // '\003'
                        if(curChar == '>' && kind > 17)
                            kind = 17;
                        break;

                    case 4: // '\004'
                        if(curChar == '=')
                            jjstateSet[jjnewStateCnt++] = 3;
                        break;

                    case 5: // '\005'
                        if((0x100002600L & l) != 0L)
                        {
                            kind = 21;
                            jjCheckNAdd(5);
                        }
                        break;
                    }
                while(i != startsAt);
            } else
            if(curChar < '\200')
            {
                long l = 1L << (curChar & 0x3f);
                do
                    switch(jjstateSet[--i])
                    {
                    case 0: // '\0'
                    case 1: // '\001'
                        if(kind > 15)
                            kind = 15;
                        jjCheckNAdd(1);
                        break;
                    }
                while(i != startsAt);
            } else
            {
                int i2 = (curChar & 0xff) >> 6;
                long l2 = 1L << (curChar & 0x3f);
                do
                    switch(jjstateSet[--i])
                    {
                    case 0: // '\0'
                    case 1: // '\001'
                        if((jjbitVec0[i2] & l2) != 0L)
                        {
                            if(kind > 15)
                                kind = 15;
                            jjCheckNAdd(1);
                        }
                        break;
                    }
                while(i != startsAt);
            }
            if(kind != 0x7fffffff)
            {
                jjmatchedKind = kind;
                jjmatchedPos = curPos;
                kind = 0x7fffffff;
            }
            curPos++;
            if((i = jjnewStateCnt) == (startsAt = 6 - (jjnewStateCnt = startsAt)))
                return curPos;
            try
            {
                curChar = input_stream.readChar();
            }
            catch(IOException e)
            {
                return curPos;
            }
        } while(true);
    }

    public HTMLParserTokenManager(SimpleCharStream stream)
    {
        debugStream = System.out;
        jjrounds = new int[25];
        jjstateSet = new int[50];
        curLexState = 0;
        defaultLexState = 0;
        input_stream = stream;
    }

    public HTMLParserTokenManager(SimpleCharStream stream, int lexState)
    {
        this(stream);
        SwitchTo(lexState);
    }

    public void ReInit(SimpleCharStream stream)
    {
        jjmatchedPos = jjnewStateCnt = 0;
        curLexState = defaultLexState;
        input_stream = stream;
        ReInitRounds();
    }

    private final void ReInitRounds()
    {
        jjround = 0x80000001;
        for(int i = 25; i-- > 0;)
            jjrounds[i] = 0x80000000;

    }

    public void ReInit(SimpleCharStream stream, int lexState)
    {
        ReInit(stream);
        SwitchTo(lexState);
    }

    public void SwitchTo(int lexState)
    {
        if(lexState >= 8 || lexState < 0)
        {
            throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", 2);
        } else
        {
            curLexState = lexState;
            return;
        }
    }

    protected Token jjFillToken()
    {
        Token t = Token.newToken(jjmatchedKind);
        t.kind = jjmatchedKind;
        String im = jjstrLiteralImages[jjmatchedKind];
        t.image = im != null ? im : input_stream.GetImage();
        t.beginLine = input_stream.getBeginLine();
        t.beginColumn = input_stream.getBeginColumn();
        t.endLine = input_stream.getEndLine();
        t.endColumn = input_stream.getEndColumn();
        return t;
    }

    public Token getNextToken()
    {
        Token specialToken = null;
        int curPos = 0;
        do
        {
            try
            {
                curChar = input_stream.BeginToken();
            }
            catch(IOException e)
            {
                jjmatchedKind = 0;
                Token matchedToken = jjFillToken();
                return matchedToken;
            }
            switch(curLexState)
            {
            case 0: // '\0'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_0();
                if(jjmatchedPos == 0 && jjmatchedKind > 12)
                    jjmatchedKind = 12;
                break;

            case 1: // '\001'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_1();
                break;

            case 2: // '\002'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_2();
                break;

            case 3: // '\003'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_3();
                break;

            case 4: // '\004'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_4();
                break;

            case 5: // '\005'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_5();
                break;

            case 6: // '\006'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_6();
                break;

            case 7: // '\007'
                jjmatchedKind = 0x7fffffff;
                jjmatchedPos = 0;
                curPos = jjMoveStringLiteralDfa0_7();
                break;
            }
            if(jjmatchedKind == 0x7fffffff)
                break;
            if(jjmatchedPos + 1 < curPos)
                input_stream.backup(curPos - jjmatchedPos - 1);
            if((jjtoToken[jjmatchedKind >> 6] & 1L << (jjmatchedKind & 0x3f)) != 0L)
            {
                Token matchedToken = jjFillToken();
                if(jjnewLexState[jjmatchedKind] != -1)
                    curLexState = jjnewLexState[jjmatchedKind];
                return matchedToken;
            }
            if(jjnewLexState[jjmatchedKind] != -1)
                curLexState = jjnewLexState[jjmatchedKind];
        } while(true);
        int error_line = input_stream.getEndLine();
        int error_column = input_stream.getEndColumn();
        String error_after = null;
        boolean EOFSeen = false;
        try
        {
            input_stream.readChar();
            input_stream.backup(1);
        }
        catch(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, 0);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -