Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lex(1)



  yacc(1)                             CLIX                             yacc(1)



  NAME

    yacc - Runs a compiler-compiler

  SYNOPSIS

    yacc [-vdlt] grammar

  FLAGS

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

    -d   Generates the file y.tab.h 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.

    -l   Excludes #line constructs from the code produced in y.tab.c.  This
         should only be used after the grammar and the associated actions are
         fully debugged.

    -t   Compiles the runtime debugging code generated in y.tab.c.

  DESCRIPTION

    The yacc (yet another compiler compiler) command converts a context-free
    grammar into a set of tables for a simple automaton which executes a
    parsing algorithm.  The grammar 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 produce a
    program yyparse.  This program must be loaded with the lexical analyzer
    program, yylex, as well as main and yyerror, an error handling function.
    These functions must be supplied by the user.  The lex command is useful
    for creating lexical analyzers usable by yacc.

    Runtime debugging code is always generated in y.tab.c under conditional
    compilation control.  By default, this code is not included when y.tab.c
    is compiled.  However, when the -t flag is used, this debugging code will
    be compiled by default.  Independent of whether the -t flag was used, the
    runtime debugging code is under the control of YYDEBUG, a preprocessor
    symbol.  If YYDEBUG has a nonzero value, then the debugging code is
    included.  If its value is zero, then the code will not be included.  The
    size and execution time of a program produced without the runtime
    debugging code will be smaller and slightly faster.

  FILES

    y.output



  2/94 - Intergraph Corporation                                              1






  yacc(1)                             CLIX                             yacc(1)



    y.tab.c
    y.tab.h
           Definitions for token names.

    yacc.tmp
           Temporary file.

    yacc.debug
           Temporary file.

    yacc.acts
           Temporary file.

    /usr/lib/yaccpar
           Parser prototype for C programs.

  NOTES

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

  EXIT VALUES

    The number of reduce-reduce and shift-reduce conflicts is reported on
    stderr; 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.

  RELATED INFORMATION

    Commands: lex(1)























  2                                              Intergraph Corporation - 2/94




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