docs: private Set<MtasParserObject> processCRMSentence(
        MtasTokenIdFactory mtasTokenIdFactory, String name, String text,
        Integer currentOffset,
        List<MtasCRMParserFunctionOutput> functionOutputList,
        MtasCRMAncestors unknownAncestors,
        Map<String, List<MtasParserObject>> currentList,
        Map<String, Map<Integer, Set<String>>> updateList,
        Map<String, Set<Integer>> idPositions, Map<String, Integer[]> idOffsets,
        Set<MtasParserObject> previous, Set<MtasParserObject> previousClause)
        throws MtasParserException, MtasConfigException {
      MtasParserType tmpCurrentType;
      MtasParserObject currentObject;
      if ((tmpCurrentType = crmSentenceTypes.get(name)) != null) {
        String filteredText = text.replaceAll("[^0-9\\-]", "");
        currentObject = new MtasParserObject(tmpCurrentType);
        currentObject.setUnknownAncestorNumber(unknownAncestors.unknown);
        currentObject.setRealOffsetStart(currentOffset);
        currentObject.setText(filteredText);
        if (!prevalidateObject(currentObject, currentList)) {
          return new HashSet<>();
        } else {
          closePrevious(mtasTokenIdFactory, previousClause, currentOffset,
              unknownAncestors, currentList, updateList, idPositions, idOffsets);
          closePrevious(mtasTokenIdFactory, previous, currentOffset,
              unknownAncestors, currentList, updateList, idPositions, idOffsets);
          previous.clear();
          currentList.get(MAPPING_TYPE_GROUP).add(currentObject);
          unknownAncestors.unknown = 0;
          return new HashSet<>(Arrays.asList(currentObject));
        }
      }
      return new HashSet<>();
    }