syntax-rulesをexplicit renamingに変換する

桜がそろそろ散り始めてる。桜が散った後で猛烈に後悔するというサイクルをここ数年繰り返している気がする。今年は後悔したくないので週末にどこかへふらっと桜を見に行こうと思う。


さて、しばらく前からsyntax-rulesをexplicit-renamingに変換するマクロを作っていて、一応今日一区切りついた形だ。

https://github.com/wasabiz/picrin/pull/88/files

explicit-renaming以外はR7RSの範囲で実装したつもり。
解決すべき課題はマッチングと健全性の確保。マッチングはルールを再帰的に解析してコードの断片を繋ぎ合わせるということをやっていて、まあよくCLでやりそうな雰囲気がただよってる。健全性についてはerのシステムをそのまま流用させてもらった。
erを使ったのはpicrinがサポートしてたからという程度の理由だったが、もともとこの二つは相性が良い気がする。