First page Back Continue Last page Overview Text


Anyway, if you haven't heard of Ragel, or you have and you aren't sure what the fuss is about, Ragel is basically compiles a state machine that you specify using the Ragel domain specific language.

The Ragel DSL is often more verbose than an equivalent ruby regular expression. It is more powerful in some ways, and less powerful in others.

It's more powerful in that you can embed arbitrary actions at any point in the scanning process.

It's less powerful in that it doesn't support features like backtracking. Also, if you want to get the equivalent of submatches, you have to implement it yourself using actions.