JavaCC, the Java Compiler Compiler
, has been relicensed under the BSD license
from the previous (Sun) license. JavaCC generates parsers in Java, obviously enough, and can generate code to execute on discovery of a particular syntax, or can present the parsed content as a tree.
The current release is 4.0; presumably, another release with the new license will be available soon.
I will start this thread off by noting that I have used JavaCC on 3 separate projects, 2 professional and 1 academic. It is a great tool, and to see it move to the BSD license is a great stride in the evolution of the product. Is anyone aware of other projects under the java.net umbrella doing the same?
Seeing more error documentation might be another wonderful stride...
For projects that are appropriate for JavaCC - there is nothing more useful. However I wonder if the TSS community has ever used the .NET JavaCC equivalent MinosseCC, how it compares, how the challenges of having the Sun license might have affected decisions, and how the converse Microsoft commitment may have affected choices made? In addition - if any challenges were solved using the IKVM.NET tool?
Thanks TSS and JavaCC!
I've used JavaCC on 3 different occasions and it rocks. About the only thing missing is an IDE like ANTLR. Currently I'm using it for my CLIPS parser. The performance of the parser generated by JavaCC is wicked fast also.
Peter, have you tried the Eclipse plugin? I've used it a bit and it seems pretty nice...
I tried it briefly, but I'm so used to JavaCC that I didn't want to switch. It would be another learning curve. The JBossRules guys kept telling me how nice it was, so I tried it and then decided to keep using javacc :)
AntLR is nice, and is does a great job. I'm just too lazy to learn a different tool.
i think that it miss multiple language support(generate parsers in multiple langs)as ANTLR does
actually i didn't look at it yet but the first requirment id to solidifyb the intermediate model and expose it to some macro lang like freemarker
As you say, there would be some work to be done before JavaCC could emit other languages. Take a look at LexGen.java and other such files and you'll see how embedded the presupposition that we're emitting Java code is.
But I wonder how hard it would be to write a utility to translate those generated Java files to other languages? Might be doable... at least to some languages, like C# and maybe Ruby... and of course you could use JavaCC to do it!