My instances hold the state associated with scanning text. My subclasses scan characters for specified purposes, such as computing a CharacterBlock or placing characters into Forms.
In version 3.8->4.4 there was also a class MultiCharacterScanner to handle multi-byte character strings. This was cleaned up for 4.5 and the complex of specialised and confusing scanners were folded back int one class hierarchy