// 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 -> ClassDef, classname, ClassName {{ out.print("("); needSpace = false; }} after -> ClassDef, classparts, ClassParts {{ out.print(")"); needSpace = false; }} before -> ConstOrAltClass, parts, PartOrSyntax_List {{ out.print("\t"); indent++; needSpace = false; out.print("\t"); indent++; needSpace = false; out.print("\t"); indent++; needSpace = false; }} after -> ConstOrAltClass, parts, PartOrSyntax_List {{ indent--; indent--; indent--; }} before -> Part, partname, PartName {{ out.print("("); needSpace = false; }} after -> Part, partname, PartName {{ out.print(")"); needSpace = false; }} before -> OptionalPart, part, Part_Sandwich {{ out.print("(opt"); needSpace = true; }} after -> OptionalPart, part, Part_Sandwich {{ out.print(")"); needSpace = false; }} before ConstructionClass {{ out.print("="); needSpace = false; }} before -> AlternationClass, subclasses, Subclass_Barlist {{ out.print(":"); needSpace = false; out.print("\t"); indent++; needSpace = false; out.print("\t"); indent++; needSpace = false; out.print("\t"); indent++; needSpace = false; }} after -> AlternationClass, subclasses, Subclass_Barlist {{ indent--; indent--; indent--; }} before Common {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print("\t"); indent++; needSpace = false; out.print("\t"); indent++; needSpace = false; out.print("\t"); indent++; needSpace = false; out.print("*"); needSpace = false; space(); out.print("common"); needSpace = true; out.print("*"); needSpace = false; indent--; indent--; indent--; }} before -> RepetitionClass, sandwiched, RepeatedPart_Sandwich {{ out.print("~"); needSpace = false; }} before -> RepeatedPart, repeated, ClassSpec_Sandwich {{ out.print("("); needSpace = false; }} after -> RepeatedPart, repeated, ClassSpec_Sandwich {{ out.print(")"); needSpace = false; }} before -> PlainSyntax, string, String {{ space(); out.print("\"" + source.get_string() + "\""); needSpace = true; }} before -> DirName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> ClassName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> PartName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> TraversalName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> VisitorName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> MethodName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> JavaCode, code, String {{ out.print("(@"); needSpace = false; space(); out.print("\"" + source.get_code() + "\""); needSpace = true; }} after -> JavaCode, code, String {{ 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 -> ClassDef_DList, first, Nonempty_ClassDef_DList {{ out.print("("); needSpace = false; }} after -> ClassDef_DList, first, Nonempty_ClassDef_DList {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print(")"); needSpace = false; }} before PartOrSyntax_List {{ out.print("("); needSpace = false; }} after PartOrSyntax_List {{ out.print(")"); needSpace = false; }} before -> Subclass_Barlist, first, Nonempty_Subclass_Barlist {{ out.print("("); needSpace = false; }} after -> Subclass_Barlist, first, Nonempty_Subclass_Barlist {{ out.print(")"); needSpace = false; }} before Syntax_List {{ out.print("("); needSpace = false; }} after Syntax_List {{ out.print(")"); needSpace = false; }} before -> Nonempty_ClassDef_DList, next, Nonempty_ClassDef_DList {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print("|"); needSpace = false; }} }