This release fixes a number of important code errors and a number of little typos. The two-stage parsing discussion now conforms to current best practices. The Cymbol.g4 grammar now allows only identifiers as array names. The JSON grammar did not allow floating-point numbers whose fractional part started with a 0. A code example referenced listeners/XML.stg, which was missing. There were some stale URL references. Some of the images early in the book had gray boxes that were shifted out of place. In the section on tree listeners, the code sample for PropertyFileBaseVisitor was wrong. I added a note to explicitly say that combined grammars can import other combined grammars.
Check out the book’s errata page for more details.
Indexing and copy edit are complete. Now it’s on to layout and then the printer.
The book is now final draft complete and heading to production. I have gone through all of the technical reviews and made widespread changes. In response to concerns about the speed of the initial material, I have tried to add more details and also split out the starter project into its own chapter. This leaves the big picture chapter smaller and easier to chew on.
I went through the entire book, verifying that the examples compile, perform correctly, and match the output in the book.
There were lots and lots of little things in the errata that got fixed in this version.
I have added a number of improvements to the discussion of wildcards and nongreedy loops.
ANTLR v4.0b3 coincides with this beta 3 book.
This release includes the whopping reference chapter and have decided not to include the how to apply chapter. Such a chapter fits better in a book such as the language implementation patterns book I did last time. Useful information, but not necessary for the reference guide. The reference chapter moved to be the last chapter as well.
I moved the fine print section of the predicates chapter into the reference section where it belongs. I also added a section to the API chapter on squeezing the most speed possible from an ANTLR parser.
I added a new example to the API chapter for the unbuffered streams and also added a quick section on “Altering ANTLR’s Code Generation.”
I updated the version number of ANTLR to 4.0b2 coincide with the latest beta available for the tool. I documented the new -depend command line option in the reference chapter.
First beta release.