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

📄 nodeashtmlprinter.java

📁 大名鼎鼎的java动态脚本语言。已经通过了sun的认证
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/** * * Copyright 2005 Jeremy Rayner * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **/package org.codehaus.groovy.antlr.treewalker;import java.io.PrintStream;import java.util.Stack;import org.codehaus.groovy.antlr.GroovySourceAST;import org.codehaus.groovy.antlr.parser.GroovyTokenTypes;/** * A visitor that prints a html tags of each node to the supplied PrintStream * * @author <a href="mailto:groovy@ross-rayner.com">Jeremy Rayner</a> * @version $Revision: 1.2 $ */public class NodeAsHTMLPrinter extends VisitorAdapter {    private String[] tokenNames;    private PrintStream out;    private Stack stack;    /**     * A visitor that prints a html tags, for each node, to the supplied PrintStream.     * @param out supplied PrintStream to output nodes to     * @param tokenNames an array of token names to use     */    public NodeAsHTMLPrinter(PrintStream out,String[] tokenNames) {        this.tokenNames = tokenNames;        this.out = out;        this.stack = new Stack();    }    public void setUp() {        out.println("<html><head></head><body><pre>");    }    public void visitDefault(GroovySourceAST t,int visit) {        if (visit == OPENING_VISIT) {            out.print("<code title='" + tokenNames[t.getType()] + "'><font color='#" + colour(t) + "'>");        } else {            out.print("</font></code>");        }    }    public void tearDown() {        out.println("</pre></body></html>");    }    private String colour(GroovySourceAST t) {        String black = "000000";        String blue = "17178B";        String green = "008000";        //String purple = "7C308D";        String colour = black;        switch (t.getType()) {            case GroovyTokenTypes.ABSTRACT                      :            case GroovyTokenTypes.ANNOTATION                    :            case GroovyTokenTypes.ANNOTATIONS                   :            case GroovyTokenTypes.ANNOTATION_ARRAY_INIT         :            case GroovyTokenTypes.ANNOTATION_DEF                :            case GroovyTokenTypes.ANNOTATION_FIELD_DEF          :            case GroovyTokenTypes.ANNOTATION_MEMBER_VALUE_PAIR  :            case GroovyTokenTypes.ARRAY_DECLARATOR              :            case GroovyTokenTypes.ASSIGN                        :            case GroovyTokenTypes.AT                            :            case GroovyTokenTypes.BAND                          :            case GroovyTokenTypes.BAND_ASSIGN                   :            case GroovyTokenTypes.BIG_SUFFIX                    :            case GroovyTokenTypes.BLOCK                         :            case GroovyTokenTypes.BNOT                          :            case GroovyTokenTypes.BOR                           :            case GroovyTokenTypes.BOR_ASSIGN                    :            case GroovyTokenTypes.BSR                           :            case GroovyTokenTypes.BSR_ASSIGN                    :            case GroovyTokenTypes.BXOR                          :            case GroovyTokenTypes.BXOR_ASSIGN                   :            case GroovyTokenTypes.CASE_GROUP                    :            case GroovyTokenTypes.CLOSED_BLOCK                  :            case GroovyTokenTypes.CLOSURE_OP                    :            case GroovyTokenTypes.COLON                         :            case GroovyTokenTypes.COMMA                         :            case GroovyTokenTypes.COMPARE_TO                    :            case GroovyTokenTypes.CTOR_CALL                     :            case GroovyTokenTypes.CTOR_IDENT                    :            case GroovyTokenTypes.DEC                           :            case GroovyTokenTypes.DIGIT                         :            case GroovyTokenTypes.DIV                           :            case GroovyTokenTypes.DIV_ASSIGN                    :            case GroovyTokenTypes.DOLLAR                        :            case GroovyTokenTypes.DOT                           :            case GroovyTokenTypes.DYNAMIC_MEMBER                :            case GroovyTokenTypes.ELIST                         :            case GroovyTokenTypes.EMPTY_STAT                    :            case GroovyTokenTypes.ENUM_CONSTANT_DEF             :            case GroovyTokenTypes.ENUM_DEF                      :            case GroovyTokenTypes.EOF                           :            case GroovyTokenTypes.EQUAL                         :            case GroovyTokenTypes.ESC                           :            case GroovyTokenTypes.EXPONENT                      :            case GroovyTokenTypes.EXPR                          :            case GroovyTokenTypes.FINAL                         :            case GroovyTokenTypes.FLOAT_SUFFIX                  :            case GroovyTokenTypes.FOR_CONDITION                 :            case GroovyTokenTypes.FOR_EACH_CLAUSE               :            case GroovyTokenTypes.FOR_INIT                      :            case GroovyTokenTypes.FOR_IN_ITERABLE               :            case GroovyTokenTypes.FOR_ITERATOR                  :            case GroovyTokenTypes.GE                            :            case GroovyTokenTypes.GT                            :            case GroovyTokenTypes.HEX_DIGIT                     :            case GroovyTokenTypes.IDENT                         :            case GroovyTokenTypes.IMPLICIT_PARAMETERS           :            case GroovyTokenTypes.INC                           :            case GroovyTokenTypes.INDEX_OP                      :            case GroovyTokenTypes.INSTANCE_INIT                 :            case GroovyTokenTypes.INTERFACE_DEF                 :            case GroovyTokenTypes.LABELED_ARG                   :            case GroovyTokenTypes.LABELED_STAT                  :            case GroovyTokenTypes.LAND                          :            case GroovyTokenTypes.LBRACK                        :            case GroovyTokenTypes.LCURLY                        :            case GroovyTokenTypes.LE                            :            case GroovyTokenTypes.LETTER                        :            case GroovyTokenTypes.LIST_CONSTRUCTOR              :            case GroovyTokenTypes.LNOT                          :            case GroovyTokenTypes.LOR                           :            case GroovyTokenTypes.LPAREN                        :            case GroovyTokenTypes.LT                            :            case GroovyTokenTypes.MAP_CONSTRUCTOR               :            case GroovyTokenTypes.MEMBER_POINTER                :            case GroovyTokenTypes.METHOD_CALL                   :            case GroovyTokenTypes.METHOD_DEF                    :            case GroovyTokenTypes.MINUS                         :            case GroovyTokenTypes.MINUS_ASSIGN                  :            case GroovyTokenTypes.ML_COMMENT                    :            case GroovyTokenTypes.MOD                           :            case GroovyTokenTypes.MODIFIERS                     :            case GroovyTokenTypes.MOD_ASSIGN                    :            case GroovyTokenTypes.NLS                           :            case GroovyTokenTypes.NOT_EQUAL                     :            case GroovyTokenTypes.NULL_TREE_LOOKAHEAD           :            case GroovyTokenTypes.NUM_BIG_DECIMAL               :

⌨️ 快捷键说明

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