| [9] | 1 |      The -r option has been implemented.  The -r option tells Yacc to
 | 
|---|
 | 2 | put the read-only tables in y.tab.c and the code and variables in
 | 
|---|
 | 3 | y.code.c.  Keith Bostic asked for this option so that :yyfix could be
 | 
|---|
 | 4 | eliminated.
 | 
|---|
 | 5 | 
 | 
|---|
 | 6 |      The -l and -t options have been implemented.  The -l option tells
 | 
|---|
 | 7 | Yacc not to include #line directives in the code it produces.  The -t
 | 
|---|
 | 8 | option causes debugging code to be included in the compiled parser.
 | 
|---|
 | 9 | 
 | 
|---|
 | 10 |      The code for error recovery has been changed to implement the same
 | 
|---|
 | 11 | algorithm as AT&T Yacc.  There will still be differences in the way
 | 
|---|
 | 12 | error recovery works because AT&T Yacc uses more default reductions
 | 
|---|
 | 13 | than Berkeley Yacc.
 | 
|---|
 | 14 | 
 | 
|---|
 | 15 |      The environment variable TMPDIR determines the directory where
 | 
|---|
 | 16 | temporary files will be created.  If TMPDIR is defined, temporary files
 | 
|---|
 | 17 | will be created in the directory whose pathname is the value of TMPDIR.
 | 
|---|
 | 18 | By default, temporary files are created in /tmp.
 | 
|---|
 | 19 | 
 | 
|---|
 | 20 |      The keywords are now case-insensitive.  For example, %nonassoc,
 | 
|---|
 | 21 | %NONASSOC, %NonAssoc, and %nOnAsSoC are all equivalent.
 | 
|---|
 | 22 | 
 | 
|---|
 | 23 |      Commas and semicolons that are not part of C code are treated as
 | 
|---|
 | 24 | commentary.
 | 
|---|
 | 25 | 
 | 
|---|
 | 26 |      Line-end comments, as in BCPL, are permitted.  Line-end comments
 | 
|---|
 | 27 | begin with // and end at the next end-of-line.  Line-end comments are
 | 
|---|
 | 28 | permitted in C code; they are converted to C comments on output.
 | 
|---|
 | 29 | 
 | 
|---|
 | 30 |      The form of y.output files has been changed to look more like
 | 
|---|
 | 31 | those produced by AT&T Yacc.
 | 
|---|
 | 32 | 
 | 
|---|
 | 33 |      A new kind of declaration has been added.  The form of the declaration
 | 
|---|
 | 34 | is
 | 
|---|
 | 35 | 
 | 
|---|
 | 36 |           %ident string
 | 
|---|
 | 37 | 
 | 
|---|
 | 38 | where string is a sequence of characters begining with a double quote
 | 
|---|
 | 39 | and ending with either a double quote or the next end-of-line, whichever
 | 
|---|
 | 40 | comes first.  The declaration will cause a #ident directive to be written
 | 
|---|
 | 41 | near the start of the output file.
 | 
|---|
 | 42 | 
 | 
|---|
 | 43 |      If a parser has been compiled with debugging code, that code can be
 | 
|---|
 | 44 | enabled by setting an environment variable.  If the environment variable
 | 
|---|
 | 45 | YYDEBUG is set to 0, debugging output is suppressed.  If it is set to 1,
 | 
|---|
 | 46 | debugging output is written to standard output.
 | 
|---|