Для построения лексического анализатора исползуй [rexical](https://github.com/tenderlove/rexical)