xref: /freebsd/contrib/byacc/NEW_FEATURES (revision e0c4386e7e71d93b0edc0c8fa156263fc4a8b0b6)
1     The -r option has been implemented.  The -r option tells Yacc to
2put the read-only tables in y.tab.c and the code and variables in
3y.code.c.  Keith Bostic asked for this option so that :yyfix could be
4eliminated.
5
6     The -l and -t options have been implemented.  The -l option tells
7Yacc not to include #line directives in the code it produces.  The -t
8option causes debugging code to be included in the compiled parser.
9
10     The code for error recovery has been changed to implement the same
11algorithm as AT&T Yacc.  There will still be differences in the way
12error recovery works because AT&T Yacc uses more default reductions
13than Berkeley Yacc.
14
15     The environment variable TMPDIR determines the directory where
16temporary files will be created.  If TMPDIR is defined, temporary files
17will be created in the directory whose pathname is the value of TMPDIR.
18By 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
24commentary.
25
26     Line-end comments, as in BCPL, are permitted.  Line-end comments
27begin with // and end at the next end-of-line.  Line-end comments are
28permitted 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
31those produced by AT&T Yacc.
32
33     A new kind of declaration has been added.  The form of the declaration
34is
35
36	  %ident string
37
38where string is a sequence of characters begining with a double quote
39and ending with either a double quote or the next end-of-line, whichever
40comes first.  The declaration will cause a #ident directive to be written
41near the start of the output file.
42
43     If a parser has been compiled with debugging code, that code can be
44enabled by setting an environment variable.  If the environment variable
45YYDEBUG is set to 0, debugging output is suppressed.  If it is set to 1,
46debugging output is written to standard output.
47