// This file is automatically generated by DemeterJ. PrintVisitor { {{ protected java.io.PrintWriter out = new java.io.PrintWriter(System.out, true); java.io.PrintWriter get_out() { return out; } void set_out(java.io.PrintWriter new_out) { out = new_out; } PrintVisitor(java.io.PrintWriter out) { set_out(out); } PrintVisitor(java.io.PrintStream out) { set_out(new java.io.PrintWriter(out, true)); } }} finish {{ out.flush(); }} protected void space() {{ if (needSpace) out.print(" "); needSpace = false; }} before -> PackageDeclaration, name, Name {{ space(); out.print("package"); needSpace = true; }} after -> PackageDeclaration, name, Name {{ out.print(";"); needSpace = false; }} before -> ImportDeclaration, name, Name {{ space(); out.print("import"); needSpace = true; }} after ImportDeclaration {{ out.print(";"); needSpace = false; }} before DotStar {{ out.print(".*"); needSpace = false; }} before -> UnmodifiedClassDeclaration, ident, Ident {{ space(); out.print("class"); needSpace = true; space(); out.print(source.get_ident()); needSpace = true; }} before -> UnmodifiedClassDeclaration, name, Name {{ space(); out.print("extends"); needSpace = true; }} before -> UnmodifiedClassDeclaration, namelist, NameList {{ space(); out.print("implements"); needSpace = true; }} before -> ClassBody, classbodydeclarations, ClassBodyDeclarations {{ out.print("{"); needSpace = false; }} after -> ClassBody, classbodydeclarations, ClassBodyDeclarations {{ out.print("}"); needSpace = false; }} before -> UnmodifiedInterfaceDeclaration, identifier, Identifier {{ space(); out.print("interface"); needSpace = true; }} before -> UnmodifiedInterfaceDeclaration, namelist, NameList {{ space(); out.print("extends"); needSpace = true; }} before -> UnmodifiedInterfaceDeclaration, interfacememberdeclarations, InterfaceMemberDeclarations {{ out.print("{"); needSpace = false; }} after -> UnmodifiedInterfaceDeclaration, interfacememberdeclarations, InterfaceMemberDeclarations {{ out.print("}"); needSpace = false; }} after -> FieldDeclaration, variabledeclarators, VariableDeclarators {{ out.print(";"); needSpace = false; }} before -> VariableDeclarator, variableinitializer, VariableInitializer {{ out.print("="); needSpace = false; }} before SquareBracket {{ out.print("["); needSpace = false; out.print("]"); needSpace = false; }} before ArrayInitializer {{ out.print("{"); needSpace = false; }} after ArrayInitializer {{ out.print("}"); needSpace = false; }} before Comma {{ out.print(","); needSpace = false; }} before -> MethodDeclaration, namelist, NameList {{ space(); out.print("throws"); needSpace = true; }} before FormalParameters {{ out.print("("); needSpace = false; }} after FormalParameters {{ out.print(")"); needSpace = false; }} before -> ConstructorDeclaration, namelist, NameList {{ space(); out.print("throws"); needSpace = true; }} after -> ConstructorDeclaration, namelist, NameList {{ out.print("{"); needSpace = false; }} after -> ConstructorDeclaration, blockstatements, BlockStatements {{ out.print("}"); needSpace = false; }} before -> ThisConsInvoc, arguments, Arguments {{ space(); out.print("this"); needSpace = true; }} after -> ThisConsInvoc, arguments, Arguments {{ out.print(";"); needSpace = false; }} after -> SuperConsInvoc, primaryexpression, PrimaryExpression {{ out.print("."); needSpace = false; }} before -> SuperConsInvoc, arguments, Arguments {{ space(); out.print("super"); needSpace = true; }} after -> SuperConsInvoc, arguments, Arguments {{ out.print(";"); needSpace = false; }} before CPublic {{ space(); out.print("public"); needSpace = true; }} before CProtected {{ space(); out.print("protected"); needSpace = true; }} before CPrivate {{ space(); out.print("private"); needSpace = true; }} before CStatic {{ space(); out.print("static"); needSpace = true; }} before CAbstract {{ space(); out.print("abstract"); needSpace = true; }} before CFinal {{ space(); out.print("final"); needSpace = true; }} before CNative {{ space(); out.print("native"); needSpace = true; }} before CSynchronized {{ space(); out.print("synchronized"); needSpace = true; }} before CTransient {{ space(); out.print("transient"); needSpace = true; }} before CVolatile {{ space(); out.print("volatile"); needSpace = true; }} before boolType {{ space(); out.print("boolean"); needSpace = true; }} before byteType {{ space(); out.print("byte"); needSpace = true; }} before charType {{ space(); out.print("char"); needSpace = true; }} before shortType {{ space(); out.print("short"); needSpace = true; }} before intType {{ space(); out.print("int"); needSpace = true; }} before floatType {{ space(); out.print("float"); needSpace = true; }} before longType {{ space(); out.print("long"); needSpace = true; }} before doubleType {{ space(); out.print("double"); needSpace = true; }} before Void {{ space(); out.print("void"); needSpace = true; }} before -> Identifier, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before SemiColon {{ out.print(";"); needSpace = false; }} before Eq {{ out.print("="); needSpace = false; }} before starEq {{ out.print("*="); needSpace = false; }} before divEq {{ out.print("/="); needSpace = false; }} before modEq {{ out.print("%="); needSpace = false; }} before plEq {{ out.print("+="); needSpace = false; }} before minEq {{ out.print("-="); needSpace = false; }} before lshiftEq {{ out.print("<<="); needSpace = false; }} before rshiftEq {{ out.print(">>="); needSpace = false; }} before rrshiftEq {{ out.print(">>>="); needSpace = false; }} before andEq {{ out.print("&="); needSpace = false; }} before xorEq {{ out.print("^="); needSpace = false; }} before orEq {{ out.print("|="); needSpace = false; }} before -> TernExp, expression, Expression {{ out.print("?"); needSpace = false; }} before -> TernExp, conditionalexpression, ConditionalExpression {{ out.print(":"); needSpace = false; }} before EqEq {{ out.print("=="); needSpace = false; }} before NotEq {{ out.print("!="); needSpace = false; }} before -> InstanceOfExpression, type, Type {{ space(); out.print("instanceof"); needSpace = true; }} before Le {{ out.print("<"); needSpace = false; }} before Ge {{ out.print(">"); needSpace = false; }} before LeEq {{ out.print("<="); needSpace = false; }} before GeEq {{ out.print(">="); needSpace = false; }} before SEright {{ out.print("<<"); needSpace = false; }} before SEleft {{ out.print(">>"); needSpace = false; }} before SEunright {{ out.print(">>>"); needSpace = false; }} before Plus {{ out.print("+"); needSpace = false; }} before Minus {{ out.print("-"); needSpace = false; }} before Mul {{ out.print("*"); needSpace = false; }} before Div {{ out.print("/"); needSpace = false; }} before Mod {{ out.print("%"); needSpace = false; }} before -> PreIncrementExpression, primaryexpression, PrimaryExpression {{ out.print("++"); needSpace = false; }} before -> PreDecrementExpression, primaryexpression, PrimaryExpression {{ out.print("--"); needSpace = false; }} before Not {{ out.print("!"); needSpace = false; }} before Tilde {{ out.print("~"); needSpace = false; }} before PPlus {{ out.print("++"); needSpace = false; }} before PMinus {{ out.print("--"); needSpace = false; }} before -> CastExpSimple, type, Type {{ out.print("("); needSpace = false; }} before -> CastExpSimple, unaryexpression, UnaryExpression {{ out.print(")"); needSpace = false; }} before -> CastExpCmplx, type, Type {{ out.print("("); needSpace = false; }} before -> CastExpCmplx, unaryexpressionnotplusminus, UnaryExpressionNotPlusMinus {{ out.print(")"); needSpace = false; }} before This {{ space(); out.print("this"); needSpace = true; }} before -> SuperPP, identifier, Identifier {{ space(); out.print("super"); needSpace = true; out.print("."); needSpace = false; }} before -> ParenExp, expression, Expression {{ out.print("("); needSpace = false; }} after -> ParenExp, expression, Expression {{ out.print(")"); needSpace = false; }} before dotThis {{ out.print("."); needSpace = false; space(); out.print("this"); needSpace = true; }} before dotClass {{ out.print("."); needSpace = false; space(); out.print("class"); needSpace = true; }} before -> dotAlloc, allocationexpression, AllocationExpression {{ out.print("."); needSpace = false; }} before -> dotParam, expression, Expression {{ out.print("["); needSpace = false; }} after -> dotParam, expression, Expression {{ out.print("]"); needSpace = false; }} before -> dotIdent, identifier, Identifier {{ out.print("."); needSpace = false; }} before -> Integer_literal, integer, Integer {{ space(); out.print(source.get_integer()); needSpace = true; }} before -> Floating_point_literal, f, Float {{ space(); out.print(source.get_f()); needSpace = true; }} before -> Character_literal, character, Character {{ space(); out.print("'" + source.get_character() + "'"); needSpace = true; }} before -> String_literal, string, String {{ space(); out.print("\"" + source.get_string() + "\""); needSpace = true; }} before -> BooleanLiteral, b, Boolean {{ space(); out.print(source.get_b()); needSpace = true; }} before NullLiteral {{ space(); out.print("null"); needSpace = true; }} before Arguments {{ out.print("("); needSpace = false; }} after Arguments {{ out.print(")"); needSpace = false; }} before -> newCmplx, primitivetype, PrimitiveType {{ space(); out.print("new"); needSpace = true; }} before -> newSimple, name, Name {{ space(); out.print("new"); needSpace = true; }} before -> DimExp, expression, Expression {{ out.print("["); needSpace = false; }} after -> DimExp, expression, Expression {{ out.print("]"); needSpace = false; }} after -> StatementExpressionSe, statementexpression, StatementExpression {{ out.print(";"); needSpace = false; }} before -> LabeledStatement, statement, Statement {{ out.print(":"); needSpace = false; }} before -> Block, blockstatements, BlockStatements {{ out.print("{"); needSpace = false; }} after -> Block, blockstatements, BlockStatements {{ out.print("}"); needSpace = false; }} after -> LocVarDecl, localvariabledeclaration, LocalVariableDeclaration {{ out.print(";"); needSpace = false; }} before -> SwitchStatement, expression, Expression {{ space(); out.print("switch"); needSpace = true; out.print("("); needSpace = false; }} before -> SwitchStatement, caseblocks, CaseBlocks {{ out.print(")"); needSpace = false; out.print("{"); needSpace = false; }} after -> SwitchStatement, caseblocks, CaseBlocks {{ out.print("}"); needSpace = false; }} before -> CaseExp, expression, Expression {{ space(); out.print("case"); needSpace = true; }} after -> CaseExp, expression, Expression {{ out.print(":"); needSpace = false; }} before DefExp {{ space(); out.print("default"); needSpace = true; out.print(":"); needSpace = false; }} before -> IfStatement, expression, Expression {{ space(); out.print("if"); needSpace = true; out.print("("); needSpace = false; }} before -> IfStatement, statement, Statement {{ out.print(")"); needSpace = false; }} before -> IfStatement, elseStmt, Statement {{ space(); out.print("else"); needSpace = true; }} before -> WhileStatement, expression, Expression {{ space(); out.print("while"); needSpace = true; out.print("("); needSpace = false; }} before -> WhileStatement, statement, Statement {{ out.print(")"); needSpace = false; }} before -> DoStatement, statement, Statement {{ space(); out.print("do"); needSpace = true; }} before -> DoStatement, expression, Expression {{ space(); out.print("while"); needSpace = true; out.print("("); needSpace = false; }} after -> DoStatement, expression, Expression {{ out.print(")"); needSpace = false; out.print(";"); needSpace = false; }} before -> ForStatement, forinitopt, ForInitOpt {{ space(); out.print("for"); needSpace = true; out.print("("); needSpace = false; }} before -> ForStatement, statement, Statement {{ out.print(")"); needSpace = false; }} after ForInitOpt {{ out.print(";"); needSpace = false; }} after ForEvalExp {{ out.print(";"); needSpace = false; }} before BreakStatement {{ space(); out.print("break"); needSpace = true; }} after BreakStatement {{ out.print(";"); needSpace = false; }} before ContinueStatement {{ space(); out.print("continue"); needSpace = true; }} after ContinueStatement {{ out.print(";"); needSpace = false; }} before ReturnStatement {{ space(); out.print("return"); needSpace = true; }} after ReturnStatement {{ out.print(";"); needSpace = false; }} before -> ThrowStatement, expression, Expression {{ space(); out.print("throw"); needSpace = true; }} after -> ThrowStatement, expression, Expression {{ out.print(";"); needSpace = false; }} before -> SynchronizedStatement, expression, Expression {{ space(); out.print("synchronized"); needSpace = true; out.print("("); needSpace = false; }} before -> SynchronizedStatement, block, Block {{ out.print(")"); needSpace = false; }} before -> TryStatement, block, Block {{ space(); out.print("try"); needSpace = true; }} before -> TryStatement, finalblock, Block {{ space(); out.print("finally"); needSpace = true; }} before -> CatchBlock, formalparameter, FormalParameter {{ space(); out.print("catch"); needSpace = true; out.print("("); needSpace = false; }} before -> CatchBlock, block, Block {{ out.print(")"); needSpace = false; }} before -> PrintVisitor, indent, int {{ space(); out.print(source.get_indent()); needSpace = true; }} before -> PrintVisitor, needSpace, boolean {{ space(); out.print(source.get_needSpace()); needSpace = true; }} before -> CopyVisitor, copy, Object {{ space(); out.print(source.get_copy()); needSpace = true; }} before -> SubgraphVisitor, is_equal, boolean {{ space(); out.print(source.get_is_equal()); needSpace = true; }} before -> EqualVisitor, is_equal, boolean {{ space(); out.print(source.get_is_equal()); needSpace = true; }} before -> DisplayVisitor, indent, int {{ space(); out.print(source.get_indent()); needSpace = true; }} before -> TraceVisitor, indent, int {{ space(); out.print(source.get_indent()); needSpace = true; }} before -> Nonempty_VariableDeclarators, next, Nonempty_VariableDeclarators {{ out.print(","); needSpace = false; }} before -> Nonempty_VariableInitializers, next, Nonempty_VariableInitializers {{ out.print(","); needSpace = false; }} before -> Nonempty_FormalParameterList, next, Nonempty_FormalParameterList {{ out.print(","); needSpace = false; }} before -> Nonempty_Name, next, Nonempty_Name {{ out.print("."); needSpace = false; }} before -> Nonempty_NameList, next, Nonempty_NameList {{ out.print(","); needSpace = false; }} before -> Nonempty_ConditionalOrExpression, next, Nonempty_ConditionalOrExpression {{ out.print("||"); needSpace = false; }} before -> Nonempty_ConditionalAndExpression, next, Nonempty_ConditionalAndExpression {{ out.print("&&"); needSpace = false; }} before -> Nonempty_InclusiveOrExpression, next, Nonempty_InclusiveOrExpression {{ out.print("|"); needSpace = false; }} before -> Nonempty_ExclusiveOrExpression, next, Nonempty_ExclusiveOrExpression {{ out.print("^"); needSpace = false; }} before -> Nonempty_AndExpression, next, Nonempty_AndExpression {{ out.print("&"); needSpace = false; }} before -> Nonempty_ArgumentList, next, Nonempty_ArgumentList {{ out.print(","); needSpace = false; }} before -> Nonempty_StatementExpressionList, next, Nonempty_StatementExpressionList {{ out.print(","); needSpace = false; }} }