The Boost:Spirit EBNF parser framework22 Apr 2008
Came cross this library when searching for ideas to parse ABNF-based protocols (such as SIP and SDP).
Spirit is an object oriented recursive descent parser framework implemented using template meta-programming techniques. Expression templates  allow us to approximate the syntax of Extended Backus Normal Form (EBNF) completely in C. Parser objects are composed through operator overloading and the result is a backtracking, top down parser that is capable of parsing rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in C. Inline EBNF grammar specifications can mix freely with other C code and, thanks to the generative power of C templates, are immediately executable.
Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort.
Reference: Boost.Spirit Home