// 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 -> TraversalAspect, aspectname, AspectName {{ space(); out.print("aspect"); needSpace = true; }} before -> Definition, definitionbody, DefinitionBody {{ space(); out.print("declare"); needSpace = true; }} after -> Definition, definitionbody, DefinitionBody {{ out.print(";"); needSpace = false; }} before -> CG, classgraphname, ClassGraphName {{ space(); out.print("ClassGraph"); needSpace = true; }} before -> Strategy, strategyname, StrategyName {{ space(); out.print("Strategy"); needSpace = true; }} before -> Strategy, strategyexpression, StrategyExpression {{ out.print("="); needSpace = false; }} before -> StrategyString, string, String {{ space(); out.print("\"" + source.get_string() + "\""); needSpace = true; }} before -> Compound, op, Op {{ out.print("("); needSpace = false; }} after -> Compound, strategyexpression_list, StrategyExpression_List {{ out.print(")"); needSpace = false; }} before And {{ out.print("&&"); needSpace = false; }} before -> AdaptiveMethod, methodsignature, MethodSignature {{ space(); out.print("Method"); needSpace = true; }} after -> MethodSignature, name, MethodName {{ out.print("("); needSpace = false; }} before -> MethodSignature, throwsclause, Throws {{ out.print(")"); needSpace = false; }} before PublicMethod {{ space(); out.print("public"); needSpace = true; }} before ProtectedMethod {{ space(); out.print("protected"); needSpace = true; }} before PrivateMethod {{ space(); out.print("private"); needSpace = true; }} before StaticMethod {{ space(); out.print("static"); needSpace = true; }} before FinalMethod {{ space(); out.print("final"); needSpace = true; }} before -> Throws, exceptions, ClassName_Commalist {{ out.print(" "); needSpace = false; space(); out.print("throws"); needSpace = true; }} before -> VisitorRef, visitorClasses, ClassName_Commalist {{ out.print("("); needSpace = false; }} after -> VisitorRef, visitorClasses, ClassName_Commalist {{ out.print(")"); needSpace = false; }} before ArraySpec {{ out.print("["); needSpace = false; out.print("]"); needSpace = false; }} before -> ClassGraphName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> StrategyName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> MethodName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> ParmName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> Main, s, String {{ space(); out.print("\"" + source.get_s() + "\""); needSpace = true; }} 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 -> Definition_CurlyList, first, Nonempty_Definition_CurlyList {{ out.print("{"); needSpace = false; }} after -> Definition_CurlyList, first, Nonempty_Definition_CurlyList {{ out.print("}"); needSpace = false; }} before -> Nonempty_Name, it, Ident {{ space(); out.print(source.get_it()); needSpace = true; }} before -> Nonempty_Name, next, Nonempty_Name {{ out.print("."); needSpace = false; }} before -> Nonempty_TraversalAspect_List, next, Nonempty_TraversalAspect_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_Definition_CurlyList, next, Nonempty_Definition_CurlyList {{ out.print(" "); needSpace = false; }} before -> Nonempty_StrategyExpression_List, next, Nonempty_StrategyExpression_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_MethodKeyword_List, next, Nonempty_MethodKeyword_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_MethodParm_Commalist, next, Nonempty_MethodParm_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_ArraySpec_List, next, Nonempty_ArraySpec_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} }