Ox

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)