core: import edu.neu.ccs.demeter.*; add: class PrintVisitor extends UniversalVisitor { protected int indent; public int get_indent() {{ return indent; }} public void set_indent(int new_indent) {{ indent = new_indent; }} protected boolean needSpace; public boolean get_needSpace() {{ return needSpace; }} public void set_needSpace(boolean new_needSpace) {{ needSpace = new_needSpace; }} public constructor PrintVisitor() {{ super(); }} public constructor PrintVisitor(int indent, boolean needSpace) {{ super(); set_indent(indent); set_needSpace(needSpace); }} {{ 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)); } }} public void finish() {{ out.flush(); }} protected void space() {{ if (needSpace) out.print(" "); needSpace = false; }} public void before_aspectname(TraversalAspect source, AspectName dest) {{ space(); out.print("aspect"); needSpace = true; }} public void before_definitionbody(Definition source, DefinitionBody dest) {{ space(); out.print("declare"); needSpace = true; }} public void after_definitionbody(Definition source, DefinitionBody dest) {{ out.print(";"); needSpace = false; }} public void before_classgraphname(CG source, ClassGraphName dest) {{ space(); out.print("ClassGraph"); needSpace = true; }} public void before_strategyname(Strategy source, StrategyName dest) {{ space(); out.print("Strategy"); needSpace = true; }} public void before_strategyexpression(Strategy source, StrategyExpression dest) {{ out.print("="); needSpace = false; }} public void before_string(StrategyString source, String dest) {{ space(); out.print("\"" + source.get_string() + "\""); needSpace = true; }} public void before_op(Compound source, Op dest) {{ out.print("("); needSpace = false; }} public void after_strategyexpression_list(Compound source, StrategyExpression_List dest) {{ out.print(")"); needSpace = false; }} public void before(And host) {{ out.print("&&"); needSpace = false; }} public void before_methodsignature(AdaptiveMethod source, MethodSignature dest) {{ space(); out.print("Method"); needSpace = true; }} public void after_name(MethodSignature source, MethodName dest) {{ out.print("("); needSpace = false; }} public void before_throwsclause(MethodSignature source, Throws dest) {{ out.print(")"); needSpace = false; }} public void before(PublicMethod host) {{ space(); out.print("public"); needSpace = true; }} public void before(ProtectedMethod host) {{ space(); out.print("protected"); needSpace = true; }} public void before(PrivateMethod host) {{ space(); out.print("private"); needSpace = true; }} public void before(StaticMethod host) {{ space(); out.print("static"); needSpace = true; }} public void before(FinalMethod host) {{ space(); out.print("final"); needSpace = true; }} public void before_exceptions(Throws source, ClassName_Commalist dest) {{ out.print(" "); needSpace = false; space(); out.print("throws"); needSpace = true; }} public void before_visitorClasses(VisitorRef source, ClassName_Commalist dest) {{ out.print("("); needSpace = false; }} public void after_visitorClasses(VisitorRef source, ClassName_Commalist dest) {{ out.print(")"); needSpace = false; }} public void before(ArraySpec host) {{ out.print("["); needSpace = false; out.print("]"); needSpace = false; }} public void before_ident(ClassGraphName source, Ident dest) {{ space(); out.print(source.get_ident()); needSpace = true; }} public void before_ident(StrategyName source, Ident dest) {{ space(); out.print(source.get_ident()); needSpace = true; }} public void before_ident(MethodName source, Ident dest) {{ space(); out.print(source.get_ident()); needSpace = true; }} public void before_name(ParmName source, Ident dest) {{ space(); out.print(source.get_name()); needSpace = true; }} public void before_s(Main source, String dest) {{ space(); out.print("\"" + source.get_s() + "\""); needSpace = true; }} public void before_indent(PrintVisitor source, int dest) {{ space(); out.print(source.get_indent()); needSpace = true; }} public void before_needSpace(PrintVisitor source, boolean dest) {{ space(); out.print(source.get_needSpace()); needSpace = true; }} public void before_copy(CopyVisitor source, Object dest) {{ space(); out.print(source.get_copy()); needSpace = true; }} public void before_is_equal(SubgraphVisitor source, boolean dest) {{ space(); out.print(source.get_is_equal()); needSpace = true; }} public void before_is_equal(EqualVisitor source, boolean dest) {{ space(); out.print(source.get_is_equal()); needSpace = true; }} public void before_indent(DisplayVisitor source, int dest) {{ space(); out.print(source.get_indent()); needSpace = true; }} public void before_indent(TraceVisitor source, int dest) {{ space(); out.print(source.get_indent()); needSpace = true; }} public void before_first(Definition_CurlyList source, Nonempty_Definition_CurlyList dest) {{ out.print("{"); needSpace = false; }} public void after_first(Definition_CurlyList source, Nonempty_Definition_CurlyList dest) {{ out.print("}"); needSpace = false; }} public void before_it(Nonempty_Name source, Ident dest) {{ space(); out.print(source.get_it()); needSpace = true; }} public void before_next(Nonempty_Name source, Nonempty_Name dest) {{ out.print("."); needSpace = false; }} public void before_next(Nonempty_TraversalAspect_List source, Nonempty_TraversalAspect_List dest) {{ out.print(" "); needSpace = false; }} public void before_next(Nonempty_Definition_CurlyList source, Nonempty_Definition_CurlyList dest) {{ out.print(" "); needSpace = false; }} public void before_next(Nonempty_StrategyExpression_List source, Nonempty_StrategyExpression_List dest) {{ out.print(" "); needSpace = false; }} public void before_next(Nonempty_MethodKeyword_List source, Nonempty_MethodKeyword_List dest) {{ out.print(" "); needSpace = false; }} public void before_next(Nonempty_MethodParm_Commalist source, Nonempty_MethodParm_Commalist dest) {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} public void before_next(Nonempty_ArraySpec_List source, Nonempty_ArraySpec_List dest) {{ out.print(" "); needSpace = false; }} public void before_next(Nonempty_ClassName_Commalist source, Nonempty_ClassName_Commalist dest) {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} {{ void universal_trv0_bef(UniversalVisitor _v_) { super.universal_trv0_bef(_v_); } }} {{ void universal_trv0_aft(UniversalVisitor _v_) { super.universal_trv0_aft(_v_); } }} {{ void universal_trv0(UniversalVisitor _v_) { universal_trv0_bef(_v_); super.universal_trv0(_v_); universal_trv0_aft(_v_); } }} }