[mcclim-cvs] CVS mcclim/Drei

thenriksen thenriksen at common-lisp.net
Sat Jan 5 11:55:18 UTC 2008


Update of /project/mcclim/cvsroot/mcclim/Drei
In directory clnet:/tmp/cvs-serv22760/Drei

Modified Files:
	lisp-syntax.lisp 
Log Message:
Handle non-character objects in the buffer even when the syntax is
erroneous.


--- /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp	2008/01/05 09:13:56	1.49
+++ /project/mcclim/cvsroot/mcclim/Drei/lisp-syntax.lisp	2008/01/05 11:55:18	1.50
@@ -274,6 +274,7 @@
 
 (defclass error-lexeme (lisp-lexeme) ())
 (defclass literal-object-lexeme (lisp-lexeme literal-object-mixin) ())
+(defclass literal-object-error-lexeme (lisp-lexeme literal-object-mixin) ())
 (defclass left-parenthesis-lexeme (lisp-lexeme) ())
 (defclass simple-vector-start-lexeme (lisp-lexeme) ())
 (defclass right-parenthesis-lexeme (lisp-lexeme) ())
@@ -619,9 +620,13 @@
 
 (defmethod lex ((syntax lisp-syntax) (state lexer-error-state) scan)
   (macrolet ((fo () `(forward-object scan)))
-    (loop until (end-of-line-p scan)
-	  do (fo))
-    (make-instance 'error-lexeme)))
+    (cond ((not (or (end-of-buffer-p scan)
+                    (characterp (object-after scan))))
+           (fo)
+           (make-instance 'literal-object-error-lexeme))
+          (t (loop until (end-of-line-p scan)
+                do (fo))
+             (make-instance 'error-lexeme)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;




More information about the Mcclim-cvs mailing list