byte act = burs.action[k.rule(k.getNonTerminal())]; if ((act & burs.LEFT_CHILD_FIRST) != 0) {
byte act = OPT_BURS_STATE.action[k.rule(k.getNonTerminal())]; if ((act & OPT_BURS_STATE.LEFT_CHILD_FIRST) != 0) {
  private void generateTree(OPT_BURS_TreeNode k, OPT_BURS_STATE burs) {    OPT_BURS_TreeNode child1 = k.child1;    OPT_BURS_TreeNode child2 = k.child2;    if (child1 != null) {      if (child2 != null) {        // k has two children; use register labeling to        // determine order that minimizes register pressure        if (k.isSuperNodeRoot()) {          byte act = burs.action[k.rule(k.getNonTerminal())];          if ((act & burs.LEFT_CHILD_FIRST) != 0) {            // rule selected forces order of evaluation            generateTree(child1, burs);            generateTree(child2, burs);          } else if ((act & burs.RIGHT_CHILD_FIRST) != 0) {            // rule selected forces order of evaluation            generateTree(child2, burs);            generateTree(child1, burs);          } else if (child2.numRegisters() > child1.numRegisters()) {            generateTree(child2, burs);            generateTree(child1, burs);          } else {            generateTree(child1, burs);            generateTree(child2, burs);          }        } else {          if (child2.numRegisters() > child1.numRegisters()) {            generateTree(child2, burs);            generateTree(child1, burs);          } else {            generateTree(child1, burs);            generateTree(child2, burs);          }         }      } else {        generateTree(child1, burs);      }    } else if (child2 != null) {      generateTree(child2, burs);    }    if (k.isSuperNodeRoot()) {      int nonterminal = k.getNonTerminal();      int rule = k.rule(nonterminal);      burs.code(k, nonterminal, rule);      if (DEBUG) VM.sysWrite(k + " " + OPT_BURS_Debug.string[rule] + "\n");    }    OPT_DepGraphNode dgnode = k.dg_node;    if (dgnode != null) {      OPT_SpaceEffGraphNode source = dgnode.nextSorted;      for (OPT_SpaceEffGraphEdge out = dgnode.firstOutEdge();            out != null;            out = out.getNextOut()) {        OPT_SpaceEffGraphNode dest = out.toNode().nextSorted;        if (source != dest) {          int count = --dest.scratch;          if (DEBUG) VM.sysWrite(count + ": edge " + source + " to " + dest + "\n");          if (count == 0) {            readySetInsert((OPT_BURS_TreeNode)dest.scratchObject);          }        }      }    }  }