// 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, classparts, ClassParts {{ out.print(" "); needSpace = false; }} after -> ClassDef, classparts, ClassParts {{ out.print("."); needSpace = false; }} before -> ParamClassName, parameters, ClassName_Commalist {{ out.print("("); needSpace = false; }} after -> ParamClassName, parameters, ClassName_Commalist {{ out.print(")"); needSpace = false; }} before -> ConstOrAltClass, parts, ClassElementWithSyntax_List {{ out.print("\t"); indent++; needSpace = false; }} after -> ConstOrAltClass, parts, ClassElementWithSyntax_List {{ indent--; }} before Part {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> Part, partname, PartName {{ out.print("<"); needSpace = false; }} after -> Part, partname, PartName {{ out.print(">"); needSpace = false; out.print(" "); needSpace = false; }} before -> OptionalPart, part, Part_Sandwich {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print("["); needSpace = false; }} after -> OptionalPart, part, Part_Sandwich {{ out.print("]"); needSpace = false; }} before ConstructionClass {{ out.print("="); needSpace = false; }} before AlternationClass {{ out.print(":"); needSpace = false; out.print("\t"); indent++; needSpace = false; }} after AlternationClass {{ indent--; space(); out.print("common"); needSpace = true; }} 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; out.print("}"); needSpace = false; }} before -> ClassSpec, actual_parameters, ClassSpec_Commalist {{ out.print("("); needSpace = false; }} after -> ClassSpec, actual_parameters, ClassSpec_Commalist {{ out.print(")"); needSpace = false; }} before -> SyntaxToken, string, String {{ space(); out.print("\"" + source.get_string() + "\""); needSpace = true; }} before PrintIndent {{ out.print("+"); needSpace = false; }} before PrintUnindent {{ out.print("-"); needSpace = false; }} before PrintSkip {{ out.print("*l"); needSpace = true; }} before PrintSpace {{ out.print("*s"); needSpace = true; }} before -> ClassName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> PartName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> Enhancement, where, Where {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> EnhancementBody, syntaxtoken, SyntaxToken {{ out.print(":"); needSpace = false; }} before -> PartCoordinate, syntaxclassname, SyntaxClassName {{ space(); out.print("part"); needSpace = true; }} before -> PartCoordinate, syntaxpartname, SyntaxPartName {{ out.print("."); needSpace = false; }} before -> OptionalPartCoordinate, syntaxclassname, SyntaxClassName {{ space(); out.print("inside"); needSpace = true; space(); out.print("optional"); needSpace = true; space(); out.print("part"); needSpace = true; }} before -> OptionalPartCoordinate, syntaxpartname, SyntaxPartName {{ out.print("."); needSpace = false; }} before -> ClassBody, syntaxclassname, SyntaxClassName {{ space(); out.print("class"); needSpace = true; }} before -> CollectionCoordinate, syntaxclassname, SyntaxClassName {{ space(); out.print("collection"); needSpace = true; }} before Left {{ out.print("{"); needSpace = false; }} before Right {{ out.print("}"); needSpace = false; }} before -> SyntaxClassName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> SyntaxPartName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before Before {{ space(); out.print("before"); needSpace = true; }} before After {{ space(); out.print("after"); 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; }} after -> Definition_DList, first, Nonempty_Definition_DList {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> ClassElement_PSandwich, s, ClassElement_Sandwich {{ out.print("{"); needSpace = false; }} after -> ClassElement_PSandwich, s, ClassElement_Sandwich {{ out.print("}"); needSpace = false; }} before -> ClassElement_Sandwich, inner, ClassElement {{ out.print(" "); needSpace = false; }} before -> Part_Sandwich, inner, Part {{ out.print(" "); needSpace = false; }} before -> RepeatedPart_Sandwich, inner, RepeatedPart {{ out.print(" "); needSpace = false; }} before -> ClassSpec_Sandwich, inner, ClassSpec {{ out.print(" "); needSpace = false; }} before -> Nonempty_Definition_DList, next, Nonempty_Definition_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_ClassName_Commalist, next, Nonempty_ClassName_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_ClassElementWithSyntax_List, next, Nonempty_ClassElementWithSyntax_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_ClassSpec_Barlist, next, Nonempty_ClassSpec_Barlist {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print("|"); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_Syntax_List, next, Nonempty_Syntax_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_Enhancement_List, next, Nonempty_Enhancement_List {{ out.print(" "); needSpace = false; }} }