code: private String findTransitivity(String verb) {
      if (verb.endsWith("iĝi")) {
        return "nt";
      } else if (verb.endsWith("igi")) {
        // The verb "memmortigi is strange: even though it ends in -igi, it
        // is intransitive.
        return verb.equals("memmortigi") ? "nt" : "tr";
      }
  
      // This loop executes only once for most verbs (or very few times).
      for (;;) {
        boolean isTransitive   = setTransitiveVerbs.contains(verb);
        boolean isIntransitive = setIntransitiveVerbs.contains(verb);
  
        if (isTransitive) {
          return isIntransitive ? "tn" : "tr";
        } else if (isIntransitive) {
          return "nt";
        }
  
        // Verb is not explicitly listed as transitive or intransitive.
        // Try to remove a prefix mal-, ek-, re-, mis- fi- or
        // suffix -ad, -aĉ, -et, -eg since those never alter
        // transitivity.  Then look up verb again in case we find
        // a verb with a known transitivity.  For example, given a verb
        // "malŝategi", we will probe "malŝategi", "ŝategi" "ŝati"
        // and then finally find out that "ŝati" is transitive.
        Matcher matcherPrefix = patternPrefix.matcher(verb);
        if (matcherPrefix.find()) {
          // Remove a prefix and try again.
          verb = matcherPrefix.group(1);
          continue;
        }
        Matcher matcherSuffix = patternSuffix.matcher(verb);
        if (matcherSuffix.find()) {
          // Remove a suffix and try again.
          verb = matcherSuffix.group(1) + "i";
          continue;
        }
        break;
      }
      return "xx"; // Unknown transitivity.
    }
docs: "xx" for an unknown verb.