haskell
Verilogパーサで生成した抽象構文木のダンプ準備として 代数的データ型を出力するコードで感じをみてみました。 webで読むことのできる Real World Haskellベータ版の JSONデータを操作する章を参考にしました。 Chapter 5. Writing a library: working with…
Verilogファイルから、抽象構文木を生成できるようにしました。 処理できる構文はまだまだ限定的ですが。。 Haskell Parsecで直接扱うことのできない左再帰の構文を 右再帰に変形している部分があるのですが (expression構文のところ) ここをパースして右再…
とりあえず Verilogのシンタックスチェックできる程度、ということで (意味解析してないから、たとえば入力ポートの信号と input宣言の信号が合ってなくても文句言わないくらいザルですし) 遠くを見ると気を失いそうになるのですが わからないことを書き出…
Verilogパーサを書き進めていくと、Verilog構文の左再帰に遭遇します。 Haskell Parsecは再帰下降パーサということで、左再帰の構文をそのまま書くと stack overflowを起こしてうまく処理を続けられません。 うまいこと左再帰を除去(右再帰に置き換える)す…
今週にはいって風邪をひいたりして、あまり作業を進められていないのですが とはいえ、溜め込むと書くのが億劫になってしまうので、少しでも書いておこうと思います。 前回、とりあえず Vparsecという名前で書いています - kei-os2007 against the machine!!…
githubで開発を進めるのは初めてですが、習うより慣れろでいくことにします。 とりあえずリポジトリを作りました。 はてダにソースをちまちま貼っていくのも、やがて限界がくるだろうし。 http://github.com/kei-os/vparsec/tree/master なんか、こんなの置…
前回の実装では、Verilogソースファイルをいきなりパースしていて いわゆる字句解析フェーズが抜けています。 そのため、Verilogをパースする処理のなかで ちまちまと空白文字を読み飛ばす羽目になっていて、冗長なソースになっています>< 短い構文だと、…
とりあえず Parsecをちゃんと使えてるかどうかをチェックしたいので semantic valueの処理は全然作り込んでいなくて パースした文字列を表示する処理だけ書いています。 declarationを書いているのだけど、どんどん繋がっていってキリがないので 一旦 module…
あとで振り返れるよう、メモを残しておこう、っということで Haskell Parsecの資料をメモメモ。 ここで Parsecのドキュメントやソースコードがダウンロードできる。 http://legacy.cs.uu.nl/daan/parsec.html Parsecの使い方を学習できる。 http://legacy.cs…
GHCを 6.10.1 にアップデートしたのだけど ghciを使ってて どうも viモードで使えなくなってるなぁ、と思っていて調べてみると このバージョンで、readlineから editlineに変わっているらしいことがわかった。 http://madscientist.jp/~ikegami/diary/200811…
今年の 3月頃に、yacc/lexで Verilogパーサを書き始めていたのだけど... Verilogパーサ - kei-os2007 against the machine!! 書きかけのコードを入れていた PowerBook G4を失ってしまい、それっきりになっていた>< 大敗 - kei-os2007 against the machine!…
ここのところ、ふつける(ふつうのHaskellプログラミング)を読んだりしながら Haskellをちまちまと勉強しているのだけど、ようやく体に入ってきた感じがする。 昨日の「どう書く?org」のお題を解いてみたら、同様の回答がすでにあったのだけど、メモのため…