JTB stores actual references to its children's types . Children of nodes will always be where you expect them. Tokens Special productions and classes are needed to store tokens in the parse tree. JTB automatically stores all tokens in the tree. No additional work needs to be done to store them.
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.