In judging this work, it is important to take into account its intended audience:
LR parsing has become a widely used method of syntax analysis; this is largely due to the availability of parser generators and compiler-compilers based on LR techniques. . . . [This text] is aimed primarily at users of LR parsers who believe that it is undesirable to use complex tools without understanding how they work (from the Preface).
This, then, is not a textbook; in an academic setting, it would only be useful as a reference for compiler writing projects. The reader should have a background of undergraduate courses in both formal languages and compiler design or the equivalent and intend to write an LR parser (probably for production purposes), possibly with the aid of a parser-writing tool such as Yacc.
Chapters 2–5 concentrate on LR theory. This book, like many recent publications in formal languages and compiler design, attempts to tie the two subjects closer together. Despite the statement in the preface that other books on LR parsing “are either superficial or are weighed down with tedious mathematical detail of a merely technical nature,” this book tends to get bogged down in mathematics in these chapters, more so than some of the other recent compiler textbooks. However, it is possible that the author was trying to find a level of mathematical detail that, while not too difficult, would also not be seen as talking down to his audience; remember that the reader should have already had a course in compilers.
The remaining chapters (6 through 10) concentrate on implementation and are much more readable. The level of detail in these chapters allows the reader to understand more fully how to write a parser for production purposes. The final chapter, on LR parser generators, gives a state-of-the-art view of this topic. The author makes some intelligent predictions on the future of LR parser generators at the end of this chapter.
The book is long enough to cover the subject in detail, yet short enough that it has a chance to gain a wide audience with the aid of its (hopefully) inexpensive price tag. This work is for the most part readable, with an adequate index and bibliography. Overall, it will make a good reference for compiler writers and academicians teaching in this area.