A nifty program that handles creating a Visitor class for a JavaCC Java syntax file. It takes the .jj file, manipulates it to include some extra calls, then you run JavaCC on the .jj file. Then you compile the resulting .java code, and WALA! you have a class that contains empty visit() methods which are called for each step of the parser (for example, every time any token is parsed, any time a curly brace is parsed, etc.)
More info is available at: http://www.cs.purdue.edu/homes/taokr/jtb/
--MasonZhwiti