Function: elisp-scope-rx-define

elisp-scope-rx-define is a byte-compiled function defined in elisp-scope.el.gz.

Signature

(elisp-scope-rx-define NAME REST)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/elisp-scope.el.gz
(defun elisp-scope-rx-define (name rest)
  (when-let* ((bare (elisp-scope--sym-bare name)))
    (elisp-scope--report 'rx-construct (symbol-with-pos-pos name) bare))
  (if (not (cdr rest))
      (elisp-scope-rx-1 (car rest))
    (let ((l elisp-scope-rx-alist)
          (args (car rest))
          (rx (cadr rest)))
      (dolist (arg args)
        (and (symbol-with-pos-p arg)
             (when-let* ((beg (symbol-with-pos-pos arg))
                         (bare (bare-symbol arg)))
               (if (memq bare '(&optional &rest _))
                   (elisp-scope--report 'ampersand beg bare)
                 (elisp-scope--report 'rx-construct beg bare beg)))))
      (dolist (arg args)
        (when-let* ((bare (bare-symbol arg))
                    (beg (elisp-scope--sym-pos arg)))
          (unless (memq bare '(&optional &rest))
            (setq l (elisp-scope--local-new bare beg l)))))
      (let ((elisp-scope-rx-alist l))
        (elisp-scope-rx-1 rx)))))