Generating parametrized g-bindings from an SVTV using gl::flex-bindings.
(svtv-flex-param-bindings svtv in-alist) → *
Function:
(defun svtv-flex-param-bindings (svtv in-alist) (declare (xargs :guard (svtv-p svtv))) (let ((__function__ 'svtv-flex-param-bindings)) (declare (ignorable __function__)) (b* (((when (atom in-alist)) nil) (case1 (car in-alist)) ((unless (and (true-listp case1) (or (eql (len case1) 2) (and (eql (len case1) 4) (eq (nth 2 case1) :arrange))))) (raise "Unsupported entry in svtv-flex-param-bindings: ~x0" case1)) ((list params auto-bindings ?arrange-keyword arrange) case1)) (cons (list params (svtv-flex-bindings svtv auto-bindings :arrange arrange)) (svtv-flex-param-bindings svtv (cdr in-alist))))))