Parsing Program Generator





YACC(1)                  USER COMMANDS                    YACC(1)



NAME
     yacc - yet another compiler-compiler: parsing  program  gen-
     erator

SYNOPSIS
     yacc [ -dvlt ] _g_r_a_m_m_a_r

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

     The output file, y.tab.c, must be compiled by the C compiler
     to  produce a function named yyparse().  The yyparse() func-
     tion 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  use-
     ful  for  creating lexical analyzers usable by yacc-produced
     parsers.

OPTIONS
     -d   Generate the file y.tab.h with  the  define  statements
          that associate 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  parsing tables and a report on conflicts generated
          by ambiguities in the grammar.

     -l   Generate y.tab.c containing  no  numbered  line  direc-
          tives.

     -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  con-
                         flict 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)




Sun Release 4.1   Last change: 1 February 1989                  1






YACC(1)                  USER COMMANDS                    YACC(1)



     _P_r_o_g_r_a_m_m_i_n_g _U_t_i_l_i_t_i_e_s _a_n_d _L_i_b_r_a_r_i_e_s
     _L_R _P_a_r_s_i_n_g by A. V. Aho and S. C.  Johnson,  Computing  Sur-
     veys, 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.




































Sun Release 4.1   Last change: 1 February 1989                  2