Previous: Backtracking, Up: Instrumenting Macro Calls   [Contents][Index]


17.2.15.3 »ÅÍͤÎÎã

°Ê²¼¤ÎÎã¤ò»²¹Í¤Ë¤¹¤ë¤ÈedebugÍÑ»ÅÍͤòÍý²ò¤·¤ä¤¹¤¤¤Ç¤·¤ç¤¦¡£

¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àlet¤Ë¤Ï«Çû¤ÈËÜÂΤÎʤӤ¬¤¢¤ê¤Þ¤¹¡£ ³ÆÂ«Çû¤Ï¡¢¥·¥ó¥Ü¥ë¡¢¤¢¤ë¤¤¤Ï¡¢¥·¥ó¥Ü¥ë¤È¾Êά²Äǽ¤Ê¼°¤«¤éÀ®¤ëÉôʬ¥ê¥¹¥È¤Ç¤¹¡£ °Ê²¼¤ÎedebugÍÑ»ÅÍͤǤϡ¢Éôʬ¥ê¥¹¥È¤ÎÆâ¦¤Ë¤¢¤ëgate¤Ç¡¢ Éôʬ¥ê¥¹¥È¤ò°ìÅ٤ߤĤ±¤ë¤È¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤ò¶Ø»ß¤·¤Æ¤¤¤ë¤³¤È¤Ë Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

(def-edebug-spec let
  ((&rest
    &or symbolp (gate symbolp &optional form))
   body))

edebug¤Ï¡¢defun¤Èdefmacro¡¢ ¤ª¤è¤Ó¡¢Âбþ¤¹¤ë°ú¿ô¥ê¥¹¥È¤È»ÅÍÍinteractive¤ËÂФ·¤Æ¤Ï¡¢ °Ê²¼¤ÎedebugÍÑ»ÅÍͤò»È¤¤¤Þ¤¹¡£ ¼°¤Î°ú¿ô¤Ï¼ÂºÝ¤Ë¤Ï´Ø¿ôËÜÂΤγ°Â¦¤Çɾ²Á¤µ¤ì¤ë¤Î¤Ç¡¢ ÂÐÏÃÀë¸À¥Õ¥©¡¼¥à¤òÆÃḚ̂·¤¤¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

(def-edebug-spec defmacro defun) ; »ÅÍÍdefun¤Î´ÖÀÜ»²¾È
(def-edebug-spec defun 
  (&define name lambda-list 
           [&optional stringp]   ; ¤¢¤ì¤Ð¡¢ÀâÌÀʸ»úÎó¤Ë°ìÃפ¹¤ë
           [&optional ("interactive" interactive)]
           def-body))

(def-edebug-spec lambda-list
  (([&rest arg]
    [&optional ["&optional" arg &rest arg]]
    &optional ["&rest" arg]
    )))

(def-edebug-spec interactive
  (&optional &or stringp def-form))    ; def-form¤ò»²¾È

°Ê²¼¤Î¥Ð¥Ã¥¯¥¯¥©¡¼¥È¤ËÂФ¹¤ë»ÅÍͤϡ¢ ¥É¥Ã¥ÈÂХꥹ¥È¤Î°ìÃפλÅÊý¤ÈºÆµ¢¤ò½ª¤é¤»¤ënil¤Î»È¤¤Êý¤ò¼¨¤·¤Þ¤¹¡£ ¤Þ¤¿¡¢¥Ù¥¯¥È¥ë¤ÎÍ×ÁǤΰìÃפλÅÊý¤â¼¨¤·¤Þ¤¹¡£ ¡Êedebug¤¬¼ÂºÝ¤ËÄêµÁ¤·¤Æ¤¤¤ë»ÅÍͤǤϡ¢ ¼ºÇԤβÄǽÀ­¤¬¤¢¤ëÈó¾ï¤Ë¿¼¤¤ºÆµ¢¤ò¤â¤¿¤é¤¹¤¿¤á¥É¥Ã¥ÈÂХꥹ¥È¤ò°·¤ï¤Ê¤¤¡£¡Ë

(def-edebug-spec ` (backquote-form))   ; ¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤ËÊÌ̾¤òÉÕ¤±¤ë

(def-edebug-spec backquote-form
  (&or ([&or "," ",@"] &or ("quote" backquote-form) form)
       (backquote-form . [&or nil backquote-form])
       (vector &rest backquote-form)
       sexp))