Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

environ(5)

lex(1)






       yacc(1)                                                      yacc(1)


       NAME
             yacc - yet another compiler-compiler

       SYNOPSIS
             yacc [-vVdltw] [-p driver_file] [-Q[y|n]] file

       DESCRIPTION
             The yacc command converts a context-free grammar into a set of
             tables for a simple automaton that executes an LALR(1) parsing
             algorithm.  The grammar may be ambiguous; specified precedence
             rules are used to break ambiguities.  yacc processes
             supplementary code set characters in program comments and
             strings, and single-byte supplementary code set characters in
             tokens, according to the locale specified in the LC_CTYPE
             environment variable [see LANG on environ(5)].

             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 routine.  These routines must be
             supplied by the user; the lex(1) command is useful for
             creating lexical analyzers usable by yacc.

             -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 association allows source files other than
                       y.tab.c to access the token codes.

             -l        Specifies that the code produced in y.tab.c will not
                       contain any #line constructs.  This option should
                       only be used after the grammar and the associated
                       actions are fully debugged.

             -p driver_file
                       Supplies the path name of an alternate parser
                       prototype.

             -Q[y|n]   The -Qy option puts the version stamping information
                       in y.tab.c.  This allows you to know what version of
                       yacc built the file.  The -Qn option (the default)
                       writes no version information.


                           Copyright 1994 Novell, Inc.               Page 1













      yacc(1)                                                      yacc(1)


            -t        Compiles runtime debugging code by default.  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.
                      Whether or not the -t option is used, the runtime
                      debugging code is under the control of YYDEBUG, a
                      preprocessor symbol.  If YYDEBUG has a non-zero
                      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.

            -V        Prints on the standard error output the version
                      information for yacc.

            -w        Generates writable yacc tables.  These tables are
                      read-only by default.

      FILES
           y.output
           y.tab.c
           y.tab.h                defines for token names
           yacc.tmp, yacc.debug, yacc.acts
                                   temporary files
           LIBDIR/yaccpar         parser prototype for C programs
           LIBDIR                 usually /usr/ccs/lib
           /usr/lib/locale/locale/LC_MESSAGES/uxcplu
                                   language-specific message file [See
                                   LANG on environ(5).]

      ERRORS
            The number of reduce-reduce and shift-reduce conflicts is
            reported on the standard error output; a more detailed report
            is found in the y.output file.  Similarly, if some rules are
            not reachable from the start symbol, this instance is also
            reported.

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

      REFERENCES
            environ(5), lex(1)




                          Copyright 1994 Novell, Inc.               Page 2








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