TODO リスト for
★…優先度高 ▽…優先度低
Known Bugs
仕様変更・性能向上
- 優先順位と結合規則による式や dangling else の記述:abstract な非終端記号が指定されたときに、適切な非終端記号に読み替える?
¬<><∪∪→EBNF の変換が自動でできるほうが良い
- エラーリカバリー★
- Java1.5 対応★
- Java1.5時、getParentNode の戻り値は、戻り値になりうる型の共通の親? ノード書き換えに注意
- 曖昧性の除去:曖昧性が無いことをユーザが宣言的に記述し、警告を減らす機能★
- デバッグ支援:コンパイルエラー時に、構築途中のツリーを表示★
- 状態遷移図の表示 for コンフリクトを除去したいユーザ
- 字句定義で、左再帰・右再帰を許す
- $weak $token 字句定義:他の終端記号がマッチする文字列にはマッチしない(大昔の仕様互換)
- 字句定義で、どの文字列にもマッチしない場合、警告する
- インラインの型定義で、最初のトークンが含まれる行の、そのトークン以前のトークンが、white tokenで無かった場合警告する(foo = bar ; hoge { } を、foo = bar hoge { } と書き間違えを警告)
- エイリアスで、特定の正規表現にマッチする文字列にマッチする終端記号を | でつないだものにする機能
- DFAGenerator で、状態をキャッシュするように
- LALR(1)で済むなら、拡張LRではなく単純なLRを使う
- LALR(1)で済まない場合、エラーにするオプション
- notavaccソースにjavadocコメントを書く機能
- システム予約の識別子(getChildNodes とか)を、改名する機能
- Java Generics のために、トークン ">>" と2つのトークン">" ">" とを同一視する機能:パースエラーをフックする機能?▽▽
- 複数の字句解析器を出力する▽
- 複数の名前空間。例えば JavaCC のような、途中で java のコードを書けるような文法では、java の文法部分を別の名前空間に置きたい▽
- import。例えば式を表す文法を別途定義して、色々な文法でそれを import して使いまわす▽
- Javaコード埋め込み。基底クラスにメソッドを追加したいとか▽
¬<><∪∪で行うよりは、アスペクト指向のような任意のJavaソースを対象としたほうが汎用的で良い
- 異なるパーザの Token, Node が同じ型になるようにするオプション▽
上のフレームワークで処理できる
Default.LexicalAnalyzer
は java.util.Iterator
を implements?
メッセージ
ドキュメント/サンプル