// 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 BusRoute {{
    out.print(": BusRoute  (");
    indent++;
  }}
  after BusRoute {{
    out.print(" )");
    indent--;
  }}
  before -> BusRoute, brn, BRN {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<brn> ");
  }}
  before -> BusRoute, buses, Bus_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<buses> ");
  }}
  before -> BusRoute, busStops, BusStop_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<busStops> ");
  }}
  before Bus {{
    out.print(": Bus  (");
    indent++;
  }}
  after Bus {{
    out.print(" )");
    indent--;
  }}
  before -> Bus, bn, BN {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<bn> ");
  }}
  before -> Bus, passengers, Person_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<passengers> ");
  }}
  before BusStop {{
    out.print(": BusStop  (");
    indent++;
  }}
  after BusStop {{
    out.print(" )");
    indent--;
  }}
  before -> BusStop, bsn, BSN {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<bsn> ");
  }}
  before -> BusStop, waiting, Person_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<waiting> ");
  }}
  before Person {{
    out.print(": Person  (");
    indent++;
  }}
  after Person {{
    out.print(" )");
    indent--;
  }}
  before -> Person, pn, PN {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<pn> ");
  }}
  before BRN {{
    out.print(": BRN  (");
    indent++;
  }}
  after BRN {{
    out.print(" )");
    indent--;
  }}
  before -> BRN, string, String {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<string> ");
    out.print(" : String");
    out.print(" \"" + source.get_string() + "\" ");
  }}
  before BSN {{
    out.print(": BSN  (");
    indent++;
  }}
  after BSN {{
    out.print(" )");
    indent--;
  }}
  before -> BSN, string, String {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<string> ");
    out.print(" : String");
    out.print(" \"" + source.get_string() + "\" ");
  }}
  before BN {{
    out.print(": BN  (");
    indent++;
  }}
  after BN {{
    out.print(" )");
    indent--;
  }}
  before -> BN, string, String {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<string> ");
    out.print(" : String");
    out.print(" \"" + source.get_string() + "\" ");
  }}
  before PN {{
    out.print(": PN  (");
    indent++;
  }}
  after PN {{
    out.print(" )");
    indent--;
  }}
  before -> PN, string, String {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<string> ");
    out.print(" : String");
    out.print(" \"" + source.get_string() + "\" ");
  }}
  before Main {{
    out.print(": Main  (");
    indent++;
  }}
  after Main {{
    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 + "\"");
  }}
  before Bus_List {{
    out.print(": Bus_List  {");
    indent++;
  }}
  after Bus_List {{
    out.print(" }");
    indent--;
  }}
  before -> Bus_List, first, Nonempty_Bus_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<first> ");
  }}
  before BusStop_List {{
    out.print(": BusStop_List  {");
    indent++;
  }}
  after BusStop_List {{
    out.print(" }");
    indent--;
  }}
  before -> BusStop_List, first, Nonempty_BusStop_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<first> ");
  }}
  before Person_List {{
    out.print(": Person_List  {");
    indent++;
  }}
  after Person_List {{
    out.print(" }");
    indent--;
  }}
  before -> Person_List, first, Nonempty_Person_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<first> ");
  }}
  before Nonempty_Bus_List {{
    out.print(": Nonempty_Bus_List  (");
    indent++;
  }}
  after Nonempty_Bus_List {{
    out.print(" )");
    indent--;
  }}
  before -> Nonempty_Bus_List, it, Bus {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<it> ");
  }}
  before -> Nonempty_Bus_List, next, Nonempty_Bus_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<next> ");
  }}
  before Nonempty_BusStop_List {{
    out.print(": Nonempty_BusStop_List  (");
    indent++;
  }}
  after Nonempty_BusStop_List {{
    out.print(" )");
    indent--;
  }}
  before -> Nonempty_BusStop_List, it, BusStop {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<it> ");
  }}
  before -> Nonempty_BusStop_List, next, Nonempty_BusStop_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<next> ");
  }}
  before Nonempty_Person_List {{
    out.print(": Nonempty_Person_List  (");
    indent++;
  }}
  after Nonempty_Person_List {{
    out.print(" )");
    indent--;
  }}
  before -> Nonempty_Person_List, it, Person {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<it> ");
  }}
  before -> Nonempty_Person_List, next, Nonempty_Person_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<next> ");
  }}
}