EiffelLex: Lexical analysis, the object-oriented way
EiffelLex provides a set of efficient object-oriented mechanisms for lexical analysis, based on several kinds of finite automata, deterministic and non-deterministic.
The library and its design principles are described in detail,
Reusable Software: The Base
Object-Oriented Component Libraries".