code: public static Visits[] run(Ag ag, Layout layout, PrintWriter verbose) throws GenericException {
          OagBuilder builder;
          Graph<AttributeOccurrence>[] dp;
          Graph<AttributeOccurrence>[] idp;
          Graph<Attribute>[] ids;
          int i;
          List<Attribute>[][] as;
          StringArrayList symbolTable;
          Graph<Attribute>[] ds;
          Graph[] edp;
          Visits[] visits;
  
          builder = new OagBuilder(ag, layout);
          dp = builder.createDP();
          idp = builder.createIDP(dp);
          ids = builder.createIDS(idp);
          as = builder.createA(ids);
          ds = builder.createDS(ids, as);
          edp = builder.createEDP(dp, ds);
          visits = builder.createVisits(edp, as);
          if (verbose != null) {
              symbolTable = ag.getGrammar().getSymbolTable();
              for (i = 0; i < dp.length; i++) {
                  verbose.println("prod=" + i);
                  verbose.println("  dp\t" + aos(symbolTable, dp[i]));
                  verbose.println("  idp\t" + aos(symbolTable, idp[i]));
                  verbose.println("  edp\t" + aos(symbolTable, edp[i]));
              }
              for (i = 0; i < ids.length; i++) {
                  verbose.println(symbolTable.get(i) + ":");
                  verbose.println(" ids\t" + as(symbolTable, ids[i]));
                  verbose.println(" as\t");
                  print(as[i], verbose);
                  verbose.println(" ds\t" + as(symbolTable, ds[i]));
              }
          }
          return visits;
      }
docs: --