yacc(1)



NAME

     yacc - an LALR(1) parser generator


SYNOPSIS

     yacc [ -dlrtv ] [ -b file_prefix ] [ -p symbol_prefix ] filename


DESCRIPTION

     Yacc reads the grammar specification in the file filename  and  generates
     an  LR(1) parser for it.  The parsers consist of a set of LALR(1) parsing
     tables and a driver routine written in the C programming language.   Yacc
     normally  writes  the  parse  tables  and  the driver routine to the file
     y.tab.c.

     The following options are available:

     -b file_prefix
          The -b option changes the prefix prepended to the output file  names
          to  the  string  denoted  by file_prefix.  The default prefix is the
          character y.

     -d   The -d option causes the header file y.tab.h to be written.

     -l   If the -l option is not specified, yacc will insert #line directives
          in  the  generated  code.   The  #line directives let the C compiler
          relate errors in the generated code to the user's original code.  If
          the  -l  option  is  specified,  yacc  will  not  insert  the  #line
          directives.   #line  directives  specified  by  the  user  will   be
          retained.

     -p symbol_prefix
          The -p option changes the prefix prepended to yacc-generated symbols
          to  the  string denoted by symbol_prefix.  The default prefix is the
          string yy.

     -r   The -r option causes yacc to produce separate  files  for  code  and
          tables.   The  code  file  is named y.code.c, and the tables file is
          named y.tab.c.

     -t   The -t option changes the preprocessor directives generated by  yacc
          so  that  debugging  statements will be incorporated in the compiled
          code.

     -v   The -v option causes a human-readable description of  the  generated
          parser to be written to the file y.output.

     If the environment variable TMPDIR is set, the string denoted  by  TMPDIR
     will  be  used as the name of the directory where the temporary files are
     created.



FILES

     y.code.c
     y.tab.c
     y.tab.h
     y.output
     /tmp/yacc.aXXXXXX
     /tmp/yacc.tXXXXXX
     /tmp/yacc.uXXXXXX


DIAGNOSTICS

     If there are rules that are never reduced, the number of  such  rules  is
     reported  on  standard  error.   If  there are any LALR(1) conflicts, the
     number of conflicts is reported on standard error.