YACC(1) 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 algorithm. 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 ana‐ lyzer 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 lexical 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/lib/yaccpar parser 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 Surveys, 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 sym‐ bol, 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. 7th Edition April 29, 1985 YACC(1)