Skip to content
/ nyu Public

Nyu is a parser generator based on the TBPEG variant of PEGs where both the parser and AST can be specified in a single grammar.

License

Notifications You must be signed in to change notification settings

insidewhy/nyu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Building:
    cd src/nyu
    ./configure
    make
    make install

This project needs gcc 4.4 minimum to compile. It has been tested with
gcc 4.4.2, 4.4.3 and gcc 4.5. Lately it compiles slowly with any
version of gcc below 4.5

This project is organised like this:
    doc/website/    - The nyu website
    src/
        chilon/     - Library used by this project. git submodule
        nyu/
            grammar/  - Nyu grammars
            cpp/          - nyu AST -> C++
            grammar/      - nyu chilon::parser grammar

Please see http://chilon.net/nyu for documentation.

blurb:

nyu is a combination of modern academic approaches to parsing formal 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++. 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 parse rules and AST nodes to be manipulated.

Advanced features such as hashed nodes and grammar inheritance are also possible and well tested. nyu is currently complete enough to deal with complex grammars and bootstraps its own parser.

About

Nyu is a parser generator based on the TBPEG variant of PEGs where both the parser and AST can be specified in a single grammar.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages