This thesis describes the bnfparser² C++ library. It is a generic runtime-generated parser capable of parsing any context-free language. The parser is primarily meant for verification and diagnosis of telecommunication protocols, but the usage is not restricted to that.
The BNF Parser² uses a modification of Tomita's linear LR parsing algorithm.
The modification is described in: Elizabeth Scott, Adrian Johnstone, and Shamsa Sadaf Husain, Tomita-Style Generalised LR Parsers, Royal Holloway University of London, December 2000.
The original algorithm is described in: Masaru Tomita, An Efficient Augmented-Context-Free Parsing Algorithm, in Computational Linguistics, Volume 13, Numbers 1-2, January-June 1987.
Different variants and extensions of Backus-Naur Form (BNF) are described in
The standard notations based on BNF are described in