parser generator書いてみた(2)

一昨日書いたparser generatorだけど,設計上の問題があることがわかってたのと,Ruby Library Report 【第 6 回】 正規表現と構文解析を見つけたので何か書く.

  1. 読みにくい
  2. 書きやすいのだが読みにくい感は否めない.tdp4rのように演算子を使う書き方を検討した方がいいかもしれない.

    • Hashリテラルで規則を書いて,後ろのブロックは後で追加するほうが見やすいかなぁ.

  3. トークン名と生成規則名の名前空間が同じ

  4. 同じ名前付けないと思うし,あんまり問題なさそうに思うけど,そう思ってるのは俺だけかもしれない.

    • rule(sym)とかtoken(sym)とかするとちょっと長くなる -> いいじゃないか!
    • さらに演算子を定義すれば(1)と同時に解決できるけどまるでtdp4rだなぁ
    • 現状だといい加減に書けるというメリット&デメリット

  5. lexerに読む対象を文字列で渡さなければならない

  6. strscanを使っているため.複雑な正規表現を使わなければ予め全て読み込む必要はないと思うんだけど,これはどのくらい問題になるんだろう.