User Manual for Ox: An Attribute-Grammar Compiling System based on Yacc, Lex, and C







Deposit Papers 


Bischoff, Kurt M. (1992) User Manual for Ox: An Attribute-Grammar Compiling System based on Yacc, Lex, and C. Technical Report TR92-30, Department of Computer Science, Iowa State University.

Full text available as:Postscript
Adobe PDF


User Manual for
Ox: An Attribute Grammar Compiling System
based on Yacc, Lex, and C
by Kurt M. Bischoff
Iowa State University
December 1992
Ox generalizes the function of Yacc in the way that attribute
grammars generalize context-free grammars.  Ordinary Yacc and Lex
specifications may be augmented with definitions of synthesized
and inherited attributes written in C syntax.  From these
specifications, Ox generates 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.
The translators generated by Ox use internal memory management
that is often much faster than the common technique of calling
malloc once for each parse-tree node.
Ox is a Yacc/Lex/C preprocessor, and is designed to bring
attribute grammars closer to the mainstream of Unix-based
language development.  Ox inherits all of the familiar syntax and
semantics of Yacc, Lex, and C.  It is relatively easy to convert
programs between Ox code and "pure Yacc/Lex/C" code.
Ox has been used to build a compiler for a small (eighty grammar
rules) block-structured imperative programming language.
This document is the main reference for using Ox.

Subjects:All uncategorized technical reports
ID code:00000033
Deposited by:Staff Account on 01 December 1992

Contact site administrator at: