// This file is automatically generated by DemeterJ.

DisplayVisitor {
  {{
    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; }
    DisplayVisitor(java.io.PrintWriter out)     { set_out(out); }
    DisplayVisitor(java.io.PrintStream out)
      { set_out(new java.io.PrintWriter(out, true)); }
  }}
  finish {{ out.flush(); }}


  before A {{
    out.print(": A  (");
    indent++;
  }}
  after A {{
    out.print(" )");
    indent--;
  }}
  before -> A, x, X {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<x> ");
  }}
  before -> A, c, C {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<c> ");
  }}
  before -> A, d, D {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<d> ");
  }}
  before X {{
    out.print(": X  (");
    indent++;
  }}
  after X {{
    out.print(" )");
    indent--;
  }}
  before -> X, b, B {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<b> ");
  }}
  before C {{
    out.print(": C  (");
    indent++;
  }}
  after C {{
    out.print(" )");
    indent--;
  }}
  before D {{
    out.print(": D  (");
    indent++;
  }}
  after D {{
    out.print(" )");
    indent--;
  }}
  before E {{
    out.print(": E  (");
    indent++;
  }}
  after E {{
    out.print(" )");
    indent--;
  }}
  before F {{
    out.print(": F  (");
    indent++;
  }}
  after F {{
    out.print(" )");
    indent--;
  }}
  before -> F, g, G {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<g> ");
  }}
  before -> F, h, H {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<h> ");
  }}
  before G {{
    out.print(": G  (");
    indent++;
  }}
  after G {{
    out.print(" )");
    indent--;
  }}
  before H {{
    out.print(": H  (");
    indent++;
  }}
  after H {{
    out.print(" )");
    indent--;
  }}
  before Main {{
    out.print(": Main  (");
    indent++;
  }}
  after Main {{
    out.print(" )");
    indent--;
  }}
  before PrintingVisitor2 {{
    out.print(": PrintingVisitor2  (");
    indent++;
  }}
  after PrintingVisitor2 {{
    out.print(" )");
    indent--;
  }}
  before PrintVisitor {{
    out.print(": PrintVisitor  (");
    indent++;
  }}
  after PrintVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> PrintVisitor, indent, int {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<indent> ");
    out.print(" : int \"" + dest + "\"");
  }}
  before -> PrintVisitor, needSpace, boolean {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<needSpace> ");
    out.print(" : boolean \"" + dest + "\"");
  }}
  before CopyVisitor {{
    out.print(": CopyVisitor  (");
    indent++;
  }}
  after CopyVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> CopyVisitor, copy, Object {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<copy> ");
  }}
  before SubgraphVisitor {{
    out.print(": SubgraphVisitor  (");
    indent++;
  }}
  after SubgraphVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> SubgraphVisitor, is_equal, boolean {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<is_equal> ");
    out.print(" : boolean \"" + dest + "\"");
  }}
  before EqualVisitor {{
    out.print(": EqualVisitor  (");
    indent++;
  }}
  after EqualVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> EqualVisitor, is_equal, boolean {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<is_equal> ");
    out.print(" : boolean \"" + dest + "\"");
  }}
  before DisplayVisitor {{
    out.print(": DisplayVisitor  (");
    indent++;
  }}
  after DisplayVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> DisplayVisitor, indent, int {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<indent> ");
    out.print(" : int \"" + dest + "\"");
  }}
  before TraceVisitor {{
    out.print(": TraceVisitor  (");
    indent++;
  }}
  after TraceVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> TraceVisitor, indent, int {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<indent> ");
    out.print(" : int \"" + dest + "\"");
  }}
}