32v 1m yacc

From Computer History Wiki
Revision as of 19:00, 26 October 2009 by Neozeed (talk | contribs) (New page: YACC(1) UNIX Programmer's Manual YACC(1) == NAME == yacc - yet another compiler-compiler == SYNOPSIS == yacc [ -vd ] grammar == DESCRIPTION == ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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/lib/yaccpar    parser prototype for C programs
    /lib/liby.a         library with default `main' and `yyerror'

SEE ALSO

    lex(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.