diff options
Diffstat (limited to 'src/dom-transform.lisp')
-rw-r--r-- | src/dom-transform.lisp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/dom-transform.lisp b/src/dom-transform.lisp index 803a7f4..0afe608 100644 --- a/src/dom-transform.lisp +++ b/src/dom-transform.lisp @@ -32,8 +32,7 @@ (defun empty-queue (q) (not (or (car q) (cdr q)))) -(defun ensure-parent (parent nodes) - (loop :for node :in nodes :do (setf (parent node) parent))) + (defun expand-walk (top node clauses) (a:with-gensyms (new-children frontier top-var parent) @@ -54,13 +53,13 @@ (:replace (push `(,guard (let ((,node ,phrase-body)) - (setf (parent ,node) ,parent) - (push ,node ,new-children))) + ;(setf (parent ,node) ,parent) + (pushnew ,node ,new-children :test #'eq))) conditional-exprs)) (:splice (push `(,guard (let ((,node ,phrase-body)) - (ensure-parent ,parent ,node) + ;(ensure-parent ,parent ,node) (setf ,new-children (nconc (reverse ,node) ,new-children)))) conditional-exprs)))))))) |