unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

YACC(1)                     General Commands Manual                    YACC(1)



NAME
       yacc - yet another compiler-compiler: parsing program generator

SYNOPSIS
       yacc [ -dvlt ] grammar

DESCRIPTION
       yacc  converts a context-free grammar into a set of tables for a simple
       automaton which executes an LR(1) parsing algorithm.  The  grammar  may
       be  ambiguous,  in which case specified precedence rules may be used to
       break those ambiguities.

       The output file, y.tab.c, must be compiled by the C compiler to produce
       a function named yyparse().  The yyparse() function must be loaded with
       the lexical analyzer yylex(), as well as main() and the error  handling
       routine yyerror().  These routines must be supplied by the user; lex(1)
       is useful  for  creating  lexical  analyzers  usable  by  yacc-produced
       parsers.

OPTIONS
       -d     Generate  the file y.tab.h with the define statements that asso-
              ciate the yacc-assigned "token  codes"  with  the  user-declared
              "token names" so that source files other than y.tab.c can access
              the token codes.

       -v     Prepare the file y.output containing a description of the  pars-
              ing tables and a report on conflicts generated by ambiguities in
              the grammar.

       -l     Generate y.tab.c containing no numbered line directives.

       -t     Set the preprocessor symbol yydebug, so y.tab.c will be compiled
              with runtime debugging code.

FILES
       y.output            description of parsing tables and conflict report
       y.tab.c             output parser
       y.tab.h             defines for token names
       yacc.tmp, yacc.acts temporary files
       /usr/lib/yaccpar    parser prototype for C programs
       /usr/5lib/liby.a    library  provides  primitive  routines  main()  and
                           yyerror() to facilitate the initial use of yacc.

SEE ALSO
       cc(1V), lex(1)

       LR Parsing by A. V. Aho and S. C.  Johnson,  Computing  Surveys,  June,
       1974

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.output
       file.   Similarly,  it is also reported if some rules are not reachable
       from the start symbol.

NOTES
       Because the cc(1V) command does not generate or  support  8-bit  symbol
       names, it is inappropriate to make yacc 8-bit clean.  See cc(1V) for an
       explanation about why cc is not 8-bit clean.

BUGS
       Because file names are fixed, no more than one yacc process  should  be
       active in a given directory at a time.



                                1 February 1989                        YACC(1)