Last Update Time-stamp: "97/08/27 08:12:43 zdu"

Zyacc Homepage

Zyacc is a general-purpose parser generator that converts a grammar description for an LALR(1) context-free grammar into a C program to parse that grammar. Zyacc is largely upward compatible with Yacc and Bison.

Zyacc provides the following enhancements:

You can view a live demonstration of the GUI debugger, or browse the zyacc manual (which is derived from the Bison manual).

The distribution comes with a Prolog frontend which illustrates the use of semantic predicates to handle Prolog's dynamic operators. You can view the zyacc parser file, the associated lex scanner and its interface, a file which tracks current operators and its interface, and some implementation notes.

You can also look at the use of zyacc to build a C-frontend for a source-to-source profiling tool zprof. The use of semantic predicates enables a clean solution to the problem of parsing typedef-name's in C.

If you are interested, you can view a Java applet which demonstrates different parsing algorithms: recursive-descent, LL(1) table-driven parsing and shift-reduce parsing. The GUI to the zyacc debugger is built using some of the same Java classes.

You can download the full distribution including all documentation from zyacc-1.03.tar.gz (1119423 bytes) If you have a slow network connection, a subset distribution is in zyacc-1.03-min-doc.tar.gz ( 631962 bytes) This is the full distribution minus the automatically generated documentation. To build the full documentation from the subset distribution, you will need TeX, texinfo, dvips and texi2html.

If you do not need any of the above features, you are probably better off using GNU's bison which is almost definitely more stable. Also if LALR parsing is not your cup of tea, you should check out a LL(k) parser generator PCCTS.

Other projects.


Feedback: Please email any feedback to zdu@acm.org.