マクロが動くようになった - Scheme VM を書く

伝統的なマクロが動くようになった。
マクロを評価するには、コンパイル時に手続きを評価できる必要があります。
つまりコンパイラVM(評価器)を保持している必要があるのです。


なので構造的に

となります。
何だか鶏と卵のどちらが先だみたいな話でややこしいです。
でもまあ何とか頑張って動くようになりました。


ところでシステムライブラリをプリコンパイルして C++ソースコードに埋め込んでいるんですが、そのライブラリ内で定義されているマクロが動かなくて戸惑いました。
良く考えれば、そのライブラリをコンパイルしているコンパイラと、処理系で動いているコンパイラはマクロ定義の情報を共有していないのでそりゃ当然ですね。


さてマクロを動かすに当たって「これはひどい」というコードを書いてしまったのでリファクタリングします。