Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ yacc(1) — svr4 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lex(1)



YACC(1-SVR4)        RISC/os Reference Manual         YACC(1-SVR4)



NAME
     yacc - yet another compiler-compiler

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

DESCRIPTION
     The yacc command converts a context-free grammar into a set
     of tables for a simple automaton that executes an LALR(1)
     (Look-Ahead one input symbol) parsing algorithm.  The gram-
     mar 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.  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 state-
              ments 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 asso-
              ciated actions are fully debugged.

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

     -t       Compiles runtime debugging code by default.  Run-
              time 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.



                        Printed 11/19/92                   Page 1





YACC(1-SVR4)        RISC/os Reference Manual         YACC(1-SVR4)



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

     -p       Specifies parser to be used.  The default is
              LIBDIR/yaccpar.

INTERNATIONAL FUNCTIONALITY
     yacc can process characters from supplementary code sets as
     well as ASCII characters.

     Characters from supplementary code sets can be specified in
     comments which exist in declarations, rules, and programs.

     Characters from supplementary code sets can be specified in
     strings which exist in actions in rules and in programs.

     Character strings from supplementary code sets can be
     defined as tokens.

FILES
     /usr/ccs/bin/yacc
     /usr/ccs/lib/yaccpar
                         parser prototype for C programs
     y.output
     y.tab.c
     y.tab.h             defines for token names
     yacc.tmp,
     yacc.debug, yacc.acts
                         temporary files
LIMITATIONS
     Characters from supplementary code sets which define tokens
     are restricted to single-byte characters.
SEE ALSO
     lex(1).
     The yacc chapter in the Programmer's Guide.
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 instance
     is also reported.
NOTES
     Because file names are fixed, at most one yacc process can
     be active in a given directory at a given time.
     RISC/os 5.0 provides 3 version of the yacc command: BSD43-
     based, SVR3-based, and this SVR4-based version, which is
     similar to the SVR3-based version but produces slightly dif-
     ferent output.  This SVR4-based yacc handles multibyte char-
     acters and uses messaging facilities (see INTERNATIONAL
     FUNCTIONALITY, above), dynamically allocates storage, and
     includes the following header files:




 Page 2                 Printed 11/19/92





YACC(1-SVR4)        RISC/os Reference Manual         YACC(1-SVR4)



          #include <malloc.h>
          #include <memory.h>
          #include <values.h>




















































                        Printed 11/19/92                   Page 3



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