


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



NAME
     yacc - yet another compiler-compiler

SYNOPSIS
     yacc [ -vd ] grammar

DESCRIPTION
     _Y_a_c_c 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 file, _y._t_a_b._c, must be compiled by the C compiler
     to produce a program _y_y_p_a_r_s_e.  This program must be loaded
     with the lexical analyzer program, _y_y_l_e_x, as well as _m_a_i_n
     and _y_y_e_r_r_o_r, an error handling routine.  These routines must
     be supplied by the user; _L_e_x(1) is useful for creating lexi-
     cal analyzers usable by _y_a_c_c.

     If the -v flag is given, the file _y._o_u_t_p_u_t is prepared,
     which contains 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._t_a_b._h is generated with
     the _d_e_f_i_n_e statements that associate the _y_a_c_c-assigned
     `token codes' with the user-declared `token names'.  This
     allows source files other than _y._t_a_b._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/share/misc/yaccparparser prototype for C programs

SEE ALSO
     _l_e_x(1)
     _L_R _P_a_r_s_i_n_g by A. V. Aho and S. C. Johnson, Computing Sur-
     veys, June, 1974.
     _Y_A_C_C - _Y_e_t _A_n_o_t_h_e_r _C_o_m_p_i_l_e_r _C_o_m_p_i_l_e_r 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._o_u_t_p_u_t 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 _y_a_c_c process can
     be active in a given directory at a time.




Printed 11/26/99	October 22, 1996			1



