I've been working on a combinatoric approach with Fexl, "compiling" all the way down to my two turtles S and C, e.g.:
I'm also relying on two higher-level combinators L and R to reduce the size of the combinatorial forms, e.g.:
The bottom line is that the entire Fexl parser is defined in terms of the two primitive combinators S and C.