// 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 -> Main, func, FuncDef {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> Main, cd, ClassDefList {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} after -> Main, cd, ClassDefList {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> FuncDef, methodlist, MethodList {{ out.print(" "); needSpace = false; out.print(" "); needSpace = false; space(); out.print("Function"); needSpace = true; out.print("{"); needSpace = false; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print("\t"); indent++; needSpace = false; }} after -> FuncDef, methodlist, MethodList {{ indent--; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print(" "); needSpace = false; out.print(" "); needSpace = false; out.print("}"); needSpace = false; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> MethodDef, arg, TypeName {{ space(); out.print("apply"); needSpace = true; out.print("("); needSpace = false; }} after -> MethodDef, arg, TypeName {{ out.print(")"); needSpace = false; }} before -> MethodCons, rest, MethodList {{ out.print(";"); needSpace = false; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> ClassDef, name, Ident {{ out.print(" "); needSpace = false; out.print(" "); needSpace = false; space(); out.print(source.get_name()); needSpace = true; }} before -> ClassDef, decl, Decl {{ out.print(" "); needSpace = false; }} after -> ClassDef, decl, Decl {{ out.print("."); needSpace = false; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> Abstract, subtypes, NESubtypeList {{ out.print(":"); needSpace = false; out.print(" "); needSpace = false; }} before -> Concrete, fields, FieldList {{ out.print("="); needSpace = false; out.print(" "); needSpace = false; }} before -> Field, name, Ident {{ out.print("<"); needSpace = false; space(); out.print(source.get_name()); needSpace = true; }} before -> Field, typename, TypeName {{ out.print(">"); needSpace = false; out.print(" "); needSpace = false; }} before -> TypeName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> FieldCons, rest, FieldList {{ out.print(" "); needSpace = false; }} before -> SubtypeCons, first, TypeName {{ out.print(" "); needSpace = false; out.print("|"); needSpace = false; out.print(" "); needSpace = false; }} before -> StringCons, first, String {{ space(); out.print("\"" + source.get_first() + "\""); 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; }} }