Wiki Parser を動かすためのものを列挙する - Scheme VM を書く

GaucheWiki の Parser を書いたので、これを自前の Scheme 処理系で動かすために足りないものを列挙する。
さらにそれぞれについて実装方針を決める。

簡単に作れるもの

  • eof-object?
  • append
  • reverse

rxmatch-after/rxmatch-before

(match 'before)

もサポートする。

rxmatch-substring

match オブジェクトの手続き呼出し。

case

case のことをすっかり忘れていたよ。
おおざっぱに以下のようなコード変換でいいかな。

(case a
  ((b) c)
  (else d))

=>
(let (((gensym) a))
  (cond ((eq? tmp b) c)
        (else d)))