Ruby-native
Use familiar classes, constants, and actions. There is no separate lexer language to learn.
Lexer generation, in Ruby
flexr keeps lexer specifications in the language they serve. Define readable rules, inspect every decision, then generate deterministic Ruby for deployment.
One input, four decisions
if total == 42 /==/ wins over /=/ because the longest match wins.
Why flexr
Use familiar classes, constants, and actions. There is no separate lexer language to learn.
Longest match wins. Source order resolves ties. Unsupported patterns surface early.
Runtime mode keeps iteration quick. Generated mode keeps deployment reproducible.
Ready when you are
gem install flexr Read the quick start