¬<><∪∪ Version 0.75

¬<><∪∪は次の特徴を持ったコンパイラ・コンパイラです。

具象構文木は、非終端記号のインスタンスをノードとし、終端記号のインスタンスを葉とする木だと考えることができます。¬<><∪∪における抽象構文木とは、具象構文木から一部のノードを取り除いたものです。取り除かれたノードの子供は、取り除かれたノードの親のノードの子供になります。¬<><∪∪では、ノードを取り除くかどうかは、インスタンスごとにではなく、非終端記号ごとに選択されます。¬<><∪∪では、BNFのプロダクション LHS ::= RHS に相当する表記は LHS { RHS }LHS = RHS; の2種類があり、後者はノードを構文木から取り除くことを意味します(上の例では、expressiontermexpression = Addition | Subtraction | term ; のように定義されていることを想定しています)。後者の等号を用いた表記は、直感的には、左辺の識別子を右辺の式で置き換えるシンタックスシュガーに近いものです(ただし、自己埋め込みが可能です)。抽象構文木のノードは、そのノードをインスタンスとする非終端記号と同名のインターフェイスのオブジェクトで表現され、インターフェイス間に継承関係を設定することができます。ノードの特定の子を、上の operand1 のように、ラベル付けし、インスタンスメソッドによって得ることができます。その戻り値は、ラベル付けされる可能性のあるノードの共通の親の型、あるいは、複数をラベル付けする可能性がある場合 java.util.List になります(例えば label:expression ( "," label:expression )* )。

Contents

docs/
ドキュメント
bin/
起動スクリプト
lib/
プログラムとリソース
examples/
サンプル