Function: cps--make-condition-wrapper
cps--make-condition-wrapper is a byte-compiled function defined in
generator.el.gz.
Signature
(cps--make-condition-wrapper VAR NEXT-STATE HANDLERS)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/generator.el.gz
(defun cps--make-condition-wrapper (var next-state handlers)
;; Each handler is both one of the transformers with which we wrap
;; evaluated atomic forms and a state to which we jump when we
;; encounter the given error.
(let* ((error-symbol (cps--add-binding "condition-case-error"))
(lexical-error-symbol (cps--gensym "cps-lexical-error-"))
(processed-handlers
(cl-loop for (condition . body) in handlers
collect (cons condition
(cps--transform-1
(cps--replace-variable-references
var error-symbol
`(progn ,@body))
next-state)))))
(lambda (form)
`(condition-case
,lexical-error-symbol
,form
,@(cl-loop
for (condition . error-state) in processed-handlers
collect
`(,condition
(setf ,error-symbol
,lexical-error-symbol
,cps--state-symbol
,error-state)))))))