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