ご意見・ご要望はこちらまで。
Latest Stable
Ver.1.0.3 and source
Latest Experimental
Ver.1.9.1 and source
- 試験的なリリースです。テストは十分ではありません。また、今後のバージョンで仕様は互換性無く変更されます。
- 任意の曖昧な文法(無限個の解析木を作るものを除く)を扱うことができます。
2006/May/23
Ver.1.9.1 and source
2006/May/19
Ver.1.9.0 and source
2006/Apr/13
Ver.1.0.3 and source
- ドキュメントに Tutorial を追加しました。
- Handbook で IDENTIFIER と予約語の説明が誤っていたため直しました。
それ以前
過去の What's New
¬<><∪∪ (notavaCC) は、次の特徴を持ったパーサ・ジェネレータ(コンパイラ・コンパイラ)です。
- 拡張BNFベースの記述法により、任意の曖昧でない文脈自由文法(context free grammar; CFG)を扱えます(LALR(∞)に相当する能力を持っています)。
- Java ソースを出力します
- Java で書かれており、ソースが公開されています
- 差集合をサポートするように拡張された(離散数学で言うところの)正規表現によって語彙を定義できます。例えば、C言語のコメントを
"/*" ( ANY_CHARACTER* - ( ANY_CHARACTER* "*/" ANY_CHARACTER* ) ) "*/"
のように記述できます。
- オブジェクト指向に基づいた抽象構文木(abstract syntax tree; AST)を出力するパーサを生成します。¬<><∪∪のコード
Addition -> Expression { operand1:expression "+" operand2:term }
は、BNFのAddition ::= expression "+" term を意味すると同時に、パースの結果を
interface Addition extends Expression { Expression operand1(); Expression operand2(); }
のような型のオブジェクトで表現することを表します。operand1 やoperand2 は、expression や term に対応する式オブジェクトを返します。1 * (2 + 3) は次のように表現されます。

|