DictTrie provides the kind of access to the dictionary needed by the respeller. That is, it allows the client to look up a pronunciation phoneme by phoneme. At any point, the function MoveUpTrie either returns a failure indication, signifying that no word has as its initial segment the series of phonemes that has been pursued, or it returns the identifier for the proper continuation node. When the client has the next phoneme in hand, it calls MoveUpTrie with that continuation node ID and the next phoneme. Thus from the client's point of view, it is simply getting back a generator state handle, whose value it is indifferent to. If the client gets to the end of the word without failing, it calls LookUp to see if there is a termination (a whole word matching the pursued phoneme string). If so, the dictionary text is positioned at the first such entry, and GetEntry can be called repeatedly to read in entries as long as the pronunciation is of interest (matches).
The important feature about this organization is that it lets its client prune candidate pronunciations as soon as an unattested initial segment is generated.