TODO リスト for 1.0.0beta
★…優先度高 ▽…優先度低
Known Bugs
仕様・性能
- インラインの型定義の最初のトークン(=定義される識別子)の直前のトークン(white token は除く)が、そのインラインの型定義の最初のトークンと同じ行に無い場合、警告する(foo = bar ; hoge { } を、foo = bar hoge { } と書き間違えを警告)★
- 異なるパーザの Token, Node が同じ型になるようにするオプション★
- Java1.5 対応
- エラーリカバリー:パーズ時にエラーが出た場合に、適当な位置からパーズを継続する機能
Token
を返す代わりに、そのトークンが存在するとき true
を返すメソッドを出力するラベリング。
- 曖昧性の警告の除去:曖昧性が無いことをユーザが宣言的に記述し、警告を減らす機能とか
- $weak $token 字句定義:他の終端記号がマッチする文字列にはマッチしない(大昔の仕様互換)
- プロダクションの右辺でtokenExpressionを記述すると、マッチする文字列を表現する終端記号列が指定されたとみなす機能。
例えば Java なら、<<IDENTIFIER_START IDENTIFIER_PART*>>
とか書けば、IDENTIFIER | "abstract" | "boolean" | ...
と書かれているとみなす。
- notavaccソースにjavadocコメントを書く機能
- 字句定義で、左再帰・右再帰を許す
- 状態遷移図の表示 for コンフリクトを除去したいユーザ
- システム予約の識別子(getChildNodes とか)を、改名する機能▽
- 優先順位と結合規則による式や dangling else の記述:abstract な非終端記号が指定されたときに、適切な非終端記号に読み替える? ¬<><∪∪→EBNF の変換が自動でできるほうが良い▽
仕様の複雑さとトレードオフ。無くてもそれほど困らない。
- LALR(1)で済むなら、拡張LRではなく単純なLRを使う▽
- LALR(1)で済まない場合、エラーにするオプション▽
- 複数の字句解析器を出力する▽
- 複数の名前空間。例えば JavaCC のような、途中で java のコードを書けるような文法では、java の文法部分を別の名前空間に置きたい▽
- import。例えば式を表す文法を別途定義して、色々な文法でそれを import して使いまわす▽
メッセージ
ドキュメント/サンプル
- コマンドライン
- チュートリアル▽
- C言語を書き直す▽