Update of /project/mcclim/cvsroot/mcclim/Drei
In directory clnet:/tmp/cvs-serv22161/Drei
Modified Files:
lisp-syntax-swine.lisp lisp-syntax.lisp
Log Message:
Never, ever, try to do lazy parsing in Lisp syntax, the potential for disaster is just too great.
Changed all calls to update-parse to make sure the entire parse tree
is up to date. Later specializations can be considered optimisation.
--- /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax-swine.lisp 2008/01/10 11:17:00 1.13
+++ /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax-swine.lisp 2008/01/11 07:52:03 1.14
@@ -566,7 +566,7 @@
provided are, in order: the form, the forms operator, the indices
to the operand at `offset', or the indices to an operand entered
at that position if none is there, and the operands in the form."
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let* ((form
;; Find a form with a valid (fboundp) operator.
(let ((immediate-form
--- /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp 2008/01/10 11:17:00 1.63
+++ /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp 2008/01/11 07:52:03 1.64
@@ -1161,7 +1161,7 @@
package can be found at all, or the otherwise found packages are
invalid, return the value of `*package*'."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let* ((designator (rest (find offset (package-list syntax)
:key #'first
:test #'>=))))
@@ -1183,7 +1183,7 @@
form can be found, return the package specified in the attribute
list. If no such package is specified, return \"CLIM-USER\"."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(flet ((normalise (designator)
(typecase designator
(symbol
@@ -1421,7 +1421,7 @@
"Return the list form that `mark-or-offset' is inside, or NIL
if no such form exists."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let ((form-around (form-around syntax offset)))
(when form-around
(if (and (form-list-p form-around)
@@ -1559,7 +1559,7 @@
(defun in-type-p (syntax mark-or-offset type)
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(with-slots (stack-top) syntax
(if (or (null (start-offset stack-top))
(> offset (end-offset stack-top))
@@ -1626,7 +1626,7 @@
(:method ((syntax lisp-syntax) (form form) (offset integer))
nil)
(:method :before ((syntax lisp-syntax) (form form) (offset integer))
- (update-parse syntax 0 offset)))
+ (update-parse syntax)))
(defgeneric at-end-of-form-p (syntax form offset)
(:documentation "Return true if `offset' is at the end of the
@@ -1634,7 +1634,7 @@
(:method ((syntax lisp-syntax) (form form) (offset integer))
nil)
(:method :before ((syntax lisp-syntax) (form form) (offset integer))
- (update-parse syntax 0 offset)))
+ (update-parse syntax)))
(defmethod at-beginning-of-form-p ((syntax lisp-syntax) (form list-form)
(offset integer))
@@ -1666,7 +1666,7 @@
is defined by what type of form is at `mark-or-offset', but for a
list form, it would be right after the opening parenthesis."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let ((form-around (form-around syntax offset)))
(when form-around
(labels ((recurse (form)
@@ -1681,7 +1681,7 @@
is defined by what type of form is at `mark-or-offset', but for a
list form, it would be right before the closing parenthesis."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let ((form-around (form-around syntax offset)))
(when form-around
(labels ((recurse (form)
@@ -1696,7 +1696,7 @@
defined as the earliest point the contents could be entered, for
example right after the opening parenthesis for a list."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let ((form-around (form-around syntax offset)))
(when (form-list-p form-around)
(at-beginning-of-form-p syntax form-around offset)))))
@@ -1707,7 +1707,7 @@
latest point the contents could be entered, for example right
before the closing parenthesis for a list."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let ((form-around (form-around syntax offset)))
(when (form-list-p form-around)
(at-end-of-form-p syntax (form-around syntax offset) offset)))))
@@ -1717,7 +1717,7 @@
beginning of a string form, false otherwise. \"Beginning\" is
right after the opening double-quote."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let ((form-around (form-around syntax offset)))
(when (form-string-p form-around)
(at-beginning-of-form-p syntax form-around offset)))))
@@ -1727,7 +1727,7 @@
a list-like form, false otherwise. \"End\" is right before the
ending double-quote."
(as-offsets ((offset mark-or-offset))
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(let ((form-around (form-around syntax offset)))
(when (form-string-p form-around)
(at-end-of-form-p syntax form-around offset)))))
@@ -1882,7 +1882,7 @@
;;; exploit the parse
(defun form-before-in-children (syntax children offset)
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(loop for (first . rest) on children
if (formp first)
do
@@ -1910,7 +1910,7 @@
"Offset past buffer end")
(assert (>= offset 0) nil
"Offset before buffer start")
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(or (gethash offset (form-before-cache syntax))
(setf (gethash offset (form-before-cache syntax))
(with-slots (stack-top) syntax
@@ -1920,7 +1920,7 @@
(form-before-in-children syntax (children stack-top) offset))))))
(defun form-after-in-children (syntax children offset)
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(loop for child in children
if (formp child)
do (cond ((< (start-offset child) offset (end-offset child))
@@ -1943,7 +1943,7 @@
"Offset past buffer end")
(assert (>= offset 0) nil
"Offset before buffer start")
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(or (gethash offset (form-after-cache syntax))
(setf (gethash offset (form-after-cache syntax))
(with-slots (stack-top) syntax
@@ -1953,7 +1953,7 @@
(form-after-in-children syntax (children stack-top) offset))))))
(defun form-around-in-children (syntax children offset)
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(loop for child in children
if (formp child)
do (cond ((or (<= (start-offset child) offset (end-offset child))
@@ -1972,7 +1972,7 @@
"Offset past buffer end")
(assert (>= offset 0) nil
"Offset before buffer start")
- (update-parse syntax 0 offset)
+ (update-parse syntax)
(or (gethash offset (form-around-cache syntax))
(setf (gethash offset (form-around-cache syntax))
(with-slots (stack-top) syntax