yacc - yet another compiler-compiler

     yacc [ -vor ] [ grammar ]

     Yacc converts a context-free grammar into a set of tables
     for a simple automaton which executes an LR(1) parsing algo-
     rithm.  The grammar may be ambiguous; specified precedence
     rules are used to break ambiguities.

     The output is, which must be compiled by the C com-
     piler and loaded with any other routines required (perhaps a
     lexical analyzer) and the Yacc library:

             cc other.o -ly

     If the -v flag is given, the file y.output is prepared,
     which contains a description of the parsing tables and a
     report on conflicts generated by ambiguities in the grammar.

     The -o flag calls an optimizer for the tables; the optimized
     tables, with parser included, appear on file

     The -r flag causes Yacc to accept grammars with Ratfor
     actions, and produce Ratfor output on; -r implies
     the -o flag.  Typical usage is then

             rc other.o

     ``LR Parsing'', by A. V. Aho and S. C. Johnson, Computing
     Surveys, June, 1974.  ``The YACC Compiler-compiler'', inter-
     nal memorandum.

     S. C. Johnson

     y.output                 when ratfor output is obtained
     yacc.tmp                when optimizer is called
     /lib/liby.a             runtime library for compiler
     /usr/yacc/fpar.r        ratfor parser
     /usr/yacc/opar.c        parser for optimized tables
     /usr/yacc/yopti         optimizer postpass

     The number of reduce-reduce and shift-reduce conflicts is
     reported on the standard output; a more detailed report is


     found in the y.output file.

     Because file names are fixed, at most one Yacc process can
     be active in a given directory at a time.