sourceprinter.java

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· Java 代码 · 共 1,060 行 · 第 1/3 页

JAVA
1,060
字号

    public void visitInterfaceDef(GroovySourceAST t,int visit) {
        print(t,visit,"interface ",null,null);
    }

    public void visitInstanceInit(GroovySourceAST t, int visit) {
    	// do nothing
	}

	public void visitLabeledArg(GroovySourceAST t, int visit) {
        print(t,visit,":",null,null);
    }

	public void visitLabeledStat(GroovySourceAST t, int visit) {
        print(t,visit,":",null,null);
    }

    public void visitLand(GroovySourceAST t, int visit) {
        print(t,visit," && ",null,null);
    }

    // visit lbrack()
    //   token type LBRACK only used inside parser, never visited/created

    // visit lcurly()
    //   token type LCURLY only used inside parser, never visited/created
    
    public void visitLe(GroovySourceAST t, int visit) {
    	print(t,visit," <= ",null,null);
    }

    // visitLetter ...
    //   token type LETTER only used by lexer, never visited/created

    public void visitListConstructor(GroovySourceAST t, int visit) {
        printUpdatingTabLevel(t,visit,"[",null,"]");
    }

    public void visitLiteralAny(GroovySourceAST t,int visit) {
        print(t,visit,"any",null,null);
    }

    public void visitLiteralAs(GroovySourceAST t,int visit) {
        print(t,visit," as ",null,null);
    }

    public void visitLiteralAssert(GroovySourceAST t,int visit) {
    	if (t.getNumberOfChildren() > 1) {
    		print(t,visit,"assert ",null," : ");
    	} else {
    		print(t,visit,"assert ",null,null);
    	}
    }

    public void visitLiteralBoolean(GroovySourceAST t, int visit) {
        print(t,visit,"boolean",null,null);
    }

    public void visitLiteralBreak(GroovySourceAST t, int visit) {
        print(t,visit,"break ",null,null);
    }

    public void visitLiteralByte(GroovySourceAST t, int visit) {
        print(t,visit,"byte",null,null);
    }

    public void visitLiteralCase(GroovySourceAST t, int visit) {
        print(t,visit,"case ",null,":");
    }

    public void visitLiteralCatch(GroovySourceAST t,int visit) {
        printUpdatingTabLevel(t,visit," catch (",null,") ");
    }

    public void visitLiteralChar(GroovySourceAST t, int visit) {
        print(t,visit,"char",null,null);
    }

    // visitLiteralClass ...
    //   token type "class" only used by parser, never visited/created directly

    public void visitLiteralContinue(GroovySourceAST t, int visit) {
        print(t,visit,"continue ",null,null);
    }

    // visitLiteralDef ...
    //   token type "def" only used by parser, never visited/created directly

    public void visitLiteralDefault(GroovySourceAST t,int visit) {
        print(t,visit,"default",null,":");
    }

    public void visitLiteralDouble(GroovySourceAST t, int visit) {
        print(t,visit,"double",null,null);
    }

    // visitLiteralElse ...
    //   token type "else" only used by parser, never visited/created directly

    // visitLiteralEnum ...
    //   token type "enum" only used by parser, never visited/created directly

    // visitLiteralExtends
    //   token type "extends" only used by parser, never visited/created directly
    
    public void visitLiteralFalse(GroovySourceAST t,int visit) {
        print(t,visit,"false",null,null);
    }

    public void visitLiteralFinally(GroovySourceAST t,int visit) {
        print(t,visit,"finally ",null,null);
    }
    public void visitLiteralFloat(GroovySourceAST t,int visit) {
        print(t,visit,"float",null,null);
    }

    public void visitLiteralFor(GroovySourceAST t,int visit) {
        print(t,visit,"for ",null,null);
    }

    public void visitLiteralIf(GroovySourceAST t,int visit) {
        // slightly strange as subsequent visit is done after closing visit
        printUpdatingTabLevel(t,visit,"if ("," else ",") ");
    }

    // visitLiteralImplements
    //   token type "implements" only used by parser, never visited/created directly

    // visitLiteralImport
    //   token type "import" only used by parser, never visited/created directly

    public void visitLiteralIn(GroovySourceAST t, int visit) {
        print(t,visit," in ",null,null);
    }

    public void visitLiteralInstanceof(GroovySourceAST t, int visit) {
        print(t,visit," instanceof ",null,null);
    }

    public void visitLiteralInt(GroovySourceAST t,int visit) {
        print(t,visit,"int",null,null);
    }

    // visitLiteralInterface
    //   token type "interface" only used by parser, never visited/created directly

    public void visitLiteralLong(GroovySourceAST t,int visit) {
        print(t,visit,"long",null,null);
    }

    public void visitLiteralNative(GroovySourceAST t,int visit) {
        print(t,visit,"native ",null,null);
    }
    public void visitLiteralNew(GroovySourceAST t,int visit) {
    	if (t.childOfType(GroovyTokenTypes.ARRAY_DECLARATOR) == null) {
    		// only print parenthesis if is not of form def x = new int[5]
    		print(t,visit,"new ","(",")");
    	} else {
    		print(t,visit,"new ",null,null);
    	}
    }

    public void visitLiteralNull(GroovySourceAST t, int visit) {
        print(t,visit,"null",null,null);
    }

    // visitLiteralPackage
    //   token type "package" only used by parser, never visited/created directly

    public void visitLiteralPrivate(GroovySourceAST t,int visit) {
        print(t,visit,"private ",null,null);
    }

    public void visitLiteralProtected(GroovySourceAST t,int visit) {
        print(t,visit,"protected ",null,null);
    }

    public void visitLiteralPublic(GroovySourceAST t,int visit) {
        print(t,visit,"public ",null,null);
    }

    public void visitLiteralReturn(GroovySourceAST t, int visit) {
        print(t,visit,"return ",null,null);
    }

    public void visitLiteralShort(GroovySourceAST t,int visit) {
        print(t,visit,"short",null,null);
    }

    public void visitLiteralStatic(GroovySourceAST t, int visit) {
        print(t,visit,"static ",null,null);
    }

    public void visitLiteralSuper(GroovySourceAST t, int visit) {
    	// only visited when calling super() without parentheses, i.e. "super 99" is equivalent to "super(99)"
    	print(t,visit,"super",null,null);
    }

    public void visitLiteralSwitch(GroovySourceAST t, int visit) {
        if (visit == OPENING_VISIT) {
            print(t,visit,"switch (");
            tabLevel++;
        }
        if (visit == SUBSEQUENT_VISIT) {
            print(t,visit,") {");
        }
        if (visit == CLOSING_VISIT) {
            tabLevel--;
            print(t,visit,"}");
        }
    }

    public void visitLiteralSynchronized(GroovySourceAST t,int visit) {
    	if (t.getNumberOfChildren() > 0) {
    		print(t,visit,"synchronized (",null,") ");
    	} else {
    		print(t,visit,"synchronized ",null,null);    		
    	}
	}

    public void visitLiteralThis(GroovySourceAST t, int visit) {
        print(t,visit,"this",null,null);
    }

    public void visitLiteralThreadsafe(GroovySourceAST t,int visit) {
        print(t,visit,"threadsafe ",null,null);
    }

    public void visitLiteralThrow(GroovySourceAST t, int visit) {
        print(t,visit,"throw ",null,null);
    }

    public void visitLiteralThrows(GroovySourceAST t, int visit) {
        print(t,visit,"throws ",null,null);
    }

    public void visitLiteralTransient(GroovySourceAST t,int visit) {
        print(t,visit,"transient ",null,null);
    }

    public void visitLiteralTrue(GroovySourceAST t,int visit) {
        print(t,visit,"true",null,null);
    }
    public void visitLiteralTry(GroovySourceAST t,int visit) {
        print(t,visit,"try ",null,null);
    }
    public void visitLiteralVoid(GroovySourceAST t,int visit) {
        print(t,visit,"void",null,null);
    }
    public void visitLiteralVolatile(GroovySourceAST t,int visit) {
        print(t,visit,"volatile ",null,null);
    }
    public void visitLiteralWhile(GroovySourceAST t,int visit) {
        printUpdatingTabLevel(t,visit,"while (",null,") ");
    }

    public void visitLiteralWith(GroovySourceAST t,int visit) {
        printUpdatingTabLevel(t,visit,"with (",null,") ");
    }
    
    public void visitLnot(GroovySourceAST t, int visit) {
        print(t,visit,"!",null,null);
    }

	// Note: old closure syntax using LOR is deprecated, and also never creates/visits a LOR node
    public void visitLor(GroovySourceAST t, int visit) {
        print(t,visit," || ",null,null);
    }

    public void visitLt(GroovySourceAST t, int visit) {
        print(t,visit," < ",null,null);
    }

    public void visitMapConstructor(GroovySourceAST t, int visit) {
        if (t.getNumberOfChildren() == 0) {
            print(t,visit,"[:]",null,null);
        } else {
            printUpdatingTabLevel(t,visit,"[",null,"]");
        }
    }

    public void visitMemberPointer(GroovySourceAST t, int visit) {
        print(t,visit,".&",null,null);
    }

    public void visitMethodCall(GroovySourceAST t,int visit) {
    	if ("<command>".equals(t.getText())) {
    		printUpdatingTabLevel(t,visit," "," ",null);
    	} else {
    		printUpdatingTabLevel(t,visit,"("," ",")");
    	}
    }
    public void visitMethodDef(GroovySourceAST t,int visit) {
        //do nothing
    }
    public void visitMinus(GroovySourceAST t,int visit) {
        print(t,visit," - ",null,null);
    }
    public void visitMinusAssign(GroovySourceAST t, int visit) {
        print(t,visit," -= ",null,null);
    }

    // visitMlComment
    //   multi-line comments are not created on the AST currently.

    public void visitMod(GroovySourceAST t, int visit) {
        print(t,visit," % ",null,null);
    }

    public void visitModifiers(GroovySourceAST t,int visit) {
        //do nothing
    }
    public void visitModAssign(GroovySourceAST t, int visit) {
        print(t,visit," %= ",null,null);
    }

    // visitNls
    //   new lines are used by parser, but are not created on the AST,
    //   they can be implied by the source code line/column information

    // visitNullTreeLookahead
    //   not used explicitly by parser.
    
    
    public void visitNotEqual(GroovySourceAST t, int visit) {
        print(t,visit," != ",null,null);
    }

    public void visitNumBigDecimal(GroovySourceAST t,int visit) {
        print(t,visit,t.getText(),null,null);
    }
    public void visitNumBigInt(GroovySourceAST t,int visit) {
        print(t,visit,t.getText(),null,null);
    }
    public void visitNumDouble(GroovySourceAST t,int visit) {
        print(t,visit,t.getText(),null,null);
    }
    public void visitNumInt(GroovySourceAST t,int visit) {
        print(t,visit,t.getText(),null,null);
    }
    public void visitNumFloat(GroovySourceAST t,int visit) {
        print(t,visit,t.getText(),null,null);
    }
    public void visitNumLong(GroovySourceAST t,int visit) {
        print(t,visit,t.getText(),null,null);
    }
    public void visitObjblock(GroovySourceAST t,int visit) {
        if (visit == OPENING_VISIT) {
            tabLevel++;
            print(t,visit,"{");
        } else {
            tabLevel--;
            print(t,visit,"}");
        }

⌨️ 快捷键说明

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