nyu is a combination of modern academic approaches to parsing formal grammars from PEGs and expression grammars that represents the new state of the art in parser generators. nyu grammars are written in a powerful language based on PEGs (parsing expression grammars) but with modifications to allow both the AST and the parser to be specified intuitively in a single grammar. nyu outputs parsers that take advantage of the chilon::parser meta-programming library for C++. The generated parsers are almost as concise and readable as the input grammars, yet perform as well as hand-written C code. nyu ASTs are built using tuples, variant types, and lists, and allow self referential parsers and AST nodes to be manipulated. Advanced features such as hashed containers and grammar inheritance are also possible and well tested. nyu is currently powerful enough to deal with complex grammars and bootstraps its own parser.
chilon::parser provides an extended PEG-like language using C++0x template meta-programming. This PEG-based language has been extended to support AST building features directly embedded into the type system. chilon::parser uses the input PEG to create the AST type at compile time using tuples, vectors, variants, custom classes, ranges, and primitive types. The AST is populated by parsers generated from the same type description at run-time.