jay takes a grammar, specified in BNF and augmented with semantic actions, and generates tables and an interpreter which recognizes the language defined by the grammar and executes the semantic actions as their corresponding phrases are recognized. The grammar should be LR(1), but there are disambiguating rules and techniques.
Actions, parsing tables, and the interpreter use Java. The grammar allows complete control over the class structure of the generated parser.
jay itself is written in C: we modified BSD yacc to act as a filter for a text file and use Java syntax. jay has been compiled under Linux and other Unix platforms and with cygwin on Windows.
jay has been used in a course on object-oriented compiler construction with Java. The English lecture notes (11/2002) and the German lecture notes (02/1999) provide numerous examples for it's use. The notes also discuss some alternatives to jay which are implemented in Java: cup for LR(1) grammars specified in BNF, JavaCC for LL(1) grammars specified in EBNF, oops for LL(1) grammars specified in EBNF and JLex for lexical patterns.
jay sources 0.8 tar.gz 40.3k zip 61.8k jay tutorial gziped PostScript ?m PDF ?m jay tutorial (German version) gziped PostScript 45.5k PDF 148.6k jay tutorial examples tar.gz 105k zip 136k jay design paper gziped PostScript ?m PDF ?m design paper (German Version) gziped PostScript 31k PDF 115.3k JLex tutorial (German version) PostScript 41.4k PDF 44.3k JLex tutorial examples (German version) tar.gz 49.6k zip 55.2k
To subscribe to the jay mailing list, send plain text mail to firstname.lastname@example.org with
subscribe jay [your-email-address]as the only text in the body. No subject is needed.
After subscription you can post a message by sending a mail to email@example.com .
|yacc sources||© ?? by Regents ??|
|jay||© 1999 by Axel-Tobias Schreiner and Bernd Kühl.|
|jay bird||© 1997 by Victor W. Fazio, III.|