;;; Create a function which parses combination args according to WHAT
;;; and LAMBDA-LIST, where WHAT is either a function name or a list
;;; Create a function which parses combination args according to WHAT
;;; and LAMBDA-LIST, where WHAT is either a function name or a list
;;; to parse the arguments to the combination as in DEFTRANSFORM. If
;;; the argument syntax is invalid or there are non-constant keys,
;;; then we simply return NIL.
;;; to parse the arguments to the combination as in DEFTRANSFORM. If
;;; the argument syntax is invalid or there are non-constant keys,
;;; then we simply return NIL.
(block-next ,block-var)))
((eq ,block-var ,n-tail) ,result)
,@body))))
(block-next ,block-var)))
((eq ,block-var ,n-tail) ,result)
,@body))))
(defmacro do-blocks-backwards ((block-var component &optional ends result) &body body)
(unless (member ends '(nil :head :tail :both))
(error "losing ENDS value: ~S" ends))
(defmacro do-blocks-backwards ((block-var component &optional ends result) &body body)
(unless (member ends '(nil :head :tail :both))
(error "losing ENDS value: ~S" ends))
-;;; Iterate over the nodes in Block, binding Node-Var to the each node
-;;; and Cont-Var to the node's Cont. The only keyword option is
-;;; Restart-P, which causes iteration to be restarted when a node is
+;;; Iterate over the nodes in BLOCK, binding NODE-VAR to the each node
+;;; and CONT-VAR to the node's CONT. The only keyword option is
+;;; RESTART-P, which causes iteration to be restarted when a node is
;;; have to worry about our termination condition being changed when
;;; new code is added during the iteration. In the backward case, we
;;; do NODE-PREV before evaluating the body so that we can keep going
;;; have to worry about our termination condition being changed when
;;; new code is added during the iteration. In the backward case, we
;;; do NODE-PREV before evaluating the body so that we can keep going
;; If true, a function that gets called with the node that the event
;; happened to.
(action nil :type (or function null)))
;; If true, a function that gets called with the node that the event
;; happened to.
(action nil :type (or function null)))