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

📄 java2xhtml.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                        {                            // compute spaceLength so a line can be drawn                            while ((presentIndex != (bufferIn.length() - 1)) &&                                   ((Character.isSpaceChar(                                     bufferIn.charAt(presentIndex))) ||                                    (bufferIn.charAt(presentIndex) == '\t')))                            {                                // for each tab, insert tabSize spaces                                 if (bufferIn.charAt(presentIndex) == '\t')                                {                                    for (int i = 0; i < tabSize; i++)                                    {                                        bufferIn.insert(presentIndex + 1, " ");                                    }                                    presentIndex++;                                    continue;                                }                                if (' ' == bufferIn.charAt(presentIndex))                                {                                    // read a space so place a space                                    bufferOut.append(" ");                                    spaceLength += (" ").length();                                }                                else                                {                                    // a white space character was read                                    bufferOut.append(bufferIn.charAt(                                        presentIndex));                                    ++spaceLength;                                }                                presentIndex++;                            }                            // check if line is empty                             // (no printable characters on line)                            if ((presentIndex == (bufferIn.length() - 1)) ||                                (Character.isWhitespace(bufferIn.charAt(                                     presentIndex))))                            {                                spaceLength = 0;                            }                            // draw the line                            if (spaceLength > 1)                            {                                bufferOut.insert((bufferOut.length() -                                                   spaceLength), "<span class=" +                                                 "\"modulusLineStyle\">");                                bufferOut.insert((bufferOut.length() -                                                   (" ").length()), "</span>");                            }                            spaceLength = 0;                        }                    }                    else                     {                        // line numbers are in lineNumberColor                         bufferOut.append("<span class=\"" + lineNumberStyle + "\">");                        bufferOut.append(codeLineNumber);                        bufferOut.append(":</span> ");                    }                }                isNewLine = false;                bufferOut.append("</a>");            }            // a state machine            presentChar = bufferIn.charAt(presentIndex);            if ((Character.isJavaIdentifierPart(presentChar)) ||                ((State.IMPORT_NAME == presentState) && (presentChar == '*')))            {                // this is an identifier                bufferOut.append(presentChar);                identifierLength++;                continue; // keep adding characters until identifier is done            }             if (identifierLength > 0)            {                // identifier                qualifiedIdentifierLength =                     qualifiedIdentifierLength + identifierLength;                if (bufferIn.charAt(presentIndex) == '.')                {                    // qualified identifier                     bufferOut.append(presentChar);                    qualifiedIdentifierLength++;                    identifierLength = 0;                    continue;  // keep adding characters to qualified identifier                }                String identifier =                     bufferOut.substring(bufferOut.length() -                                         identifierLength);                if ((State.PARAM_VARIABLE == presentState))                {                    // any identifier after a param in a javadoc is assumed to                    // be a variable                     bufferOut.insert(bufferOut.length() -                                     qualifiedIdentifierLength,                                     "<span class=\"" + variableStyle + "\">");                    bufferOut.append("</span>");                    presentState = State.JAVADOC;                }                else if (State.JAVADOC == presentState)                {                    // in javadoc state                     if ((javadocTagCollection.contains(identifier)) &&                        (bufferIn.charAt(presentIndex -                                          (identifierLength + 1)) == '@'))                    {                        // identifier is a javadocTag                        bufferOut.insert(bufferOut.length() - identifierLength,                                         "<span class=\"" + javadocTagStyle + "\">");                        bufferOut.append("</span>");                        if (("param").equals(identifier))                        {                            // any identifier after a param is assumed to                            // be a variable, get into a state to do this                             presentState = State.PARAM_VARIABLE;                        }                    }                }                else if (State.IMPORT_NAME == presentState)                {                    // import identifier                    bufferOut.insert(bufferOut.length() -                                      qualifiedIdentifierLength,                                     "<span class=\"" + importNameStyle + "\">");                    bufferOut.append("</span>");                    presentState = State.TEXT;                }                else if (State.PACKAGE_NAME == presentState)                {                    // package identifier                    bufferOut.insert(bufferOut.length() -                                      qualifiedIdentifierLength,                                     "<span class=\"" + packageNameStyle + "\">");                    bufferOut.append("</span>");                    presentState = State.TEXT;                }                else if (State.TEXT == presentState)                {                    if (keywordCollection.contains(identifier))                    {                        // identifier is a keyword                         bufferOut.insert(bufferOut.length() -                                          qualifiedIdentifierLength,                                         "<span class=\"" + keywordStyle + "\">");                        bufferOut.append("</span>");                        if (("import").equals(identifier))                        {                            // anything after an import in text mode must be                             // an import name, so enter state to process this                            presentState = State.IMPORT_NAME;                        }                        else if (("package").equals(identifier))                        {                            // anything after an package in text mode must be                             // an package name, so enter state to process this                            presentState = State.PACKAGE_NAME;                        }                    }                    else if (primitiveTypeCollection.contains(identifier))                    {                        // identifier is a primitive type                          bufferOut.insert(bufferOut.length() -                                         qualifiedIdentifierLength,                                         "<span class=\"" + primitiveTypeStyle + "\">");                        bufferOut.append("</span>");                    }                    else if ((identifier.equals(identifier.toUpperCase())) &&                             (!(Character.isDigit(identifier.charAt(0)))))                    {                        // identifier is a constant                        bufferOut.insert(bufferOut.length() -                                         qualifiedIdentifierLength,                                          "<span class=\"" + constantStyle + "\">");                        bufferOut.append("</span>");                    }                    else if (Character.isUpperCase(identifier.charAt(0)))                    {                        // identifier is a constructor or non-primitive type                        // eat white space                         saveIndex = presentIndex;                        while (Character.isWhitespace(                                   bufferIn.charAt(saveIndex++)))                        {                            //empty body                        }                        if (bufferIn.charAt(--saveIndex) == '(')                        {   // identifier is a constructor                            bufferOut.insert(bufferOut.length() -                                             qualifiedIdentifierLength,                                             "<span class=" +                                             "\"" + constructorStyle + "\">");                            bufferOut.append("</span>");                        }                        else                        {                            // identifier is a non-primitive type                             bufferOut.insert(bufferOut.length() -                                             qualifiedIdentifierLength,                                             "<span class=" +                                              "\"" + nonPrimitiveTypeStyle + "\">");                            bufferOut.append("</span>");                        }                    }                    else if (!(Character.isDigit(identifier.charAt(0)) ||                               primitiveLiteralCollection.contains(identifier)))                    {                        // identifier is a method or a variable                        // eat white space                        saveIndex = presentIndex;                        while (Character.isWhitespace(                                   bufferIn.charAt(saveIndex++)))                        {                            // empty body                        }                        --saveIndex;                        // identifier is a method                        if (bufferIn.charAt(saveIndex) == '(')                        {                            bufferOut.insert(bufferOut.length() -                                              qualifiedIdentifierLength,                                              "<span class=\"" + methodStyle + "\">");                            bufferOut.append("</span>");                                         }                        else if (bufferIn.charAt(saveIndex) == ',')                        {                            // comma seperated variables                            bufferOut.insert(bufferOut.length() -                                              qualifiedIdentifierLength,                                              "<span class=\"" + variableStyle + "\">");                            bufferOut.append("</span>");                         }                        else                        {                            // a variable                            // take care of cases such as array[index].variable                            if (bufferIn.charAt(presentIndex -                                                 (qualifiedIdentifierLength                                                  + 1)) == '.')                            {                                qualifiedIdentifierLength++;                            }                            bufferOut.insert(bufferOut.length() -                                              qualifiedIdentifierLength,                                              "<span class=\"" + variableStyle + "\">");                            bufferOut.append("</span>");                                                }                    }                    else                    {                        if (primitiveLiteralCollection.contains(identifier))                        {                            // primitiveLiteral (boolean or null)                            bufferOut.insert(bufferOut.length() -                                             identifierLength, "<span class=" +                                             "\"" + primitiveLiteralStyle + "\">");                            bufferOut.append("</span>");                        }                        // a numeric literal                        else                         {                            if (((presentIndex -                                   (qualifiedIdentifierLength + 1)) > 0) &&                                 (bufferIn.charAt(presentIndex -                                      (qualifiedIdentifierLength + 1)) == '.'))

⌨️ 快捷键说明

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