前回
gauche/macroutil.scm
前回の方法で移動したディレクトリのgaucheディレクトリから。macroutil.scmという目を引くファイルがあったのでのぞいてみた。xmac, xmac1というマクロが定義されていた。$ rlwrap gosh gosh> (gauche-version) "0.9.2" gosh> (use gauche.macroutil) gosh> (xmac (let1 a 1 (print a))) (let ((a 1)) (print a)) gosh> (xmac (xmac (let1 a 1 (print a)))) (unwrap-syntax (%macroexpand (let1 a 1 (print a))))見ての通り%macroexpandマクロの結果がunwrap-syntaxに渡されている。こんなマクロがあったなんて知らなかった。ドキュメントを調べてみたらundocumentedだった。
- Gauche ユーザリファレンス: 5.4 マクロユーティリティ
- Gauche ユーザリファレンス: 5.3 マクロの展開
- vallog: macroexpand %macroexpand unwrap-syntax
- vallog: Scheme マクロのデバッグ4種
0 件のコメント:
コメントを投稿