先日(id:ABA:20030916#p2)JavaCCとの違いが分かるといいなーとか勝手な要望を言っていたら、違いに関する分かりやすいドキュメントを書いていただいた。これを読めば、コンパイラコンパイラの違いが分かる男になれるぞ。
JavaCC(というかJJTree)が外部プログラムとの連携に主眼を置いているのに対して、¬<><∪∪はその部分をばさっと省いて、その代わりに文法のハンドリングを強化してあるということだ。
¬<><∪∪がカバーしている、BNF(EBNF)ってのはどんなものかねという疑問には、以下の文章がいいだろう。
あとBulletNotMLの利点、と問題点。
ネストの浅さっていうのは可読性や書きやすさに地味に効く。