抽象構文木をどうしようかと


とりあえず Verilogシンタックスチェックできる程度、ということで
(意味解析してないから、たとえば入力ポートの信号と input宣言の信号が合ってなくても文句言わないくらいザルですし)
遠くを見ると気を失いそうになるのですが
わからないことを書き出して気持ちを楽にしながら進んでいくとします。
いや、ほんとわからないことだらけだなぁ。
でも Haskell Parsecとは仲良くなれてきたはず。


で、抽象構文木を作らなきゃ、ということで考えているのですが
ただ考えてもわからないと思うので、先人の知恵を拝借しようと


Icarus Verilogの実装をみたりしています。
http://sourceforge.net/projects/iverilog


あと、Ruby Hacking Guide (RHG)を読んだり、とか。
http://i.loveruby.net/ja/rhg/


それから「スクリプトエンジンプログラミング」の本を読んだり実装を見たり、とか。

スクリプトエンジン プログラミング

スクリプトエンジン プログラミング


まずはモジュールの構造を抽出したいと思っているのだけど
完全並列に実行するために必要な要素を、データ構造に仕込んでおきたいなぁ、とか考えたりすると
Icarus Verilogの実装が参考になるかな、と。
ツリー構造というかグラフ構造を意識しないといけないかなぁ、とか考えたり。


Haskellも Parsecじゃない部分(ふつうに Haskellな部分)と
仲良くなっていかないとなぁ。


ブログは頻繁には更新できていませんが、githubにはちまちまと更新しています。
もし気にしてくださってる方がいらっしゃいましたら
githubの方をウォッチしてみていただければ、と思います。
http://github.com/kei-os/vparsec/tree/master


あ、そうか、githubWikiつくったほうがいいな。