各 define-macro は、MacroEnv 型の暗黙の引数である macro-env を受け取ります。このオブジェクトを使って、マクロが呼び出されるコンテキストに関してコンパイラをクエリすることができます。
現在有効なコンパイラ ディレクティブ |
マクロを呼び出すパッケージのマニフェスト。 |
マクロを呼び出すパッケージ内のメタデータ。 |
現在有効なコンパイラ ディレクティブ
マクロを呼び出すパッケージ内のメタデータ。
説明
例
{define-macro public {when-debuggable ?rest:tokens} {return {if macro-env.meta-data.debuggable? then {expand-template ?rest} else {expand-template} } } }
{when-debuggable {output "DEBUG: The value of x is ", x} }