JJForester NEWS

XT -- A Bundle of Program Transformation Tools
Version 0.7 and higher

Version 0.6

  • JJForester now supports VisitorCombinators. These are implementations of the visitor interface that can be used to compose new visitors from given ones. A complete explanation can be found in VisitorCombinationAndTraversalControl. The distribution now includes the "jjtraveler" package, which is a framework of generic visitor combinators. The visitor code generated by JJForester instantiates this framework.
  • The iterating accept methods accept_td and accept_bu are now deprecated. Use traversal combinators instead.
  • A method parseString is generated in addition to the parseFile method.
  • To allow more fine-grained configuration, new swithes have been added to the configuration script: "--with-aterm", "--with-pgen", "--with-sglr", etc. By default these are set to the value of the "--with-xt" switch, which was already present.
  • The properties file "jjforester.props" is now generated at build time instead of configuration time.
  • A package definition file has been added for use by autobundle.

Version 0.5

  • A subclass ToStringVisitor? of Visitor is now also generated. For every constructor C it offers a method toString_C that prints the textual ATerm representation of the AST, and which can be refined to do prettier printing.

Version 0.4

  • The generated parse and read methods now make use of the Java implementation of the ATerm Library. The old methods, which still use the ATerm parser generated with JavaCC?, are still available as deprecated methods.

Version 0.3

  • Sort classes are now generated in a subpackage "sort", and the constructor classes for each sort "S" are generated in a subpackage named "S". This prevents name clashes when constructor names coincide with sort names.
  • The parse methods for each sort are now generated in the class of that sort, instead of in a separate parse class for that sort.
  • The generated accept method for top-down traversal is now called "accept_td" instead of "accept", and additionally a non-iterating method called "accept" is generated.
  • The name clash between JJForester (the executable) and jjforester (the package) that turned up under Mac OS X (thanks to Jeroen Scheerder) has been fixed.