// 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 XAspectLanguage3 {{
    out.println("before XAspectLanguage3");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after XAspectLanguage3 {{
    out.println("after XAspectLanguage3");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> XAspectLanguage3, aspectlanguage_list, AspectLanguage_List {{
    out.println("before -> XAspectLanguage3, aspectlanguage_list, AspectLanguage_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> XAspectLanguage3, aspectlanguage_list, AspectLanguage_List {{
    out.println("after -> XAspectLanguage3, aspectlanguage_list, AspectLanguage_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before AspectLanguage {{
    out.println("before AspectLanguage");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after AspectLanguage {{
    out.println("after AspectLanguage");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassDictionaryL {{
    out.println("before ClassDictionaryL");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassDictionaryL {{
    out.println("after ClassDictionaryL");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDictionaryL, classdictionaryname, ClassDictionaryName {{
    out.println("before -> ClassDictionaryL, classdictionaryname, ClassDictionaryName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDictionaryL, classdictionaryname, ClassDictionaryName {{
    out.println("after -> ClassDictionaryL, classdictionaryname, ClassDictionaryName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDictionaryL, classdict, ClassDict {{
    out.println("before -> ClassDictionaryL, classdict, ClassDict ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDictionaryL, classdict, ClassDict {{
    out.println("after -> ClassDictionaryL, classdict, ClassDict ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SelectorL {{
    out.println("before SelectorL");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SelectorL {{
    out.println("after SelectorL");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SelectorL, traversalname, TraversalName {{
    out.println("before -> SelectorL, traversalname, TraversalName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SelectorL, traversalname, TraversalName {{
    out.println("after -> SelectorL, traversalname, TraversalName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SelectorL, strategydef_list, StrategyDef_List {{
    out.println("before -> SelectorL, strategydef_list, StrategyDef_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SelectorL, strategydef_list, StrategyDef_List {{
    out.println("after -> SelectorL, strategydef_list, StrategyDef_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SelectorL, nodesubsetdef_list, NodeSubsetDef_List {{
    out.println("before -> SelectorL, nodesubsetdef_list, NodeSubsetDef_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SelectorL, nodesubsetdef_list, NodeSubsetDef_List {{
    out.println("after -> SelectorL, nodesubsetdef_list, NodeSubsetDef_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SelectorL, selectorname, SelectorName {{
    out.println("before -> SelectorL, selectorname, SelectorName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SelectorL, selectorname, SelectorName {{
    out.println("after -> SelectorL, selectorname, SelectorName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SelectorL, classdictionaryname, ClassDictionaryName {{
    out.println("before -> SelectorL, classdictionaryname, ClassDictionaryName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SelectorL, classdictionaryname, ClassDictionaryName {{
    out.println("after -> SelectorL, classdictionaryname, ClassDictionaryName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before StrategyDef {{
    out.println("before StrategyDef");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after StrategyDef {{
    out.println("after StrategyDef");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> StrategyDef, strategyname, StrategyName {{
    out.println("before -> StrategyDef, strategyname, StrategyName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> StrategyDef, strategyname, StrategyName {{
    out.println("after -> StrategyDef, strategyname, StrategyName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> StrategyDef, strategyexpr, StrategyExpr {{
    out.println("before -> StrategyDef, strategyexpr, StrategyExpr ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> StrategyDef, strategyexpr, StrategyExpr {{
    out.println("after -> StrategyDef, strategyexpr, StrategyExpr ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NodeSubsetDef {{
    out.println("before NodeSubsetDef");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NodeSubsetDef {{
    out.println("after NodeSubsetDef");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> NodeSubsetDef, nodesubsetname, NodeSubsetName {{
    out.println("before -> NodeSubsetDef, nodesubsetname, NodeSubsetName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> NodeSubsetDef, nodesubsetname, NodeSubsetName {{
    out.println("after -> NodeSubsetDef, nodesubsetname, NodeSubsetName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> NodeSubsetDef, nodesubsetexpression, NodeSubsetExpression {{
    out.println("before -> NodeSubsetDef, nodesubsetexpression, NodeSubsetExpression ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> NodeSubsetDef, nodesubsetexpression, NodeSubsetExpression {{
    out.println("after -> NodeSubsetDef, nodesubsetexpression, NodeSubsetExpression ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NodeSubsetExpression {{
    out.println("before NodeSubsetExpression");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NodeSubsetExpression {{
    out.println("after NodeSubsetExpression");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Simple {{
    out.println("before Simple");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Simple {{
    out.println("after Simple");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before BCompound {{
    out.println("before BCompound");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after BCompound {{
    out.println("after BCompound");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BCompound, op, BinaryOp {{
    out.println("before -> BCompound, op, BinaryOp ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BCompound, op, BinaryOp {{
    out.println("after -> BCompound, op, BinaryOp ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BCompound, args, NodeSubsetExpression_PCList {{
    out.println("before -> BCompound, args, NodeSubsetExpression_PCList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BCompound, args, NodeSubsetExpression_PCList {{
    out.println("after -> BCompound, args, NodeSubsetExpression_PCList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before UCompound {{
    out.println("before UCompound");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after UCompound {{
    out.println("after UCompound");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> UCompound, op, UnaryOp {{
    out.println("before -> UCompound, op, UnaryOp ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> UCompound, op, UnaryOp {{
    out.println("after -> UCompound, op, UnaryOp ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> UCompound, arg, NodeSubsetExpression {{
    out.println("before -> UCompound, arg, NodeSubsetExpression ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> UCompound, arg, NodeSubsetExpression {{
    out.println("after -> UCompound, arg, NodeSubsetExpression ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassNameSet {{
    out.println("before ClassNameSet");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassNameSet {{
    out.println("after ClassNameSet");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassNameSet, classname_bclist, ClassName_BCList {{
    out.println("before -> ClassNameSet, classname_bclist, ClassName_BCList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassNameSet, classname_bclist, ClassName_BCList {{
    out.println("after -> ClassNameSet, classname_bclist, ClassName_BCList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before GraphNodes {{
    out.println("before GraphNodes");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after GraphNodes {{
    out.println("after GraphNodes");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> GraphNodes, strategyname, StrategyName {{
    out.println("before -> GraphNodes, strategyname, StrategyName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> GraphNodes, strategyname, StrategyName {{
    out.println("after -> GraphNodes, strategyname, StrategyName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before GraphNodeRegExp {{
    out.println("before GraphNodeRegExp");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after GraphNodeRegExp {{
    out.println("after GraphNodeRegExp");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> GraphNodeRegExp, classname, ClassName {{
    out.println("before -> GraphNodeRegExp, classname, ClassName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> GraphNodeRegExp, classname, ClassName {{
    out.println("after -> GraphNodeRegExp, classname, ClassName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> GraphNodeRegExp, wildcard, WildCard {{
    out.println("before -> GraphNodeRegExp, wildcard, WildCard ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> GraphNodeRegExp, wildcard, WildCard {{
    out.println("after -> GraphNodeRegExp, wildcard, WildCard ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before WildCard {{
    out.println("before WildCard");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after WildCard {{
    out.println("after WildCard");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before BinaryOp {{
    out.println("before BinaryOp");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after BinaryOp {{
    out.println("after BinaryOp");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before UnaryOp {{
    out.println("before UnaryOp");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after UnaryOp {{
    out.println("after UnaryOp");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Union {{
    out.println("before Union");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Union {{
    out.println("after Union");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Intersection {{
    out.println("before Intersection");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Intersection {{
    out.println("after Intersection");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Complement {{
    out.println("before Complement");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Complement {{
    out.println("after Complement");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassName {{
    out.println("before ClassName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassName {{
    out.println("after ClassName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassName, name, Name {{
    out.println("before -> ClassName, name, Name ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassName, name, Name {{
    out.println("after -> ClassName, name, Name ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Name {{
    out.println("before Name");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Name {{
    out.println("after Name");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Name, first, Nonempty_Name {{
    out.println("before -> Name, first, Nonempty_Name ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Name, first, Nonempty_Name {{
    out.println("after -> Name, first, Nonempty_Name ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassDict {{
    out.println("before ClassDict");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassDict {{
    out.println("after ClassDict");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDict, cdtext, ConstText {{
    out.println("before -> ClassDict, cdtext, ConstText ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDict, cdtext, ConstText {{
    out.println("after -> ClassDict, cdtext, ConstText ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before StrategyExpr {{
    out.println("before StrategyExpr");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after StrategyExpr {{
    out.println("after StrategyExpr");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> StrategyExpr, strategyString, String {{
    out.println("before -> StrategyExpr, strategyString, String ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> StrategyExpr, strategyString, String {{
    out.println("after -> StrategyExpr, strategyString, String ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SelectorName {{
    out.println("before SelectorName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SelectorName {{
    out.println("after SelectorName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SelectorName, name, ConstIdent {{
    out.println("before -> SelectorName, name, ConstIdent ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SelectorName, name, ConstIdent {{
    out.println("after -> SelectorName, name, ConstIdent ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before TraversalName {{
    out.println("before TraversalName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after TraversalName {{
    out.println("after TraversalName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> TraversalName, name, ConstIdent {{
    out.println("before -> TraversalName, name, ConstIdent ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> TraversalName, name, ConstIdent {{
    out.println("after -> TraversalName, name, ConstIdent ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before StrategyName {{
    out.println("before StrategyName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after StrategyName {{
    out.println("after StrategyName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> StrategyName, name, ConstIdent {{
    out.println("before -> StrategyName, name, ConstIdent ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> StrategyName, name, ConstIdent {{
    out.println("after -> StrategyName, name, ConstIdent ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NodeSubsetName {{
    out.println("before NodeSubsetName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NodeSubsetName {{
    out.println("after NodeSubsetName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> NodeSubsetName, name, ConstIdent {{
    out.println("before -> NodeSubsetName, name, ConstIdent ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> NodeSubsetName, name, ConstIdent {{
    out.println("after -> NodeSubsetName, name, ConstIdent ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassDictionaryName {{
    out.println("before ClassDictionaryName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassDictionaryName {{
    out.println("after ClassDictionaryName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDictionaryName, name, ConstIdent {{
    out.println("before -> ClassDictionaryName, name, ConstIdent ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDictionaryName, name, ConstIdent {{
    out.println("after -> ClassDictionaryName, name, ConstIdent ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Operator {{
    out.println("before Operator");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Operator {{
    out.println("after Operator");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ConstIdent {{
    out.println("before ConstIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ConstIdent {{
    out.println("after ConstIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ConstIdent, ident, Ident {{
    out.println("before -> ConstIdent, ident, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ConstIdent, ident, Ident {{
    out.println("after -> ConstIdent, ident, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ConstText {{
    out.println("before ConstText");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ConstText {{
    out.println("after ConstText");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ConstText, text, Text {{
    out.println("before -> ConstText, text, Text ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ConstText, text, Text {{
    out.println("after -> ConstText, text, Text ");
    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 AspectLanguage_List {{
    out.println("before AspectLanguage_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after AspectLanguage_List {{
    out.println("after AspectLanguage_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> AspectLanguage_List, first, Nonempty_AspectLanguage_List {{
    out.println("before -> AspectLanguage_List, first, Nonempty_AspectLanguage_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> AspectLanguage_List, first, Nonempty_AspectLanguage_List {{
    out.println("after -> AspectLanguage_List, first, Nonempty_AspectLanguage_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before StrategyDef_List {{
    out.println("before StrategyDef_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after StrategyDef_List {{
    out.println("after StrategyDef_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> StrategyDef_List, first, Nonempty_StrategyDef_List {{
    out.println("before -> StrategyDef_List, first, Nonempty_StrategyDef_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> StrategyDef_List, first, Nonempty_StrategyDef_List {{
    out.println("after -> StrategyDef_List, first, Nonempty_StrategyDef_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NodeSubsetDef_List {{
    out.println("before NodeSubsetDef_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NodeSubsetDef_List {{
    out.println("after NodeSubsetDef_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> NodeSubsetDef_List, first, Nonempty_NodeSubsetDef_List {{
    out.println("before -> NodeSubsetDef_List, first, Nonempty_NodeSubsetDef_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> NodeSubsetDef_List, first, Nonempty_NodeSubsetDef_List {{
    out.println("after -> NodeSubsetDef_List, first, Nonempty_NodeSubsetDef_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NodeSubsetExpression_PCList {{
    out.println("before NodeSubsetExpression_PCList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NodeSubsetExpression_PCList {{
    out.println("after NodeSubsetExpression_PCList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> NodeSubsetExpression_PCList, first, Nonempty_NodeSubsetExpression_PCList {{
    out.println("before -> NodeSubsetExpression_PCList, first, Nonempty_NodeSubsetExpression_PCList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> NodeSubsetExpression_PCList, first, Nonempty_NodeSubsetExpression_PCList {{
    out.println("after -> NodeSubsetExpression_PCList, first, Nonempty_NodeSubsetExpression_PCList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassName_BCList {{
    out.println("before ClassName_BCList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassName_BCList {{
    out.println("after ClassName_BCList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassName_BCList, first, Nonempty_ClassName_BCList {{
    out.println("before -> ClassName_BCList, first, Nonempty_ClassName_BCList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassName_BCList, first, Nonempty_ClassName_BCList {{
    out.println("after -> ClassName_BCList, first, Nonempty_ClassName_BCList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Name {{
    out.println("before Nonempty_Name");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Name {{
    out.println("after Nonempty_Name");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Name, it, ConstIdent {{
    out.println("before -> Nonempty_Name, it, ConstIdent ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Name, it, ConstIdent {{
    out.println("after -> Nonempty_Name, it, ConstIdent ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Name, next, Nonempty_Name {{
    out.println("before -> Nonempty_Name, next, Nonempty_Name ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Name, next, Nonempty_Name {{
    out.println("after -> Nonempty_Name, next, Nonempty_Name ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_AspectLanguage_List {{
    out.println("before Nonempty_AspectLanguage_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_AspectLanguage_List {{
    out.println("after Nonempty_AspectLanguage_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_AspectLanguage_List, it, AspectLanguage {{
    out.println("before -> Nonempty_AspectLanguage_List, it, AspectLanguage ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_AspectLanguage_List, it, AspectLanguage {{
    out.println("after -> Nonempty_AspectLanguage_List, it, AspectLanguage ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_AspectLanguage_List, next, Nonempty_AspectLanguage_List {{
    out.println("before -> Nonempty_AspectLanguage_List, next, Nonempty_AspectLanguage_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_AspectLanguage_List, next, Nonempty_AspectLanguage_List {{
    out.println("after -> Nonempty_AspectLanguage_List, next, Nonempty_AspectLanguage_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_StrategyDef_List {{
    out.println("before Nonempty_StrategyDef_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_StrategyDef_List {{
    out.println("after Nonempty_StrategyDef_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_StrategyDef_List, it, StrategyDef {{
    out.println("before -> Nonempty_StrategyDef_List, it, StrategyDef ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_StrategyDef_List, it, StrategyDef {{
    out.println("after -> Nonempty_StrategyDef_List, it, StrategyDef ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_StrategyDef_List, next, Nonempty_StrategyDef_List {{
    out.println("before -> Nonempty_StrategyDef_List, next, Nonempty_StrategyDef_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_StrategyDef_List, next, Nonempty_StrategyDef_List {{
    out.println("after -> Nonempty_StrategyDef_List, next, Nonempty_StrategyDef_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_NodeSubsetDef_List {{
    out.println("before Nonempty_NodeSubsetDef_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_NodeSubsetDef_List {{
    out.println("after Nonempty_NodeSubsetDef_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_NodeSubsetDef_List, it, NodeSubsetDef {{
    out.println("before -> Nonempty_NodeSubsetDef_List, it, NodeSubsetDef ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_NodeSubsetDef_List, it, NodeSubsetDef {{
    out.println("after -> Nonempty_NodeSubsetDef_List, it, NodeSubsetDef ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_NodeSubsetDef_List, next, Nonempty_NodeSubsetDef_List {{
    out.println("before -> Nonempty_NodeSubsetDef_List, next, Nonempty_NodeSubsetDef_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_NodeSubsetDef_List, next, Nonempty_NodeSubsetDef_List {{
    out.println("after -> Nonempty_NodeSubsetDef_List, next, Nonempty_NodeSubsetDef_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_NodeSubsetExpression_PCList {{
    out.println("before Nonempty_NodeSubsetExpression_PCList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_NodeSubsetExpression_PCList {{
    out.println("after Nonempty_NodeSubsetExpression_PCList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_NodeSubsetExpression_PCList, it, NodeSubsetExpression {{
    out.println("before -> Nonempty_NodeSubsetExpression_PCList, it, NodeSubsetExpression ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_NodeSubsetExpression_PCList, it, NodeSubsetExpression {{
    out.println("after -> Nonempty_NodeSubsetExpression_PCList, it, NodeSubsetExpression ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_NodeSubsetExpression_PCList, next, Nonempty_NodeSubsetExpression_PCList {{
    out.println("before -> Nonempty_NodeSubsetExpression_PCList, next, Nonempty_NodeSubsetExpression_PCList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_NodeSubsetExpression_PCList, next, Nonempty_NodeSubsetExpression_PCList {{
    out.println("after -> Nonempty_NodeSubsetExpression_PCList, next, Nonempty_NodeSubsetExpression_PCList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_ClassName_BCList {{
    out.println("before Nonempty_ClassName_BCList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_ClassName_BCList {{
    out.println("after Nonempty_ClassName_BCList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassName_BCList, it, ClassName {{
    out.println("before -> Nonempty_ClassName_BCList, it, ClassName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassName_BCList, it, ClassName {{
    out.println("after -> Nonempty_ClassName_BCList, it, ClassName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassName_BCList, next, Nonempty_ClassName_BCList {{
    out.println("before -> Nonempty_ClassName_BCList, next, Nonempty_ClassName_BCList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassName_BCList, next, Nonempty_ClassName_BCList {{
    out.println("after -> Nonempty_ClassName_BCList, next, Nonempty_ClassName_BCList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
}