Over the last few months, I've been absorbed with rewriting the venerable FreeMarker template engine, which is really mostly my fault. It's also the reason that I got involved originally with JavaCC as a user and eventually rewriting it the old JavaCC to generate code using a template engine -- FreeMarker!
Thus, the most up-to-date versions of both tools have an interesting inter-dependency relationship. Not only is CongoCC built using itself. It is also built using latest version of FreeMarker, which, in turn, is built using the latest version of CongoCC!
Most of the work I've been doing on FreeMarker is a major cleanup/refactoring but the end user might not notice so much difference. In the last few days, I did introduce something that users would indeed notice, a newer terse syntax. Basically, as long as a directive starts a line (modulo whitespace) the opening/closing pointy (square) brackets are no longer necessary. So, instead of:
[#if x==y]
x is the same as y
[#else]
x is not the same as y
[/#if]
You can just write:
#if x == y
x is the same as y
#else
x is not the same as y
/#if
I just wrote a blog post summarizing the syntactical improvements as well as the newer (though it actually dates back to maybe 2007!) #var
and #set
directives that replace #assign
and #local
.
Anyway, if anybody has any comments or suggestions, I guess you can make them on this discussion forum. Or you can use the issues/discussions here. That, by the way, is the FreeMarker codebase is that is under my control, not to be confused with this one