Major changes to Polyglot for Version 2.6

See the file CHANGES for more information about the changes made to Polyglot for Version 2.6.

Support for Java 7 language features added, through the JL7 extension (polyglot.ext.jl7), which in turn builds on the JL5 extension.

The source code of Polyglot has itself been updated to take advantage of the features introduced in Java 7. This may break older extensions that assume non-generic interfaces.

New language dispatcher design pattern. The Delegate pattern used in previous versions of Polyglot is still supported, but is now deprecated in favor of a new pattern of language dispatchers. Previously each node had its own delegate object to perform dispatching to pass-specific operations; in the new design, all nodes in a given language share the same language dispatcher object. This object is responsible for dispatching operations to the appropriate extension object for the AST node. The new design pattern adds expressive power, eliminates the need for DelegateFactories, and improves performance by reducing the number of object creations needed.