Next: Edebug Options, Previous: The Outside Context, Up: Edebug
edebugがLispマクロを呼び出す式を処置するとき、 それを正しく行うにはマクロに関する余分な情報を必要とします。 マクロ呼び出しのどの部分式が評価されるフォームであるかを 明確に判定する方法がないからです。 (マクロ本体で明示的に評価されるか、 結果の展開形が評価されるときか、あるいは、さらにあと)
したがって、edebugが出会う各マクロについて、
当該マクロの呼び出し形式を記述するedebug用仕様を定義する必要があります。
これには、def-edebug-spec
を使います。
マクロmacroの呼び出しのどの式が評価されるかを指定する。 単純なマクロでは、specificationは マクロ定義の仮引数リストに似ているが、 その指定はマクロ引数よりも汎用性がある。
引数macroはマクロ名だけでなく任意のシンボルでよい。
例題マクロfor
(see Argument Evaluation)の
edebug用仕様の等価な定義例2つを示します。
(def-edebug-spec for (symbolp "from" form "to" form "do" &rest form)) (def-edebug-spec for (symbolp ['from form] ['to form] ['do body]))
specificationに指定するものとその引数の処理方法は次表のとおりです。
t
0