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.
|Tags||Parser Generator Software Development Text Processing Code Generators Compilers|
|Operating Systems||Linux Mac OS X Unix Windows|
|Implementation||C++ C++0x peg|
Release Notes: Parsing was made faster by upgrading to chilon 1.5. Spacing? is now parsed between expressions in a sequence rather than Spacing*. A possible bad order of generated rules when using tree operators was fixed.
Release Notes: nyu now fully bootstraps its own parser and has become very usable.
Release Notes: Partial code generation for classes and enumerations, documentation, and code simplifications and fixes. chilon was upgraded to fix a missing include.
Release Notes: Nyu fully parses its own grammar. Classes and enumerations can be defined from nyu. Parser rules can inherit from types. Output file, column, and line information of parsing errors with a visual display pointing to the error location.
Release Notes: This is the first public release of nyu. Nyu parses its own language fully and can dump the AST. It cannot output parsers quite yet.