version: G1.01
parts: Yacc/Lex/C preprocessor, tutorial, reference manual, manual page, examples, Ox-ready parsers (C, C++, Pascal, Ada, Fortran)
author: Kurt Bischoff <bischoff@cs.iastate.edu>
how to get: FTP
Ox generalises the function of Yacc in the way that attribute grammars generalise context-free grammars. Ordinary Yacc and Lex specifications may be augmented with definitions of synthesised and inherited attributes written in C syntax. Ox checks these specifications for consistency and completeness, and generates from them a program that builds and decorates attributed parse trees. Ox accepts a most general class of attribute grammars. The user may specify postdecoration traversals for easy ordering of side effects such as code generation. Ox handles the tedious and error-prone details of writing code for parse-tree management, so its use eases problems of security and maintainability associated with that aspect of translator development. Ox is a preprocessor, and extends the syntax and semantics of Yacc, Lex, and C.
reference: Most compiler textbooks have descriptions of attribute grammars.
features: LALR1 grammar, semantic-analyser generation.
bugs: none known. Report bugs to <ox-project@cs.iastate.edu>.
restriction: Use of Ox is free. Ox-generated code is the property of the Ox user.
requires: yacc, lex
ports: every kind of Unix
contact: <ox-request@cs.iastate.edu>
["User Manual for Ox: An Attribute-Grammar Compiling System based on Yacc, Lex and C", K.M. Bischoff, TR92-30, Iowa State U, Dec 1992].
(14 Nov 1993)