JPlex
Java lexical analyzer generator
...JPlex is not a parser generator; it only generates an interface for its parsers, and it does not build a parse tree. When the lexer identifies a token that has a named event associated with it, it passes the token to the parser method associated with that event. A lexer can dispatch token events to any number of parsers.
JPlex is steadily being improved, and the Subversion repo will almost always be newer and better than the binary download.