there is http://effbiae.com/parserclub/ which contains versions in c and k. of course it's not a fully working system, but shows the principle. nsl.com has many more about parsing k, but i never understood these (or didn't try enough to).
i have one file (used for learning) here: github.com/ktye/i/blob/master/_/i3/w/p.go
i have one file (used for learning) here: github.com/ktye/i/blob/master/_/i3/w/p.go