static void printExplainTree(Explain e) {
  printExplainTree(0, e);
}

static void printExplainTree(int indent, Explain e) {
  boolean printNulls = false;
  
  if (e == null) {
    // this would print "null" for every <identifier> etc
    if (printNulls)
      print(indent(indent) + "null");
  } else {
    print(indent(indent) + e.className() + " | " + e.string());
    for (Explain sub : e.subs)
      printExplainTree(indent+2, sub);
  }
}