Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ yacc(1) — DG/UX 4.00

Media Vault

Software Library

Restoration Projects

Artifacts Sought



                                                                  yacc(1)



        _________________________________________________________________
        yacc                                                      Command
        yet another compiler-compiler
        _________________________________________________________________


        SYNTAX

        yacc [ -vdlt ] grammar


        DESCRIPTION

        Yacc converts a context-free grammar into a set of tables for a
        simple automaton that executes an LR(1) 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 routine.  The user must supply these routines.
        Lex(1) is useful for creating lexical analyzers usable by yacc.

        If you use -v flag, the file y.output is prepared.  It contains a
        description of the parsing tables and a report on conflicts
        generated by ambiguities in the grammar.

        If you use the -d flag, the file y.tab.h is generated 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.

        If you use the -l flag, the code produced in y.tab.c will not
        contain any #line constructs.  Use this after the grammar and the
        associated actions are fully debugged.

        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 yacc's -t
        option is used, this debugging code will be compiled by default.
        With or without -t option, the runtime debugging code is under
        the control of YYDEBUG, a pre-processor 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.


        FILES




        DG/UX 4.00                                                 Page 1
               Licensed material--property of copyright holder(s)





                                                                  yacc(1)



        y.output
        y.tab.c
        y.tab.h             Defines for token names
        yacc.tmp,
        yacc.debug, yacc.acts    Temporary files


        SEE ALSO

        lex(1).
        "Yacc-Yet Another Compiler Compiler" in Programmer's Guide to the
        DG/UX System.


        DIAGNOSTICS

        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 is also reported.


        BUGS

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




























        DG/UX 4.00                                                 Page 2
               Licensed material--property of copyright holder(s)



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