// 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 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 ClassGraph {{
    out.println("before ClassGraph");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassGraph {{
    out.println("after ClassGraph");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassGraph, preamble, Preamble {{
    out.println("before -> ClassGraph, preamble, Preamble ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassGraph, preamble, Preamble {{
    out.println("after -> ClassGraph, preamble, Preamble ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassGraph, classes, ClassGraphEntry_SList {{
    out.println("before -> ClassGraph, classes, ClassGraphEntry_SList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassGraph, classes, ClassGraphEntry_SList {{
    out.println("after -> ClassGraph, classes, ClassGraphEntry_SList ");
    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, pkg, Package {{
    out.println("before -> Preamble, pkg, Package ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Preamble, pkg, Package {{
    out.println("after -> Preamble, pkg, Package ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Preamble, localimports, LocalImports {{
    out.println("before -> Preamble, localimports, LocalImports ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Preamble, localimports, LocalImports {{
    out.println("after -> Preamble, localimports, LocalImports ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Package {{
    out.println("before Package");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Package {{
    out.println("after Package");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Package, packagename, PackageName {{
    out.println("before -> Package, packagename, PackageName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Package, packagename, PackageName {{
    out.println("after -> Package, packagename, PackageName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before LocalImports {{
    out.println("before LocalImports");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after LocalImports {{
    out.println("after LocalImports");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> LocalImports, imports, Import_SList {{
    out.println("before -> LocalImports, imports, Import_SList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> LocalImports, imports, Import_SList {{
    out.println("after -> LocalImports, imports, Import_SList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Import {{
    out.println("before Import");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Import {{
    out.println("after Import");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Import, packagename, PackageName {{
    out.println("before -> Import, packagename, PackageName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Import, packagename, PackageName {{
    out.println("after -> Import, packagename, PackageName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Import, importallclasses, ImportAllClasses {{
    out.println("before -> Import, importallclasses, ImportAllClasses ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Import, importallclasses, ImportAllClasses {{
    out.println("after -> Import, importallclasses, ImportAllClasses ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ImportAllClasses {{
    out.println("before ImportAllClasses");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ImportAllClasses {{
    out.println("after ImportAllClasses");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassGraphEntry {{
    out.println("before ClassGraphEntry");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassGraphEntry {{
    out.println("after ClassGraphEntry");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Directive {{
    out.println("before Directive");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Directive {{
    out.println("after Directive");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ParseDirective {{
    out.println("before ParseDirective");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ParseDirective {{
    out.println("after ParseDirective");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ParseDirective, parsekeyword, ParseKeyword {{
    out.println("before -> ParseDirective, parsekeyword, ParseKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ParseDirective, parsekeyword, ParseKeyword {{
    out.println("after -> ParseDirective, parsekeyword, ParseKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before VisitorDirective {{
    out.println("before VisitorDirective");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after VisitorDirective {{
    out.println("after VisitorDirective");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> VisitorDirective, visitorkeyword, VisitorKeyword {{
    out.println("before -> VisitorDirective, visitorkeyword, VisitorKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> VisitorDirective, visitorkeyword, VisitorKeyword {{
    out.println("after -> VisitorDirective, visitorkeyword, VisitorKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Definition {{
    out.println("before Definition");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Definition {{
    out.println("after Definition");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassDef {{
    out.println("before ClassDef");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassDef {{
    out.println("after ClassDef");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDef, keywords, ClassKeyword_List {{
    out.println("before -> ClassDef, keywords, ClassKeyword_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDef, keywords, ClassKeyword_List {{
    out.println("after -> ClassDef, keywords, ClassKeyword_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDef, paramclassname, ParamClassName {{
    out.println("before -> ClassDef, paramclassname, ParamClassName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDef, paramclassname, ParamClassName {{
    out.println("after -> ClassDef, paramclassname, ParamClassName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDef, parsedirective, ParseDirective {{
    out.println("before -> ClassDef, parsedirective, ParseDirective ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDef, parsedirective, ParseDirective {{
    out.println("after -> ClassDef, parsedirective, ParseDirective ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDef, classparts, ClassParts {{
    out.println("before -> ClassDef, classparts, ClassParts ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDef, classparts, ClassParts {{
    out.println("after -> ClassDef, classparts, ClassParts ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassDef, eoftoken, EOFtoken {{
    out.println("before -> ClassDef, eoftoken, EOFtoken ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassDef, eoftoken, EOFtoken {{
    out.println("after -> ClassDef, eoftoken, EOFtoken ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassKeyword_List {{
    out.println("before ClassKeyword_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassKeyword_List {{
    out.println("after ClassKeyword_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassKeyword_List, first, Nonempty_ClassKeyword_List {{
    out.println("before -> ClassKeyword_List, first, Nonempty_ClassKeyword_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassKeyword_List, first, Nonempty_ClassKeyword_List {{
    out.println("after -> ClassKeyword_List, first, Nonempty_ClassKeyword_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ParamClassName {{
    out.println("before ParamClassName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ParamClassName {{
    out.println("after ParamClassName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ParamClassName, classname, ClassName {{
    out.println("before -> ParamClassName, classname, ClassName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ParamClassName, classname, ClassName {{
    out.println("after -> ParamClassName, classname, ClassName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ParamClassName, parameters, ClassName_Commalist {{
    out.println("before -> ParamClassName, parameters, ClassName_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ParamClassName, parameters, ClassName_Commalist {{
    out.println("after -> ParamClassName, parameters, ClassName_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassParts {{
    out.println("before ClassParts");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassParts {{
    out.println("after ClassParts");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ConstOrAltClass {{
    out.println("before ConstOrAltClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ConstOrAltClass {{
    out.println("after ConstOrAltClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ConstOrAltClass, parts, PartOrSyntax_List {{
    out.println("before -> ConstOrAltClass, parts, PartOrSyntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ConstOrAltClass, parts, PartOrSyntax_List {{
    out.println("after -> ConstOrAltClass, parts, PartOrSyntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ConstOrAltClass, parents, ClassParents {{
    out.println("before -> ConstOrAltClass, parents, ClassParents ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ConstOrAltClass, parents, ClassParents {{
    out.println("after -> ConstOrAltClass, parents, ClassParents ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartOrSyntax {{
    out.println("before PartOrSyntax");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartOrSyntax {{
    out.println("after PartOrSyntax");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Part {{
    out.println("before Part");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Part {{
    out.println("after Part");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Part, partname, PartName {{
    out.println("before -> Part, partname, PartName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Part, partname, PartName {{
    out.println("after -> Part, partname, PartName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Part, keywords, PartKeyword_List {{
    out.println("before -> Part, keywords, PartKeyword_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Part, keywords, PartKeyword_List {{
    out.println("after -> Part, keywords, PartKeyword_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Part, classspec, ClassSpec {{
    out.println("before -> Part, classspec, ClassSpec ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Part, classspec, ClassSpec {{
    out.println("after -> Part, classspec, ClassSpec ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Part, partinit, PartInit {{
    out.println("before -> Part, partinit, PartInit ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Part, partinit, PartInit {{
    out.println("after -> Part, partinit, PartInit ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartKeyword_List {{
    out.println("before PartKeyword_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartKeyword_List {{
    out.println("after PartKeyword_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartKeyword_List, first, Nonempty_PartKeyword_List {{
    out.println("before -> PartKeyword_List, first, Nonempty_PartKeyword_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartKeyword_List, first, Nonempty_PartKeyword_List {{
    out.println("after -> PartKeyword_List, first, Nonempty_PartKeyword_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartInit {{
    out.println("before PartInit");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartInit {{
    out.println("after PartInit");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartInit, partinitkeyword, PartInitKeyword {{
    out.println("before -> PartInit, partinitkeyword, PartInitKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartInit, partinitkeyword, PartInitKeyword {{
    out.println("after -> PartInit, partinitkeyword, PartInitKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartInit, javacode, JavaCode {{
    out.println("before -> PartInit, javacode, JavaCode ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartInit, javacode, JavaCode {{
    out.println("after -> PartInit, javacode, JavaCode ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before OptionalPart {{
    out.println("before OptionalPart");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after OptionalPart {{
    out.println("after OptionalPart");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> OptionalPart, locallookahead, LocalLookahead {{
    out.println("before -> OptionalPart, locallookahead, LocalLookahead ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> OptionalPart, locallookahead, LocalLookahead {{
    out.println("after -> OptionalPart, locallookahead, LocalLookahead ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> OptionalPart, part, Part_Sandwich {{
    out.println("before -> OptionalPart, part, Part_Sandwich ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> OptionalPart, part, Part_Sandwich {{
    out.println("after -> OptionalPart, part, Part_Sandwich ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassParents {{
    out.println("before ClassParents");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassParents {{
    out.println("after ClassParents");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassParents, superclasses, Superclasses {{
    out.println("before -> ClassParents, superclasses, Superclasses ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassParents, superclasses, Superclasses {{
    out.println("after -> ClassParents, superclasses, Superclasses ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassParents, interfaces, Interfaces {{
    out.println("before -> ClassParents, interfaces, Interfaces ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassParents, interfaces, Interfaces {{
    out.println("after -> ClassParents, interfaces, Interfaces ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Superclasses {{
    out.println("before Superclasses");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Superclasses {{
    out.println("after Superclasses");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Superclasses, extendskeyword, ExtendsKeyword {{
    out.println("before -> Superclasses, extendskeyword, ExtendsKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Superclasses, extendskeyword, ExtendsKeyword {{
    out.println("after -> Superclasses, extendskeyword, ExtendsKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Superclasses, superclasses, Superclass_Commalist {{
    out.println("before -> Superclasses, superclasses, Superclass_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Superclasses, superclasses, Superclass_Commalist {{
    out.println("after -> Superclasses, superclasses, Superclass_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Superclass {{
    out.println("before Superclass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Superclass {{
    out.println("after Superclass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Superclass, classspec, ClassSpec {{
    out.println("before -> Superclass, classspec, ClassSpec ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Superclass, classspec, ClassSpec {{
    out.println("after -> Superclass, classspec, ClassSpec ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Interfaces {{
    out.println("before Interfaces");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Interfaces {{
    out.println("after Interfaces");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Interfaces, implementskeyword, ImplementsKeyword {{
    out.println("before -> Interfaces, implementskeyword, ImplementsKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Interfaces, implementskeyword, ImplementsKeyword {{
    out.println("after -> Interfaces, implementskeyword, ImplementsKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Interfaces, interfaces, Interface_Commalist {{
    out.println("before -> Interfaces, interfaces, Interface_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Interfaces, interfaces, Interface_Commalist {{
    out.println("after -> Interfaces, interfaces, Interface_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Interface {{
    out.println("before Interface");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Interface {{
    out.println("after Interface");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Interface, classspec, ClassSpec {{
    out.println("before -> Interface, classspec, ClassSpec ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Interface, classspec, ClassSpec {{
    out.println("after -> Interface, classspec, ClassSpec ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ConstructionClass {{
    out.println("before ConstructionClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ConstructionClass {{
    out.println("after ConstructionClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before AlternationClass {{
    out.println("before AlternationClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after AlternationClass {{
    out.println("after AlternationClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> AlternationClass, subclasses, Subclass_Barlist {{
    out.println("before -> AlternationClass, subclasses, Subclass_Barlist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> AlternationClass, subclasses, Subclass_Barlist {{
    out.println("after -> AlternationClass, subclasses, Subclass_Barlist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> AlternationClass, commonkeyword, CommonKeyword {{
    out.println("before -> AlternationClass, commonkeyword, CommonKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> AlternationClass, commonkeyword, CommonKeyword {{
    out.println("after -> AlternationClass, commonkeyword, CommonKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Subclass {{
    out.println("before Subclass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Subclass {{
    out.println("after Subclass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Subclass, locallookahead, LocalLookahead {{
    out.println("before -> Subclass, locallookahead, LocalLookahead ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Subclass, locallookahead, LocalLookahead {{
    out.println("after -> Subclass, locallookahead, LocalLookahead ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Subclass, classspec, ClassSpec {{
    out.println("before -> Subclass, classspec, ClassSpec ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Subclass, classspec, ClassSpec {{
    out.println("after -> Subclass, classspec, ClassSpec ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before LocalLookahead {{
    out.println("before LocalLookahead");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after LocalLookahead {{
    out.println("after LocalLookahead");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> LocalLookahead, lookaheadkeyword, LookaheadKeyword {{
    out.println("before -> LocalLookahead, lookaheadkeyword, LookaheadKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> LocalLookahead, lookaheadkeyword, LookaheadKeyword {{
    out.println("after -> LocalLookahead, lookaheadkeyword, LookaheadKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> LocalLookahead, javacode, JavaCode {{
    out.println("before -> LocalLookahead, javacode, JavaCode ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> LocalLookahead, javacode, JavaCode {{
    out.println("after -> LocalLookahead, javacode, JavaCode ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RepetitionClass {{
    out.println("before RepetitionClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RepetitionClass {{
    out.println("after RepetitionClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepetitionClass, sandwiched, RepeatedPart_Sandwich {{
    out.println("before -> RepetitionClass, sandwiched, RepeatedPart_Sandwich ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepetitionClass, sandwiched, RepeatedPart_Sandwich {{
    out.println("after -> RepetitionClass, sandwiched, RepeatedPart_Sandwich ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RepeatedPart {{
    out.println("before RepeatedPart");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RepeatedPart {{
    out.println("after RepeatedPart");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedPart, nonempty, ClassSpec {{
    out.println("before -> RepeatedPart, nonempty, ClassSpec ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedPart, nonempty, ClassSpec {{
    out.println("after -> RepeatedPart, nonempty, ClassSpec ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedPart, openbrace, OpenBrace {{
    out.println("before -> RepeatedPart, openbrace, OpenBrace ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedPart, openbrace, OpenBrace {{
    out.println("after -> RepeatedPart, openbrace, OpenBrace ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedPart, locallookahead, LocalLookahead {{
    out.println("before -> RepeatedPart, locallookahead, LocalLookahead ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedPart, locallookahead, LocalLookahead {{
    out.println("after -> RepeatedPart, locallookahead, LocalLookahead ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedPart, repeated, RepeatedElement_Sandwich {{
    out.println("before -> RepeatedPart, repeated, RepeatedElement_Sandwich ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedPart, repeated, RepeatedElement_Sandwich {{
    out.println("after -> RepeatedPart, repeated, RepeatedElement_Sandwich ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before OpenBrace {{
    out.println("before OpenBrace");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after OpenBrace {{
    out.println("after OpenBrace");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RepeatedElement {{
    out.println("before RepeatedElement");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RepeatedElement {{
    out.println("after RepeatedElement");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedElement, classspec, ClassSpec {{
    out.println("before -> RepeatedElement, classspec, ClassSpec ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedElement, classspec, ClassSpec {{
    out.println("after -> RepeatedElement, classspec, ClassSpec ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassSpec {{
    out.println("before ClassSpec");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassSpec {{
    out.println("after ClassSpec");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassSpec, classname, ClassName {{
    out.println("before -> ClassSpec, classname, ClassName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassSpec, classname, ClassName {{
    out.println("after -> ClassSpec, classname, ClassName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassSpec, actual_parameters, ClassSpec_Commalist {{
    out.println("before -> ClassSpec, actual_parameters, ClassSpec_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassSpec, actual_parameters, ClassSpec_Commalist {{
    out.println("after -> ClassSpec, actual_parameters, ClassSpec_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Syntax {{
    out.println("before Syntax");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Syntax {{
    out.println("after Syntax");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PlainSyntax {{
    out.println("before PlainSyntax");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PlainSyntax {{
    out.println("after PlainSyntax");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PlainSyntax, string, String {{
    out.println("before -> PlainSyntax, string, String ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PlainSyntax, string, String {{
    out.println("after -> PlainSyntax, string, String ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintCommand {{
    out.println("before PrintCommand");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintCommand {{
    out.println("after PrintCommand");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintIndent {{
    out.println("before PrintIndent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintIndent {{
    out.println("after PrintIndent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintUnindent {{
    out.println("before PrintUnindent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintUnindent {{
    out.println("after PrintUnindent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintSkip {{
    out.println("before PrintSkip");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintSkip {{
    out.println("after PrintSkip");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintSpace {{
    out.println("before PrintSpace");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintSpace {{
    out.println("after PrintSpace");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PackageName {{
    out.println("before PackageName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PackageName {{
    out.println("after PackageName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PackageName, first, Nonempty_PackageName {{
    out.println("before -> PackageName, first, Nonempty_PackageName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PackageName, first, Nonempty_PackageName {{
    out.println("after -> PackageName, first, Nonempty_PackageName ");
    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 PartName {{
    out.println("before PartName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartName {{
    out.println("after PartName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartName, name, IdentOrKeyword {{
    out.println("before -> PartName, name, IdentOrKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartName, name, IdentOrKeyword {{
    out.println("after -> PartName, name, IdentOrKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before JavaCode {{
    out.println("before JavaCode");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after JavaCode {{
    out.println("after JavaCode");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> JavaCode, code, Text {{
    out.println("before -> JavaCode, code, Text ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> JavaCode, code, Text {{
    out.println("after -> JavaCode, code, Text ");
    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 IdentOrKeyword {{
    out.println("before IdentOrKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after IdentOrKeyword {{
    out.println("after IdentOrKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ParseIdent {{
    out.println("before ParseIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ParseIdent {{
    out.println("after ParseIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NoParseIdent {{
    out.println("before NoParseIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NoParseIdent {{
    out.println("after NoParseIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before VisitorsIdent {{
    out.println("before VisitorsIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after VisitorsIdent {{
    out.println("after VisitorsIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before EndVisitorsIdent {{
    out.println("before EndVisitorsIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after EndVisitorsIdent {{
    out.println("after EndVisitorsIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before VisitorIdent {{
    out.println("before VisitorIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after VisitorIdent {{
    out.println("after VisitorIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NotParsedIdent {{
    out.println("before NotParsedIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NotParsedIdent {{
    out.println("after NotParsedIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DerivedIdent {{
    out.println("before DerivedIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DerivedIdent {{
    out.println("after DerivedIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before InitIdent {{
    out.println("before InitIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after InitIdent {{
    out.println("after InitIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CommonIdent {{
    out.println("before CommonIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CommonIdent {{
    out.println("after CommonIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before LookaheadIdent {{
    out.println("before LookaheadIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after LookaheadIdent {{
    out.println("after LookaheadIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before OtherIdent {{
    out.println("before OtherIdent");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after OtherIdent {{
    out.println("after OtherIdent");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> OtherIdent, id, Ident {{
    out.println("before -> OtherIdent, id, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> OtherIdent, id, Ident {{
    out.println("after -> OtherIdent, id, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ParseKeyword {{
    out.println("before ParseKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ParseKeyword {{
    out.println("after ParseKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DoParse {{
    out.println("before DoParse");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DoParse {{
    out.println("after DoParse");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DontParse {{
    out.println("before DontParse");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DontParse {{
    out.println("after DontParse");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before VisitorKeyword {{
    out.println("before VisitorKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after VisitorKeyword {{
    out.println("after VisitorKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before BeginVisitors {{
    out.println("before BeginVisitors");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after BeginVisitors {{
    out.println("after BeginVisitors");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before EndVisitors {{
    out.println("before EndVisitors");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after EndVisitors {{
    out.println("after EndVisitors");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassKeyword {{
    out.println("before ClassKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassKeyword {{
    out.println("after ClassKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PublicClass {{
    out.println("before PublicClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PublicClass {{
    out.println("after PublicClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before FinalClass {{
    out.println("before FinalClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after FinalClass {{
    out.println("after FinalClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before InterfaceClass {{
    out.println("before InterfaceClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after InterfaceClass {{
    out.println("after InterfaceClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before VisitorClass {{
    out.println("before VisitorClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after VisitorClass {{
    out.println("after VisitorClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before NotParsedClass {{
    out.println("before NotParsedClass");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after NotParsedClass {{
    out.println("after NotParsedClass");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartKeyword {{
    out.println("before PartKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartKeyword {{
    out.println("after PartKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before FinalPart {{
    out.println("before FinalPart");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after FinalPart {{
    out.println("after FinalPart");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before StaticPart {{
    out.println("before StaticPart");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after StaticPart {{
    out.println("after StaticPart");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ReadOnlyPart {{
    out.println("before ReadOnlyPart");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ReadOnlyPart {{
    out.println("after ReadOnlyPart");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrivatePart {{
    out.println("before PrivatePart");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrivatePart {{
    out.println("after PrivatePart");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DerivedPart {{
    out.println("before DerivedPart");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DerivedPart {{
    out.println("after DerivedPart");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartInitKeyword {{
    out.println("before PartInitKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartInitKeyword {{
    out.println("after PartInitKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ExtendsKeyword {{
    out.println("before ExtendsKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ExtendsKeyword {{
    out.println("after ExtendsKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ImplementsKeyword {{
    out.println("before ImplementsKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ImplementsKeyword {{
    out.println("after ImplementsKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CommonKeyword {{
    out.println("before CommonKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CommonKeyword {{
    out.println("after CommonKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before LookaheadKeyword {{
    out.println("before LookaheadKeyword");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after LookaheadKeyword {{
    out.println("after LookaheadKeyword");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before EOFtoken {{
    out.println("before EOFtoken");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after EOFtoken {{
    out.println("after EOFtoken");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassType {{
    out.println("before ClassType");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassType {{
    out.println("after ClassType");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_con, boolean {{
    out.println("before -> ClassType, is_con, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_con, boolean {{
    out.println("after -> ClassType, is_con, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_alt, boolean {{
    out.println("before -> ClassType, is_alt, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_alt, boolean {{
    out.println("after -> ClassType, is_alt, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_rep, boolean {{
    out.println("before -> ClassType, is_rep, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_rep, boolean {{
    out.println("after -> ClassType, is_rep, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_public, boolean {{
    out.println("before -> ClassType, is_public, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_public, boolean {{
    out.println("after -> ClassType, is_public, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_final, boolean {{
    out.println("before -> ClassType, is_final, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_final, boolean {{
    out.println("after -> ClassType, is_final, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_interface, boolean {{
    out.println("before -> ClassType, is_interface, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_interface, boolean {{
    out.println("after -> ClassType, is_interface, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_not_parsed, boolean {{
    out.println("before -> ClassType, is_not_parsed, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_not_parsed, boolean {{
    out.println("after -> ClassType, is_not_parsed, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassType, is_visitor, boolean {{
    out.println("before -> ClassType, is_visitor, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassType, is_visitor, boolean {{
    out.println("after -> ClassType, is_visitor, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartType {{
    out.println("before PartType");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartType {{
    out.println("after PartType");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartType, is_final, boolean {{
    out.println("before -> PartType, is_final, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartType, is_final, boolean {{
    out.println("after -> PartType, is_final, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartType, is_static, boolean {{
    out.println("before -> PartType, is_static, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartType, is_static, boolean {{
    out.println("after -> PartType, is_static, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartType, is_derived, boolean {{
    out.println("before -> PartType, is_derived, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartType, is_derived, boolean {{
    out.println("after -> PartType, is_derived, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartType, has_getter, boolean {{
    out.println("before -> PartType, has_getter, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartType, has_getter, boolean {{
    out.println("after -> PartType, has_getter, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartType, has_setter, boolean {{
    out.println("before -> PartType, has_setter, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartType, has_setter, boolean {{
    out.println("after -> PartType, has_setter, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Parts {{
    out.println("before Parts");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Parts {{
    out.println("after Parts");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Parts, first, Nonempty_Parts {{
    out.println("before -> Parts, first, Nonempty_Parts ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Parts, first, Nonempty_Parts {{
    out.println("after -> Parts, first, Nonempty_Parts ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassDefVisitor {{
    out.println("before ClassDefVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassDefVisitor {{
    out.println("after ClassDefVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassNameAccessor {{
    out.println("before ClassNameAccessor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassNameAccessor {{
    out.println("after ClassNameAccessor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartVisitor {{
    out.println("before PartVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartVisitor {{
    out.println("after PartVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SyntaxVisitor {{
    out.println("before SyntaxVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SyntaxVisitor {{
    out.println("after SyntaxVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before EdgeVisitor {{
    out.println("before EdgeVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after EdgeVisitor {{
    out.println("after EdgeVisitor");
    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 ClassGraphEntry_SList {{
    out.println("before ClassGraphEntry_SList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassGraphEntry_SList {{
    out.println("after ClassGraphEntry_SList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassGraphEntry_SList, first, Nonempty_ClassGraphEntry_SList {{
    out.println("before -> ClassGraphEntry_SList, first, Nonempty_ClassGraphEntry_SList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassGraphEntry_SList, first, Nonempty_ClassGraphEntry_SList {{
    out.println("after -> ClassGraphEntry_SList, first, Nonempty_ClassGraphEntry_SList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Import_SList {{
    out.println("before Import_SList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Import_SList {{
    out.println("after Import_SList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Import_SList, first, Nonempty_Import_SList {{
    out.println("before -> Import_SList, first, Nonempty_Import_SList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Import_SList, first, Nonempty_Import_SList {{
    out.println("after -> Import_SList, first, Nonempty_Import_SList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassName_Commalist {{
    out.println("before ClassName_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassName_Commalist {{
    out.println("after ClassName_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassName_Commalist, first, Nonempty_ClassName_Commalist {{
    out.println("before -> ClassName_Commalist, first, Nonempty_ClassName_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassName_Commalist, first, Nonempty_ClassName_Commalist {{
    out.println("after -> ClassName_Commalist, first, Nonempty_ClassName_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PartOrSyntax_List {{
    out.println("before PartOrSyntax_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PartOrSyntax_List {{
    out.println("after PartOrSyntax_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PartOrSyntax_List, first, Nonempty_PartOrSyntax_List {{
    out.println("before -> PartOrSyntax_List, first, Nonempty_PartOrSyntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PartOrSyntax_List, first, Nonempty_PartOrSyntax_List {{
    out.println("after -> PartOrSyntax_List, first, Nonempty_PartOrSyntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Part_Sandwich {{
    out.println("before Part_Sandwich");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Part_Sandwich {{
    out.println("after Part_Sandwich");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Part_Sandwich, first, Syntax_List {{
    out.println("before -> Part_Sandwich, first, Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Part_Sandwich, first, Syntax_List {{
    out.println("after -> Part_Sandwich, first, Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Part_Sandwich, inner, Part {{
    out.println("before -> Part_Sandwich, inner, Part ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Part_Sandwich, inner, Part {{
    out.println("after -> Part_Sandwich, inner, Part ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Part_Sandwich, second, Syntax_List {{
    out.println("before -> Part_Sandwich, second, Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Part_Sandwich, second, Syntax_List {{
    out.println("after -> Part_Sandwich, second, Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Superclass_Commalist {{
    out.println("before Superclass_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Superclass_Commalist {{
    out.println("after Superclass_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Superclass_Commalist, first, Nonempty_Superclass_Commalist {{
    out.println("before -> Superclass_Commalist, first, Nonempty_Superclass_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Superclass_Commalist, first, Nonempty_Superclass_Commalist {{
    out.println("after -> Superclass_Commalist, first, Nonempty_Superclass_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Interface_Commalist {{
    out.println("before Interface_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Interface_Commalist {{
    out.println("after Interface_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Interface_Commalist, first, Nonempty_Interface_Commalist {{
    out.println("before -> Interface_Commalist, first, Nonempty_Interface_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Interface_Commalist, first, Nonempty_Interface_Commalist {{
    out.println("after -> Interface_Commalist, first, Nonempty_Interface_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Subclass_Barlist {{
    out.println("before Subclass_Barlist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Subclass_Barlist {{
    out.println("after Subclass_Barlist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Subclass_Barlist, first, Nonempty_Subclass_Barlist {{
    out.println("before -> Subclass_Barlist, first, Nonempty_Subclass_Barlist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Subclass_Barlist, first, Nonempty_Subclass_Barlist {{
    out.println("after -> Subclass_Barlist, first, Nonempty_Subclass_Barlist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RepeatedPart_Sandwich {{
    out.println("before RepeatedPart_Sandwich");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RepeatedPart_Sandwich {{
    out.println("after RepeatedPart_Sandwich");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedPart_Sandwich, first, Syntax_List {{
    out.println("before -> RepeatedPart_Sandwich, first, Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedPart_Sandwich, first, Syntax_List {{
    out.println("after -> RepeatedPart_Sandwich, first, Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedPart_Sandwich, inner, RepeatedPart {{
    out.println("before -> RepeatedPart_Sandwich, inner, RepeatedPart ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedPart_Sandwich, inner, RepeatedPart {{
    out.println("after -> RepeatedPart_Sandwich, inner, RepeatedPart ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedPart_Sandwich, second, Syntax_List {{
    out.println("before -> RepeatedPart_Sandwich, second, Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedPart_Sandwich, second, Syntax_List {{
    out.println("after -> RepeatedPart_Sandwich, second, Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RepeatedElement_Sandwich {{
    out.println("before RepeatedElement_Sandwich");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RepeatedElement_Sandwich {{
    out.println("after RepeatedElement_Sandwich");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedElement_Sandwich, first, Syntax_List {{
    out.println("before -> RepeatedElement_Sandwich, first, Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedElement_Sandwich, first, Syntax_List {{
    out.println("after -> RepeatedElement_Sandwich, first, Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedElement_Sandwich, inner, RepeatedElement {{
    out.println("before -> RepeatedElement_Sandwich, inner, RepeatedElement ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedElement_Sandwich, inner, RepeatedElement {{
    out.println("after -> RepeatedElement_Sandwich, inner, RepeatedElement ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RepeatedElement_Sandwich, second, Syntax_List {{
    out.println("before -> RepeatedElement_Sandwich, second, Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RepeatedElement_Sandwich, second, Syntax_List {{
    out.println("after -> RepeatedElement_Sandwich, second, Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Syntax_List {{
    out.println("before Syntax_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Syntax_List {{
    out.println("after Syntax_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Syntax_List, first, Nonempty_Syntax_List {{
    out.println("before -> Syntax_List, first, Nonempty_Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Syntax_List, first, Nonempty_Syntax_List {{
    out.println("after -> Syntax_List, first, Nonempty_Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ClassSpec_Commalist {{
    out.println("before ClassSpec_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ClassSpec_Commalist {{
    out.println("after ClassSpec_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ClassSpec_Commalist, first, Nonempty_ClassSpec_Commalist {{
    out.println("before -> ClassSpec_Commalist, first, Nonempty_ClassSpec_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ClassSpec_Commalist, first, Nonempty_ClassSpec_Commalist {{
    out.println("after -> ClassSpec_Commalist, first, Nonempty_ClassSpec_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_ClassKeyword_List {{
    out.println("before Nonempty_ClassKeyword_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_ClassKeyword_List {{
    out.println("after Nonempty_ClassKeyword_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassKeyword_List, it, ClassKeyword {{
    out.println("before -> Nonempty_ClassKeyword_List, it, ClassKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassKeyword_List, it, ClassKeyword {{
    out.println("after -> Nonempty_ClassKeyword_List, it, ClassKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassKeyword_List, next, Nonempty_ClassKeyword_List {{
    out.println("before -> Nonempty_ClassKeyword_List, next, Nonempty_ClassKeyword_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassKeyword_List, next, Nonempty_ClassKeyword_List {{
    out.println("after -> Nonempty_ClassKeyword_List, next, Nonempty_ClassKeyword_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_PartKeyword_List {{
    out.println("before Nonempty_PartKeyword_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_PartKeyword_List {{
    out.println("after Nonempty_PartKeyword_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_PartKeyword_List, it, PartKeyword {{
    out.println("before -> Nonempty_PartKeyword_List, it, PartKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_PartKeyword_List, it, PartKeyword {{
    out.println("after -> Nonempty_PartKeyword_List, it, PartKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_PartKeyword_List, next, Nonempty_PartKeyword_List {{
    out.println("before -> Nonempty_PartKeyword_List, next, Nonempty_PartKeyword_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_PartKeyword_List, next, Nonempty_PartKeyword_List {{
    out.println("after -> Nonempty_PartKeyword_List, next, Nonempty_PartKeyword_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_PackageName {{
    out.println("before Nonempty_PackageName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_PackageName {{
    out.println("after Nonempty_PackageName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_PackageName, it, IdentOrKeyword {{
    out.println("before -> Nonempty_PackageName, it, IdentOrKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_PackageName, it, IdentOrKeyword {{
    out.println("after -> Nonempty_PackageName, it, IdentOrKeyword ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_PackageName, next, Nonempty_PackageName {{
    out.println("before -> Nonempty_PackageName, next, Nonempty_PackageName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_PackageName, next, Nonempty_PackageName {{
    out.println("after -> Nonempty_PackageName, next, Nonempty_PackageName ");
    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, IdentOrKeyword {{
    out.println("before -> Nonempty_Name, it, IdentOrKeyword ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Name, it, IdentOrKeyword {{
    out.println("after -> Nonempty_Name, it, IdentOrKeyword ");
    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_Parts {{
    out.println("before Nonempty_Parts");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Parts {{
    out.println("after Nonempty_Parts");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Parts, it, Part {{
    out.println("before -> Nonempty_Parts, it, Part ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Parts, it, Part {{
    out.println("after -> Nonempty_Parts, it, Part ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Parts, next, Nonempty_Parts {{
    out.println("before -> Nonempty_Parts, next, Nonempty_Parts ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Parts, next, Nonempty_Parts {{
    out.println("after -> Nonempty_Parts, next, Nonempty_Parts ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_ClassGraphEntry_SList {{
    out.println("before Nonempty_ClassGraphEntry_SList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_ClassGraphEntry_SList {{
    out.println("after Nonempty_ClassGraphEntry_SList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassGraphEntry_SList, it, ClassGraphEntry {{
    out.println("before -> Nonempty_ClassGraphEntry_SList, it, ClassGraphEntry ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassGraphEntry_SList, it, ClassGraphEntry {{
    out.println("after -> Nonempty_ClassGraphEntry_SList, it, ClassGraphEntry ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassGraphEntry_SList, next, Nonempty_ClassGraphEntry_SList {{
    out.println("before -> Nonempty_ClassGraphEntry_SList, next, Nonempty_ClassGraphEntry_SList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassGraphEntry_SList, next, Nonempty_ClassGraphEntry_SList {{
    out.println("after -> Nonempty_ClassGraphEntry_SList, next, Nonempty_ClassGraphEntry_SList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Import_SList {{
    out.println("before Nonempty_Import_SList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Import_SList {{
    out.println("after Nonempty_Import_SList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Import_SList, it, Import {{
    out.println("before -> Nonempty_Import_SList, it, Import ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Import_SList, it, Import {{
    out.println("after -> Nonempty_Import_SList, it, Import ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Import_SList, next, Nonempty_Import_SList {{
    out.println("before -> Nonempty_Import_SList, next, Nonempty_Import_SList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Import_SList, next, Nonempty_Import_SList {{
    out.println("after -> Nonempty_Import_SList, next, Nonempty_Import_SList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_ClassName_Commalist {{
    out.println("before Nonempty_ClassName_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_ClassName_Commalist {{
    out.println("after Nonempty_ClassName_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassName_Commalist, it, ClassName {{
    out.println("before -> Nonempty_ClassName_Commalist, it, ClassName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassName_Commalist, it, ClassName {{
    out.println("after -> Nonempty_ClassName_Commalist, it, ClassName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist {{
    out.println("before -> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist {{
    out.println("after -> Nonempty_ClassName_Commalist, next, Nonempty_ClassName_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_PartOrSyntax_List {{
    out.println("before Nonempty_PartOrSyntax_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_PartOrSyntax_List {{
    out.println("after Nonempty_PartOrSyntax_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_PartOrSyntax_List, it, PartOrSyntax {{
    out.println("before -> Nonempty_PartOrSyntax_List, it, PartOrSyntax ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_PartOrSyntax_List, it, PartOrSyntax {{
    out.println("after -> Nonempty_PartOrSyntax_List, it, PartOrSyntax ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List {{
    out.println("before -> Nonempty_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List {{
    out.println("after -> Nonempty_PartOrSyntax_List, next, Nonempty_PartOrSyntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Superclass_Commalist {{
    out.println("before Nonempty_Superclass_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Superclass_Commalist {{
    out.println("after Nonempty_Superclass_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Superclass_Commalist, it, Superclass {{
    out.println("before -> Nonempty_Superclass_Commalist, it, Superclass ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Superclass_Commalist, it, Superclass {{
    out.println("after -> Nonempty_Superclass_Commalist, it, Superclass ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Superclass_Commalist, next, Nonempty_Superclass_Commalist {{
    out.println("before -> Nonempty_Superclass_Commalist, next, Nonempty_Superclass_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Superclass_Commalist, next, Nonempty_Superclass_Commalist {{
    out.println("after -> Nonempty_Superclass_Commalist, next, Nonempty_Superclass_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Interface_Commalist {{
    out.println("before Nonempty_Interface_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Interface_Commalist {{
    out.println("after Nonempty_Interface_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Interface_Commalist, it, Interface {{
    out.println("before -> Nonempty_Interface_Commalist, it, Interface ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Interface_Commalist, it, Interface {{
    out.println("after -> Nonempty_Interface_Commalist, it, Interface ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Interface_Commalist, next, Nonempty_Interface_Commalist {{
    out.println("before -> Nonempty_Interface_Commalist, next, Nonempty_Interface_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Interface_Commalist, next, Nonempty_Interface_Commalist {{
    out.println("after -> Nonempty_Interface_Commalist, next, Nonempty_Interface_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Subclass_Barlist {{
    out.println("before Nonempty_Subclass_Barlist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Subclass_Barlist {{
    out.println("after Nonempty_Subclass_Barlist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Subclass_Barlist, it, Subclass {{
    out.println("before -> Nonempty_Subclass_Barlist, it, Subclass ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Subclass_Barlist, it, Subclass {{
    out.println("after -> Nonempty_Subclass_Barlist, it, Subclass ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist {{
    out.println("before -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist {{
    out.println("after -> Nonempty_Subclass_Barlist, next, Nonempty_Subclass_Barlist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Syntax_List {{
    out.println("before Nonempty_Syntax_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Syntax_List {{
    out.println("after Nonempty_Syntax_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Syntax_List, it, Syntax {{
    out.println("before -> Nonempty_Syntax_List, it, Syntax ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Syntax_List, it, Syntax {{
    out.println("after -> Nonempty_Syntax_List, it, Syntax ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Syntax_List, next, Nonempty_Syntax_List {{
    out.println("before -> Nonempty_Syntax_List, next, Nonempty_Syntax_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Syntax_List, next, Nonempty_Syntax_List {{
    out.println("after -> Nonempty_Syntax_List, next, Nonempty_Syntax_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_ClassSpec_Commalist {{
    out.println("before Nonempty_ClassSpec_Commalist");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_ClassSpec_Commalist {{
    out.println("after Nonempty_ClassSpec_Commalist");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassSpec_Commalist, it, ClassSpec {{
    out.println("before -> Nonempty_ClassSpec_Commalist, it, ClassSpec ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassSpec_Commalist, it, ClassSpec {{
    out.println("after -> Nonempty_ClassSpec_Commalist, it, ClassSpec ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist {{
    out.println("before -> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist {{
    out.println("after -> Nonempty_ClassSpec_Commalist, next, Nonempty_ClassSpec_Commalist ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
}