Errata to "Parsing Techniques" by Dick Grune and Ceriel J.H. Jacobs,
Ellis Horwoord Ltd, c 1990.
================================================================
Last correction 20051026.
pg 15 + 12: Chapters 5 through 9 => Chapters 6 through 9
pg 30 -6: 1. S -> abc | aSQ => 1. S -> aSQ
pg 46 - 3: Affix grammars are largely replaced =>
Affix grammars have largely been replaced
pg 47 - 1: a sentence in the grammar. => a sentence in the language.
pg 58 - 15: Inherited => Derived
pg 86 - 4: S -> LSD | D => S -> LSD | epsilon
pg 95 + 18: of of => of
pg 102, fig. 4.15, entries [1, 4] and [2, 3]:
Number, N1 => Number, Real, N1
pg 103 + 9: s[k+1, n] => s[k+1, n-k]
pg 108 - 16: further levels => further recursion
pg 118, fig. 5.19: an arrow from the unmarked node on the left to that same
node, marked SIGMA
pg 147, fig 7.6: reduced from e2 => reduced from e1
pg 152, middle: item N -> .P ...@p => item N -> .P ...@p+1
pg 161 + 11: a -> .C@1 => A -> .C@1
pg 169 + 8: FIRST(A) => FIRST(alpha)
pg 169 middle: are all empty Then, we => are all empty. Then, we
pg 173 - 4: are added to FOLLOW(Facts) => are added to FOLLOW(Fact)
which makes FOLLOW(Fact) equal to { ! ? } rather than ! in the FOLLOW
tables on pgs 173 and 174.
pg 180 + 4: to implement an LL(1) parser. =>
to implement a strong LL(1) parser.
pg 182 + 5: that a is a member => that w is a member
pg 185 + 3: which identifies production => which identifies productions
pg 190 + 7: at least one terminal and =>
at least one terminal or non-terminal and
pg 196 + 5: S[s] -> E' => S[s] -> # E' #
pg 196 middle: F -> ( E ) => F -> ( E' )
LAST{ALL}(E') = {T',T,F,n,)} => LAST{ALL}(E') = {E,T',T,F,n,)}
LAST{ALL}(E) = {T,F,n,)} => LAST{ALL}(E) = {T',T,F,n,)}
LAST{ALL}(T') = {F,n,)} => LAST{ALL}(T') = {T,F,n,)}
pg 199, fig. 9.16: all <.s should be _<.s
pg 205 + 7: no method => no known method
pg 218 + 11: possible parse trees => possible partial parse trees
pg 226 + 6: (5) => (3)
pg 228 + 11: LL-regular => LR-regular
================================================================