// This file is automatically generated by DemeterJ.

DisplayVisitor {
  {{
    protected java.io.PrintWriter out = new java.io.PrintWriter(System.out, true);
    java.io.PrintWriter get_out()             { return out; }
    void set_out(java.io.PrintWriter new_out) { out = new_out; }
    DisplayVisitor(java.io.PrintWriter out)     { set_out(out); }
    DisplayVisitor(java.io.PrintStream out)
      { set_out(new java.io.PrintWriter(out, true)); }
  }}
  finish {{ out.flush(); }}


  before FileSystem {{
    out.print(": FileSystem  (");
    indent++;
  }}
  after FileSystem {{
    out.print(" )");
    indent--;
  }}
  before -> FileSystem, root, CompoundFile {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<root> ");
  }}
  before -> File, f, FileName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<f> ");
  }}
  before SimpleFile {{
    out.print(": SimpleFile  (");
    indent++;
  }}
  after SimpleFile {{
    out.print(" )");
    indent--;
  }}
  before CompoundFile {{
    out.print(": CompoundFile  (");
    indent++;
  }}
  after CompoundFile {{
    out.print(" )");
    indent--;
  }}
  before -> CompoundFile, contents, File_PList {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<contents> ");
  }}
  before -> CompoundFile, parent, CompoundFile {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<parent> ");
  }}
  before Commands {{
    out.print(": Commands  (");
    indent++;
  }}
  after Commands {{
    out.print(" )");
    indent--;
  }}
  before -> Commands, command_list, Command_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<command_list> ");
  }}
  before MakeDirectory {{
    out.print(": MakeDirectory  (");
    indent++;
  }}
  after MakeDirectory {{
    out.print(" )");
    indent--;
  }}
  before -> MakeDirectory, directoryname, DirectoryName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<directoryname> ");
  }}
  before ChangeDirectoryUp {{
    out.print(": ChangeDirectoryUp  (");
    indent++;
  }}
  after ChangeDirectoryUp {{
    out.print(" )");
    indent--;
  }}
  before ChangeDirectoryDown {{
    out.print(": ChangeDirectoryDown  (");
    indent++;
  }}
  after ChangeDirectoryDown {{
    out.print(" )");
    indent--;
  }}
  before -> ChangeDirectoryDown, directoryname, DirectoryName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<directoryname> ");
  }}
  before RecursiveCopy {{
    out.print(": RecursiveCopy  (");
    indent++;
  }}
  after RecursiveCopy {{
    out.print(" )");
    indent--;
  }}
  before -> RecursiveCopy, source, FileName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<source> ");
  }}
  before -> RecursiveCopy, target, FileName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<target> ");
  }}
  before DiskUsage {{
    out.print(": DiskUsage  (");
    indent++;
  }}
  after DiskUsage {{
    out.print(" )");
    indent--;
  }}
  before SymbolicLink {{
    out.print(": SymbolicLink  (");
    indent++;
  }}
  after SymbolicLink {{
    out.print(" )");
    indent--;
  }}
  before -> SymbolicLink, from, FileName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<from> ");
  }}
  before -> SymbolicLink, to, FileName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<to> ");
  }}
  before RemoveDirectory {{
    out.print(": RemoveDirectory  (");
    indent++;
  }}
  after RemoveDirectory {{
    out.print(" )");
    indent--;
  }}
  before -> RemoveDirectory, directoryname, DirectoryName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<directoryname> ");
  }}
  before CreateEmptyFile {{
    out.print(": CreateEmptyFile  (");
    indent++;
  }}
  after CreateEmptyFile {{
    out.print(" )");
    indent--;
  }}
  before -> CreateEmptyFile, filename, FileName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<filename> ");
  }}
  before RemoveFile {{
    out.print(": RemoveFile  (");
    indent++;
  }}
  after RemoveFile {{
    out.print(" )");
    indent--;
  }}
  before -> RemoveFile, filename, FileName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<filename> ");
  }}
  before Find {{
    out.print(": Find  (");
    indent++;
  }}
  after Find {{
    out.print(" )");
    indent--;
  }}
  before -> Find, directoryname, DirectoryName {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<directoryname> ");
  }}
  before Echo {{
    out.print(": Echo  (");
    indent++;
  }}
  after Echo {{
    out.print(" )");
    indent--;
  }}
  before -> Echo, message, Message {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<message> ");
  }}
  before FileName {{
    out.print(": FileName  (");
    indent++;
  }}
  after FileName {{
    out.print(" )");
    indent--;
  }}
  before -> FileName, ident, Ident {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<ident> ");
    out.print(" : Ident");
    out.print(" \"" + source.get_ident() + "\"");
  }}
  before DirectoryName {{
    out.print(": DirectoryName  (");
    indent++;
  }}
  after DirectoryName {{
    out.print(" )");
    indent--;
  }}
  before -> DirectoryName, ident, Ident {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<ident> ");
    out.print(" : Ident");
    out.print(" \"" + source.get_ident() + "\"");
  }}
  before Message {{
    out.print(": Message  (");
    indent++;
  }}
  after Message {{
    out.print(" )");
    indent--;
  }}
  before -> Message, string, String {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<string> ");
    out.print(" : String");
    out.print(" \"" + source.get_string() + "\" ");
  }}
  before Main {{
    out.print(": Main  (");
    indent++;
  }}
  after Main {{
    out.print(" )");
    indent--;
  }}
  before CommandVisitor {{
    out.print(": CommandVisitor  (");
    indent++;
  }}
  after CommandVisitor {{
    out.print(" )");
    indent--;
  }}
  before FileNameVisitor {{
    out.print(": FileNameVisitor  (");
    indent++;
  }}
  after FileNameVisitor {{
    out.print(" )");
    indent--;
  }}
  before PrintVisitor {{
    out.print(": PrintVisitor  (");
    indent++;
  }}
  after PrintVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> PrintVisitor, indent, int {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<indent> ");
    out.print(" : int \"" + dest + "\"");
  }}
  before -> PrintVisitor, needSpace, boolean {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<needSpace> ");
    out.print(" : boolean \"" + dest + "\"");
  }}
  before CopyVisitor {{
    out.print(": CopyVisitor  (");
    indent++;
  }}
  after CopyVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> CopyVisitor, copy, Object {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<copy> ");
  }}
  before SubgraphVisitor {{
    out.print(": SubgraphVisitor  (");
    indent++;
  }}
  after SubgraphVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> SubgraphVisitor, is_equal, boolean {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<is_equal> ");
    out.print(" : boolean \"" + dest + "\"");
  }}
  before EqualVisitor {{
    out.print(": EqualVisitor  (");
    indent++;
  }}
  after EqualVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> EqualVisitor, is_equal, boolean {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<is_equal> ");
    out.print(" : boolean \"" + dest + "\"");
  }}
  before DisplayVisitor {{
    out.print(": DisplayVisitor  (");
    indent++;
  }}
  after DisplayVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> DisplayVisitor, indent, int {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<indent> ");
    out.print(" : int \"" + dest + "\"");
  }}
  before TraceVisitor {{
    out.print(": TraceVisitor  (");
    indent++;
  }}
  after TraceVisitor {{
    out.print(" )");
    indent--;
  }}
  before -> TraceVisitor, indent, int {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<indent> ");
    out.print(" : int \"" + dest + "\"");
  }}
  before File_PList {{
    out.print(": File_PList  {");
    indent++;
  }}
  after File_PList {{
    out.print(" }");
    indent--;
  }}
  before -> File_PList, first, Nonempty_File_PList {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<first> ");
  }}
  before Command_List {{
    out.print(": Command_List  {");
    indent++;
  }}
  after Command_List {{
    out.print(" }");
    indent--;
  }}
  before -> Command_List, first, Nonempty_Command_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<first> ");
  }}
  before Nonempty_File_PList {{
    out.print(": Nonempty_File_PList  (");
    indent++;
  }}
  after Nonempty_File_PList {{
    out.print(" )");
    indent--;
  }}
  before -> Nonempty_File_PList, it, File {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<it> ");
  }}
  before -> Nonempty_File_PList, next, Nonempty_File_PList {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<next> ");
  }}
  before Nonempty_Command_List {{
    out.print(": Nonempty_Command_List  (");
    indent++;
  }}
  after Nonempty_Command_List {{
    out.print(" )");
    indent--;
  }}
  before -> Nonempty_Command_List, it, Command {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<it> ");
  }}
  before -> Nonempty_Command_List, next, Nonempty_Command_List {{
    out.println();    for (int i = 0; i < indent; i++) out.print("\t");
    out.print("<next> ");
  }}
}