- stop = parent->get_prev_grapheme(output, alphabet);
- }
- output.push_back(character);
- return stop;
- }
-
- int PathTrie::distance_to_codepoint_boundary(unsigned char *first_byte,
- const Alphabet& alphabet)
- {
- if (byte_is_codepoint_boundary(alphabet.DecodeSingle(character)[0])) {
- *first_byte = (unsigned char)character + 1;
- return 1;
- }
- if (parent != nullptr && parent->character != ROOT_) {
- return 1 + parent->distance_to_codepoint_boundary(first_byte, alphabet);
- }
- assert(false); // unreachable
- return 0;
- }
-
- PathTrie* PathTrie::get_prev_word(std::vector<unsigned int>& output,