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)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;