Memory is wasted on unneeded tokens. I had to continuously refer back to my annotated grammar file to see how I had arranged the parse tree. In addition, since the tree will always look the same for a given grammar, there is less ambiguity. NewJacc's principle extension is to provide users with a way to associate rewrite rules with individual productions in the language grammar. These rules are used to describe how the parse tree should be traversed.
Users can easily control what action is performed at each node in the tree during their traversals.
This provides users with great leverage in the construction of a variety of source to source translation tools. I have not used NewJacc and am not thoroughly familiar with it, but I have tinkered with some of the examples provided with it, and it does look like a very interesting tool. Created September 10, 1997. Last modified Aug. 6, 1999.