On which parts exactly are you stuck? I've rolled with Ragel as lexer, and Lemon as parser, and it was relatively simple.
[1] https://github.com/castel/libcastel/blob/master/parse/source...
[2] https://github.com/castel/libcastel/blob/master/parse/source...