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

📄 mindmapprinter.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 org.codehaus.groovy.antlr.GroovySourceAST;import org.codehaus.groovy.antlr.parser.GroovyTokenTypes;/** * An antlr AST visitor that prints a format suitable for viewing in http://freemind.sourceforge.net * * @author <a href="mailto:groovy@ross-rayner.com">Jeremy Rayner</a> * @version $Revision: 1.4 $ */public class MindMapPrinter extends VisitorAdapter {    private String[] tokenNames;    private PrintStream out;    private int depth;    /**     * A visitor that prints a format suitable for viewing in http://freemind.sourceforge.net     * @param out where to print the mindmap file contents to     * @param tokenNames an array of token names from antlr     */    public MindMapPrinter(PrintStream out,String[] tokenNames) {        this.tokenNames = tokenNames;        this.out = out;    }    public void setUp() {        depth = 0;        out.println("<map version='0.7.1'><node TEXT='AST'>");    }    public void visitDefault(GroovySourceAST t,int visit) {        if (visit == OPENING_VISIT) {            depth++;            String name = getName(t);            String colour = getColour(t);            String folded = getFolded(t);            out.print("<node TEXT='" + name + "' POSITION='right'" + colour + folded + ">");        } else {            out.println("</node>");            depth--;        }    }    public void tearDown() {        out.println("</node></map>");    }    private String getFolded(GroovySourceAST t) {        if (depth > 2 && t.getNumberOfChildren() > 0) {            switch (t.getType()) {                case GroovyTokenTypes.EXPR :                case GroovyTokenTypes.METHOD_DEF :                case GroovyTokenTypes.VARIABLE_DEF :                    return " FOLDED='true'";            }        }        if (t.getType() == GroovyTokenTypes.IMPORT) {            return " FOLDED='true'";        }        return "";    }    private String getColour(GroovySourceAST t) {        String colour = "";        String black = " COLOR=\"#000000\"";        String cyan = " COLOR=\"#006699\"";        String blue = " COLOR=\"#17178B\"";        String green = " COLOR=\"#008000\"";        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.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               :            case GroovyTokenTypes.NUM_BIG_INT                   :            case GroovyTokenTypes.NUM_DOUBLE                    :            case GroovyTokenTypes.NUM_FLOAT                     :            case GroovyTokenTypes.NUM_INT                       :

⌨️ 快捷键说明

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