Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ yacc(1) — GENIX 4.1A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lex(1)



      YACC(1)                 GENIX Programmer's Manual                 YACC(1)



      NAME
           yacc - yet another compiler-compiler

      SYNOPSIS
           yacc [ -vd ] grammar

      DESCRIPTION
           Yacc converts a context-free grammar into a set of tables for a sim-
           ple  automaton which executes an LR(1) parsing algorithm.  The gram-
           mar may be ambiguous; specified precedence rules are used  to  break
           ambiguities.

           The output file, y.tab.c, must be compiled by the C compiler to pro-
           duce  a program yyparse.  This program must be loaded with the lexi-
           cal analyzer program, yylex, as well as main and yyerror,  an  error
           handling  routine.   These  routines  must  be supplied by the user;
           Lex(1) is useful for creating lexical analyzers usable by yacc.

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

           If the -d flag is used, the  file  y.tab.h  is  generated  with  the
           define  statements  that  associate  the yacc-assigned `token codes'
           with the user-declared `token  names'.   This  allows  source  files
           other than y.tab.c to access the token codes.

      FILES
           y.output
           y.tab.c
           y.tab.h             defines for token names
           yacc.tmp, yacc.acts temporary files
           /usr/lib/yaccpar    parser prototype for C programs

      SEE ALSO
           lex(1)
           LR Parsing by A. V. Aho and S. C. Johnson, Computing Surveys,  June,
           1974.
           YACC - Yet Another Compiler Compiler by S. C. Johnson.

      DIAGNOSTICS
           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.  Similarly, if some rules are not reachable from  the
           start symbol, this is also reported.

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






      Printed 11/16/83                                                        1



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026