Hammer: Parser Combinators for C
github.com
github.com
Their goal is to promote the use of context-free formats and protocols, to avoid falling into the trap of trying to parse recursively-enumerable languages, a problem that reduces to the halting problem. The idea is that by sticking to context-free grammars, protocols will be easier to parse, and the bulk of memory corruption errors can eliminated.
Meredith Patterson and Sergey Bratus gave an excellent talk on the subject at 28c3 [2], and they've put together a video series on using Hammer to build a secure parser for JSON RPC [3].
TRX formally verified parser interpreter http://arxiv.org/pdf/1105.2576.pdf
Validating LR(1) Parsers http://gallium.inria.fr/~xleroy/publi/validated-parser.pdf
Verifying a parser for a C compiler http://gallium.inria.fr/~scherer/gagallium/verifying-a-parse...
Also, the author closed the mailing list and packed up; presumably to work for a company who 'bought him out'. Closing the mailing list was a notch rude...
Hammer does look pretty nice, I'm definitely going to have a poke at it!
I'm still hopeful Ragel 7 will happen.
[0] [PDF] https://people.csail.mit.edu/nickolai/papers/bangert-nail-la...
I also made some different design decisions than Hammer, giving it a slightly different goal: code generation instead of runtime combinators, output generation, no semantic actions...
Grr, whatever happened to plain C with no dependencies?