I just noticed that Kirk Pepperdine had posted a kind note about my JavaCC book. He talks about having to do write new grammars rarely enough that it's helpful to have a book handy to fire up the neurons again when the task comes up, and I think that's probably a pretty common case. Sounds like the book has been useful to him there.
One thing he says is that Generating Parsers with JavaCC "...has been an invaluable source of information when I've been trying to sort out some of the more obscure error messages that I'm prone to generate." Yup, as I wrote all the grammars for the book I captured lots of error messages as they arose, looked them up in the JavaCC source code, and then added an explanation for each one. I also added those error messages to the index so that you can flip to the back of the book and look up "Multiply defined lexical tokens" or whatever.
Kirk's blog is pretty well known, I think, but I hadn't gone there for a while so it was interesting to catch up with some of his recent posts. I especially enjoyed the one on concurrent mark and sweep garbage collection. I notice in that post's comments that Greg Sporar points over to GCHisto, which has a handrolled parser for GC log files. I wonder if a JavaCC-generated parser would be much faster? Anyhow, good stuff!