Wiki Parser を動かす - Scheme VM を書く

Gauche で書いた Wiki Parser を自分の VM で動かす。
あらかじめ Gauche で書くことにより

  • コードのバグと VM のバグを明確に分けることが出来る
  • 出来る限り Gauche の機能を使ったコードなので VM を鍛えるにはちょうど良い(VMに合わせたせこいコードにならない)


read-line をサポートして wiki parser を動かそう。
もう少しだがんばれ。
=> list->string
=> make-string, string-set!
=> list->string がコンパイルできない
=> (if pred then else) の else が省略されている場合にコンパイルエラー。
=> これは undefined を返すべきなのか。
=> まだ動かない。let* の展開がうまくいっていない
=> list->string 動いた
=> read-line 動かない。do 構文サポートが必要。
=> read-line 動いた
=> wiki parse を動かそう
=> どうも挙動が不審
=> うげ。引数の評価の順序が意図するものと逆になってる!これは根深い。
=> コンパイラ/VM を書き換え。
=> テスト通らなくなること多数
=> 全部通るようになった
=> wiki parse 動かない。 cond の => がおかしいみたい。
=> 直した。Scheme版の VM では動いた。やった!
=> C++版の VM で動かない。そんな馬鹿な。
=> EOF のときに を返していなかった。アホか。

動いた!

中期課題

  • format のサポート
  • define をトップレベルに限る
  • quasiquote
  • マクロ

短期課題

  • get-env で query string
  • standard-input-port で POST データを読む。