// 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 -> Preamble, localimports, LocalImports {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> Package, packagename, PackageName {{ space(); out.print("package"); needSpace = true; }} after -> Package, packagename, PackageName {{ out.print(";"); needSpace = false; }} after -> LocalImports, imports, Import_SList {{ 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 -> Import, packagename, PackageName {{ space(); out.print("import"); needSpace = true; }} after Import {{ out.print(";"); needSpace = false; }} before ImportAllClasses {{ out.print(".*"); needSpace = false; }} before -> ClassDef, parsedirective, ParseDirective {{ out.print(" "); needSpace = false; }} before -> ClassDef, classparts, ClassParts {{ out.print(" "); needSpace = false; }} before -> ClassDef, eoftoken, EOFtoken {{ out.print(" "); needSpace = false; }} after ClassDef {{ out.print("."); needSpace = false; }} before -> ParamClassName, parameters, ClassName_Commalist {{ out.print("("); needSpace = false; }} after -> ParamClassName, parameters, ClassName_Commalist {{ out.print(")"); needSpace = false; }} before -> Part, partname, PartName {{ out.print("<"); needSpace = false; }} after -> Part, partname, PartName {{ out.print(">"); needSpace = false; out.print(" "); needSpace = false; }} before -> PartInit, javacode, JavaCode {{ out.print(" "); needSpace = false; }} before OptionalPart {{ out.print("["); needSpace = false; }} after -> OptionalPart, part, Part_Sandwich {{ out.print("]"); needSpace = false; }} before ConstructionClass {{ out.print("="); needSpace = false; out.print(" "); needSpace = false; }} before AlternationClass {{ out.print(":"); needSpace = false; out.print(" "); needSpace = false; }} before -> AlternationClass, commonkeyword, CommonKeyword {{ out.print(" "); needSpace = false; }} after -> AlternationClass, commonkeyword, CommonKeyword {{ out.print(" "); needSpace = false; }} before -> RepetitionClass, sandwiched, RepeatedPart_Sandwich {{ out.print("~"); needSpace = false; out.print(" "); needSpace = false; }} after -> RepeatedPart, repeated, RepeatedElement_Sandwich {{ out.print(" "); needSpace = false; out.print("}"); needSpace = false; }} before OpenBrace {{ 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 -> PlainSyntax, 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 -> JavaCode, code, Text {{ space(); out.print("{{" + source.get_code() + "}" + "}"); needSpace = true; }} before ParseIdent {{ space(); out.print("parse"); needSpace = true; }} before NoParseIdent {{ space(); out.print("noparse"); needSpace = true; }} before VisitorsIdent {{ space(); out.print("visitors"); needSpace = true; }} before EndVisitorsIdent {{ space(); out.print("endvisitors"); needSpace = true; }} before VisitorIdent {{ space(); out.print("visitor"); needSpace = true; }} before NotParsedIdent {{ space(); out.print("notparsed"); needSpace = true; }} before DerivedIdent {{ space(); out.print("derived"); needSpace = true; }} before InitIdent {{ space(); out.print("init"); needSpace = true; }} before CommonIdent {{ space(); out.print("common"); needSpace = true; }} before LookaheadIdent {{ space(); out.print("lookahead"); needSpace = true; }} before -> OtherIdent, id, Ident {{ space(); out.print(source.get_id()); needSpace = true; }} before DoParse {{ space(); out.print("parse"); needSpace = true; }} before DontParse {{ space(); out.print("noparse"); needSpace = true; }} before BeginVisitors {{ space(); out.print("visitors"); needSpace = true; }} before EndVisitors {{ space(); out.print("endvisitors"); needSpace = true; }} before PublicClass {{ space(); out.print("public"); needSpace = true; }} before FinalClass {{ space(); out.print("final"); needSpace = true; }} before InterfaceClass {{ space(); out.print("interface"); needSpace = true; }} before VisitorClass {{ space(); out.print("visitor"); needSpace = true; }} before NotParsedClass {{ space(); out.print("notparsed"); needSpace = true; }} before FinalPart {{ space(); out.print("final"); needSpace = true; }} before StaticPart {{ space(); out.print("static"); needSpace = true; }} before ReadOnlyPart {{ space(); out.print("read-only"); needSpace = true; }} before PrivatePart {{ space(); out.print("private"); needSpace = true; }} before DerivedPart {{ space(); out.print("derived"); needSpace = true; }} before PartInitKeyword {{ space(); out.print("init"); needSpace = true; }} before ExtendsKeyword {{ space(); out.print("extends"); needSpace = true; }} before ImplementsKeyword {{ space(); out.print("implements"); needSpace = true; }} before CommonKeyword {{ space(); out.print("common"); needSpace = true; }} before LookaheadKeyword {{ space(); out.print("lookahead"); needSpace = true; }} before EOFtoken {{ space(); out.print("EOF"); needSpace = true; }} before -> ClassType, is_con, boolean {{ space(); out.print(source.get_is_con()); needSpace = true; }} before -> ClassType, is_alt, boolean {{ space(); out.print(source.get_is_alt()); needSpace = true; }} before -> ClassType, is_rep, boolean {{ space(); out.print(source.get_is_rep()); needSpace = true; }} before -> ClassType, is_public, boolean {{ space(); out.print(source.get_is_public()); needSpace = true; }} before -> ClassType, is_final, boolean {{ space(); out.print(source.get_is_final()); needSpace = true; }} before -> ClassType, is_interface, boolean {{ space(); out.print(source.get_is_interface()); needSpace = true; }} before -> ClassType, is_not_parsed, boolean {{ space(); out.print(source.get_is_not_parsed()); needSpace = true; }} before -> ClassType, is_visitor, boolean {{ space(); out.print(source.get_is_visitor()); needSpace = true; }} before -> PartType, is_final, boolean {{ space(); out.print(source.get_is_final()); needSpace = true; }} before -> PartType, is_static, boolean {{ space(); out.print(source.get_is_static()); needSpace = true; }} before -> PartType, is_derived, boolean {{ space(); out.print(source.get_is_derived()); needSpace = true; }} before -> PartType, has_getter, boolean {{ space(); out.print(source.get_has_getter()); needSpace = true; }} before -> PartType, has_setter, boolean {{ space(); out.print(source.get_has_setter()); 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 -> Part_Sandwich, inner, Part {{ out.print(" "); needSpace = false; }} before -> Part_Sandwich, second, Syntax_List {{ out.print(" "); needSpace = false; }} before -> RepeatedPart_Sandwich, inner, RepeatedPart {{ out.print(" "); needSpace = false; }} before -> RepeatedPart_Sandwich, second, Syntax_List {{ out.print(" "); needSpace = false; }} before -> RepeatedElement_Sandwich, inner, RepeatedElement {{ out.print(" "); needSpace = false; }} before -> RepeatedElement_Sandwich, second, Syntax_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_PackageName, next, Nonempty_PackageName {{ out.print("."); needSpace = false; }} before -> Nonempty_Name, next, Nonempty_Name {{ out.print("."); needSpace = false; }} before -> Nonempty_ClassGraphEntry_SList, next, Nonempty_ClassGraphEntry_SList {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> Nonempty_Import_SList, next, Nonempty_Import_SList {{ 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_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_Superclass_Commalist, next, Nonempty_Superclass_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_Interface_Commalist, next, Nonempty_Interface_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist {{ out.print(" "); 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; }} }