private Result processSubGroups(XmlElementDescriptor element) {
    getLastChild();
    while (myLastChild != null) {
      Result result = myLastChild.doTransition(element);
      switch (result) {
        case CONSUME -> {
          return Result.CONSUME;
        }
        case NONE -> myLastChild = getNextSubGroup();
        case PROCEED_TO_NEXT -> {
          myLastChild = getNextSubGroup();
          return myLastChild == null ? Result.PROCEED_TO_NEXT : Result.CONSUME;
        }
      }
    }
    return Result.NONE;
  }
private Result processSubGroups(XmlElementDescriptor element)