xref: /freebsd/contrib/byacc/NEW_FEATURES (revision b652778e426d00b6a1df29bbd86869db86f36e25)
1*98e903e7SBaptiste Daroussin     The -r option has been implemented.  The -r option tells Yacc to
2*98e903e7SBaptiste Daroussinput the read-only tables in y.tab.c and the code and variables in
3*98e903e7SBaptiste Daroussiny.code.c.  Keith Bostic asked for this option so that :yyfix could be
4*98e903e7SBaptiste Daroussineliminated.
5*98e903e7SBaptiste Daroussin
6*98e903e7SBaptiste Daroussin     The -l and -t options have been implemented.  The -l option tells
7*98e903e7SBaptiste DaroussinYacc not to include #line directives in the code it produces.  The -t
8*98e903e7SBaptiste Daroussinoption causes debugging code to be included in the compiled parser.
9*98e903e7SBaptiste Daroussin
10*98e903e7SBaptiste Daroussin     The code for error recovery has been changed to implement the same
11*98e903e7SBaptiste Daroussinalgorithm as AT&T Yacc.  There will still be differences in the way
12*98e903e7SBaptiste Daroussinerror recovery works because AT&T Yacc uses more default reductions
13*98e903e7SBaptiste Daroussinthan Berkeley Yacc.
14*98e903e7SBaptiste Daroussin
15*98e903e7SBaptiste Daroussin     The environment variable TMPDIR determines the directory where
16*98e903e7SBaptiste Daroussintemporary files will be created.  If TMPDIR is defined, temporary files
17*98e903e7SBaptiste Daroussinwill be created in the directory whose pathname is the value of TMPDIR.
18*98e903e7SBaptiste DaroussinBy default, temporary files are created in /tmp.
19*98e903e7SBaptiste Daroussin
20*98e903e7SBaptiste Daroussin     The keywords are now case-insensitive.  For example, %nonassoc,
21*98e903e7SBaptiste Daroussin%NONASSOC, %NonAssoc, and %nOnAsSoC are all equivalent.
22*98e903e7SBaptiste Daroussin
23*98e903e7SBaptiste Daroussin     Commas and semicolons that are not part of C code are treated as
24*98e903e7SBaptiste Daroussincommentary.
25*98e903e7SBaptiste Daroussin
26*98e903e7SBaptiste Daroussin     Line-end comments, as in BCPL, are permitted.  Line-end comments
27*98e903e7SBaptiste Daroussinbegin with // and end at the next end-of-line.  Line-end comments are
28*98e903e7SBaptiste Daroussinpermitted in C code; they are converted to C comments on output.
29*98e903e7SBaptiste Daroussin
30*98e903e7SBaptiste Daroussin     The form of y.output files has been changed to look more like
31*98e903e7SBaptiste Daroussinthose produced by AT&T Yacc.
32*98e903e7SBaptiste Daroussin
33*98e903e7SBaptiste Daroussin     A new kind of declaration has been added.  The form of the declaration
34*98e903e7SBaptiste Daroussinis
35*98e903e7SBaptiste Daroussin
36*98e903e7SBaptiste Daroussin	  %ident string
37*98e903e7SBaptiste Daroussin
38*98e903e7SBaptiste Daroussinwhere string is a sequence of characters begining with a double quote
39*98e903e7SBaptiste Daroussinand ending with either a double quote or the next end-of-line, whichever
40*98e903e7SBaptiste Daroussincomes first.  The declaration will cause a #ident directive to be written
41*98e903e7SBaptiste Daroussinnear the start of the output file.
42*98e903e7SBaptiste Daroussin
43*98e903e7SBaptiste Daroussin     If a parser has been compiled with debugging code, that code can be
44*98e903e7SBaptiste Daroussinenabled by setting an environment variable.  If the environment variable
45*98e903e7SBaptiste DaroussinYYDEBUG is set to 0, debugging output is suppressed.  If it is set to 1,
46*98e903e7SBaptiste Daroussindebugging output is written to standard output.
47