a library for building lexical analyzers