Flex-like lexer generator

With a test file. Supports:
[s-eabc] range and multiple or
abc concatenation
a* kleene's star
a|b "regular" or
(abc) parenthesis