code: void addRuleRootNodes(List<RBBINode> dest, RBBINode node) {
             if (node == null) {
                 return;
             }
             if (node.fRuleRoot) {
                 dest.add(node);
                 // Note: rules cannot nest. If we found a rule start node,
                 //       no child node can also be a start node.
                 return;
             }
             addRuleRootNodes(dest, node.fLeftChild);
             addRuleRootNodes(dest, node.fRightChild);
         }
docs: -----------------------------------------------------------------------------