9781565920002 & yacc by John R. Levine, Tony Mason, and Doug Brown Following are the changes made in the 9/99 reprint: (xix) 3rd paragraph "Appendix C, Berkeley Yacc, ...widely used free version of 9781565920002 ..." "9781565920002" now reads "yacc" {23} Example 1-9 Removed the lines "int index = 1;" Also removed the blank line after the third removed line. {24} Example 1-10, 4th line #* { return COMMENT; } "#*" now reads: "#.*" {42} In Ex. 2-6; replaced [(-file| -f) filename] with (-file| -f) filename (46) The 6th paragraph read: "Similarly, this next expression matches the FIRST but not the SECOND: /* comment */ int counter;" It was the wrong way around. It matches the SECOND, but not the FIRST {83} Line 8; replaced action { execute | menu | quite | ignore } with action { execute | menu | quit | ignore } [] {93} Example 4-8, 6th line read: yyval.string = yytext; The strdup() is missing. The line now reads: yyval.string = strdup(yytext); {117} Line 3; replaced if(c != '\"') with if(c != '\'') (120) example 5.5, removed stray " at end of caption {131} The code near the bottom of the page read: column '=' scalar_exp | column '=' NULLX ; It now reads: column COMPARISON scalar_exp | column COMPARISON NULLX ; (147) On line -2; replaced "enlosed" with "enclosed" {156} Line 8, replaced POSIX Lexxtags query replace with POSIX Lex (157) Top header, replaced SpeciAEcations with Specifications (162) On line 13; replaced "correct start wtates everywhere" with "correct start states everywhere" {167} Line -8, replaced Matches with . Matches note the dot (.) (174) Line 1, replaced "#deAEne" with "#define" (194) The heading "Porting Generated C Lexers" now reads: "Porting Generated C Parsers" (199) In the middle of the page, the following reference was incorrect: (See "Actions Within Rules" for details.) It now reads: (See Embedded Actions, page 183 for details.) (203) The end of second paragraph is, See "Precedence." Based on the convention used in the book, this now reads: See "Precedence, Associativity, and Operator Declarations." (215) On line -13, replaced "Line Numbers" and "yylineno" with "Line Numbers and yylineno" {224} The code in the middle of the page read: start: Z | b Z it now reads: start: a Z | b Z (227) In the second to last paragraph the last sentence read: ...so x2 which uses z2 is part of shift conflict and x3 is not. The z2 in the above sentence now reads z1 as follows: ...so x2 which uses z1 is part of shift conflict and x3 is not. (240) On line 5, replaced "boys | girls" with "girls | boys" (249) Mid-page, replaced "error can be followed action code." with "error can be followed with action code." (252) Line -5, replaced must be preceeded by a semicolon or an open brace with must be preceeded by a semicolon or a close brace (278) Line 12; replaced bold-faced "and" with normal-faced "and" (280) On line -14, replaced "F9781565920002 lets you write multiple statments" with "F9781565920002 lets you write multiple statements" (281) -I description, replaced on reading the input rather than with on reading each input line rather than {315} Changed '=' to COMPARISON (321) Added page numbers 294 and 295 to the list of line numbers under COMPARISON {327} After the SQLCODE line, added: SQLERROR TOK(SQLERROR) Some page breaks were affected, and those pages were reprinted as well.