Function: majutsu-template--substitute-var

majutsu-template--substitute-var is a natively compiled function defined in majutsu-template.el.

Signature

(majutsu-template--substitute-var NODE NAME REPLACEMENT)

Documentation

Replace lexical variable NAME in NODE with REPLACEMENT node.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-template.el
(defun majutsu-template--substitute-var (node name replacement)
  "Replace lexical variable NAME in NODE with REPLACEMENT node."
  (pcase (majutsu-template-node-kind node)
    (:var
     (if (eq (majutsu-template-node-value node) name)
         replacement
       node))
    (:lambda
     (if (memq name (majutsu-template--lambda-params node))
         node
       (majutsu-template--lambda-node
        (majutsu-template--lambda-params node)
        (majutsu-template--substitute-var
         (majutsu-template--lambda-body node)
         name replacement)
        (majutsu-template-node-props node))))
    (:call
     (majutsu-template-node-create
      :kind :call
      :type (majutsu-template-node-type node)
      :value (majutsu-template-node-value node)
      :args (mapcar (lambda (arg)
                      (majutsu-template--substitute-var arg name replacement))
                    (majutsu-template-node-args node))
      :props (majutsu-template-node-props node)))
    (_ node)))