// This file is automatically generated by DemeterJ.

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


  before CSP {{
    out.println("before CSP");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CSP {{
    out.println("after CSP");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CSP, comments, Comment_List {{
    out.println("before -> CSP, comments, Comment_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CSP, comments, Comment_List {{
    out.println("after -> CSP, comments, Comment_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CSP, preamble, Preamble {{
    out.println("before -> CSP, preamble, Preamble ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CSP, preamble, Preamble {{
    out.println("after -> CSP, preamble, Preamble ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CSP, constraints, Constraint_List {{
    out.println("before -> CSP, constraints, Constraint_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CSP, constraints, Constraint_List {{
    out.println("after -> CSP, constraints, Constraint_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Comment {{
    out.println("before Comment");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Comment {{
    out.println("after Comment");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Comment, comment, Line {{
    out.println("before -> Comment, comment, Line ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Comment, comment, Line {{
    out.println("after -> Comment, comment, Line ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Preamble {{
    out.println("before Preamble");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Preamble {{
    out.println("after Preamble");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Preamble, numVariables, int {{
    out.println("before -> Preamble, numVariables, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Preamble, numVariables, int {{
    out.println("after -> Preamble, numVariables, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Preamble, numConstraints, int {{
    out.println("before -> Preamble, numConstraints, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Preamble, numConstraints, int {{
    out.println("after -> Preamble, numConstraints, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Constraint {{
    out.println("before Constraint");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Constraint {{
    out.println("after Constraint");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Constraint, relation, Relation {{
    out.println("before -> Constraint, relation, Relation ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Constraint, relation, Relation {{
    out.println("after -> Constraint, relation, Relation ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Constraint, weight, Weight {{
    out.println("before -> Constraint, weight, Weight ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Constraint, weight, Weight {{
    out.println("after -> Constraint, weight, Weight ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Constraint, variable_list, Variable_List {{
    out.println("before -> Constraint, variable_list, Variable_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Constraint, variable_list, Variable_List {{
    out.println("after -> Constraint, variable_list, Variable_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Relation {{
    out.println("before Relation");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Relation {{
    out.println("after Relation");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Relation, relationNumber, int {{
    out.println("before -> Relation, relationNumber, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Relation, relationNumber, int {{
    out.println("after -> Relation, relationNumber, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Weight {{
    out.println("before Weight");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Weight {{
    out.println("after Weight");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Weight, weight, int {{
    out.println("before -> Weight, weight, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Weight, weight, int {{
    out.println("after -> Weight, weight, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Variable {{
    out.println("before Variable");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Variable {{
    out.println("after Variable");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Variable, variable, int {{
    out.println("before -> Variable, variable, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Variable, variable, int {{
    out.println("after -> Variable, variable, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Main {{
    out.println("before Main");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Main {{
    out.println("after Main");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintVisitor {{
    out.println("before PrintVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintVisitor {{
    out.println("after PrintVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PrintVisitor, indent, int {{
    out.println("before -> PrintVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PrintVisitor, indent, int {{
    out.println("after -> PrintVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PrintVisitor, needSpace, boolean {{
    out.println("before -> PrintVisitor, needSpace, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PrintVisitor, needSpace, boolean {{
    out.println("after -> PrintVisitor, needSpace, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CopyVisitor {{
    out.println("before CopyVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CopyVisitor {{
    out.println("after CopyVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CopyVisitor, copy, Object {{
    out.println("before -> CopyVisitor, copy, Object ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CopyVisitor, copy, Object {{
    out.println("after -> CopyVisitor, copy, Object ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SubgraphVisitor {{
    out.println("before SubgraphVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SubgraphVisitor {{
    out.println("after SubgraphVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SubgraphVisitor, is_equal, boolean {{
    out.println("before -> SubgraphVisitor, is_equal, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SubgraphVisitor, is_equal, boolean {{
    out.println("after -> SubgraphVisitor, is_equal, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before EqualVisitor {{
    out.println("before EqualVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after EqualVisitor {{
    out.println("after EqualVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> EqualVisitor, is_equal, boolean {{
    out.println("before -> EqualVisitor, is_equal, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> EqualVisitor, is_equal, boolean {{
    out.println("after -> EqualVisitor, is_equal, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DisplayVisitor {{
    out.println("before DisplayVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DisplayVisitor {{
    out.println("after DisplayVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> DisplayVisitor, indent, int {{
    out.println("before -> DisplayVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> DisplayVisitor, indent, int {{
    out.println("after -> DisplayVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before TraceVisitor {{
    out.println("before TraceVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after TraceVisitor {{
    out.println("after TraceVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> TraceVisitor, indent, int {{
    out.println("before -> TraceVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> TraceVisitor, indent, int {{
    out.println("after -> TraceVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before UniversalVisitor {{
    out.println("before UniversalVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after UniversalVisitor {{
    out.println("after UniversalVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Comment_List {{
    out.println("before Comment_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Comment_List {{
    out.println("after Comment_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Comment_List, first, Nonempty_Comment_List {{
    out.println("before -> Comment_List, first, Nonempty_Comment_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Comment_List, first, Nonempty_Comment_List {{
    out.println("after -> Comment_List, first, Nonempty_Comment_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Constraint_List {{
    out.println("before Constraint_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Constraint_List {{
    out.println("after Constraint_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Constraint_List, first, Nonempty_Constraint_List {{
    out.println("before -> Constraint_List, first, Nonempty_Constraint_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Constraint_List, first, Nonempty_Constraint_List {{
    out.println("after -> Constraint_List, first, Nonempty_Constraint_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Variable_List {{
    out.println("before Variable_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Variable_List {{
    out.println("after Variable_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Variable_List, first, Nonempty_Variable_List {{
    out.println("before -> Variable_List, first, Nonempty_Variable_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Variable_List, first, Nonempty_Variable_List {{
    out.println("after -> Variable_List, first, Nonempty_Variable_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Comment_List {{
    out.println("before Nonempty_Comment_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Comment_List {{
    out.println("after Nonempty_Comment_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Comment_List, it, Comment {{
    out.println("before -> Nonempty_Comment_List, it, Comment ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Comment_List, it, Comment {{
    out.println("after -> Nonempty_Comment_List, it, Comment ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Comment_List, next, Nonempty_Comment_List {{
    out.println("before -> Nonempty_Comment_List, next, Nonempty_Comment_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Comment_List, next, Nonempty_Comment_List {{
    out.println("after -> Nonempty_Comment_List, next, Nonempty_Comment_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Constraint_List {{
    out.println("before Nonempty_Constraint_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Constraint_List {{
    out.println("after Nonempty_Constraint_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Constraint_List, it, Constraint {{
    out.println("before -> Nonempty_Constraint_List, it, Constraint ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Constraint_List, it, Constraint {{
    out.println("after -> Nonempty_Constraint_List, it, Constraint ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Constraint_List, next, Nonempty_Constraint_List {{
    out.println("before -> Nonempty_Constraint_List, next, Nonempty_Constraint_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Constraint_List, next, Nonempty_Constraint_List {{
    out.println("after -> Nonempty_Constraint_List, next, Nonempty_Constraint_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Variable_List {{
    out.println("before Nonempty_Variable_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Variable_List {{
    out.println("after Nonempty_Variable_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Variable_List, it, Variable {{
    out.println("before -> Nonempty_Variable_List, it, Variable ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Variable_List, it, Variable {{
    out.println("after -> Nonempty_Variable_List, it, Variable ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Variable_List, next, Nonempty_Variable_List {{
    out.println("before -> Nonempty_Variable_List, next, Nonempty_Variable_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Variable_List, next, Nonempty_Variable_List {{
    out.println("after -> Nonempty_Variable_List, next, Nonempty_Variable_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
}