This is a C++ grammar for the Lezer parser system.
The grammar used is based in a large part on the corresponding tree-sitter grammar.
It should be noted that really parsing C++ without a symbol table and a preprocessor is not really something that is possible. The language is very, very ambiguous when parsed like that. This grammar tries to pick a likely parse, but is entirely capable of picking the wrong one.
The code is licensed under an MIT license.