git.fiddlerwoaroof.com
Raw Blame History
(defpackage :paredit
  (:use :cl)
  (:export ))
(in-package :paredit)

(defclass cursor ()
  ((%pos :initarg :pos :reader pos)))

(defun make-cursor (&rest path)
  (make-instance 'cursor
                 :pos (copy-seq path)))

(defun get-exp-at-cursor (cursor exp)
  (reduce (lambda (acc next-pos)
            (elt acc next-pos))
          (pos cursor)
          :initial-value exp))

(defun barf-backward (cursor exp)
  (let* ((parent-exp-cursor (apply 'make-cursor
                                   (butlast (pos cursor))))
         (parent-exp (get-exp-at-cursor parent-exp-cursor exp))
         (grandparent-exp-cursor (apply 'make-cursor
                                        (butlast (pos parent-exp-cursor)))))
    



    ))