Update of /project/mcclim/cvsroot/mcclim/Drei In directory clnet:/tmp/cvs-serv19970
Modified Files: lr-syntax.lisp Log Message: Added parser hack to make it possible to extend incomplete-lexemes to the end of the buffer, instead of to their last lexeme.
--- /project/mcclim/cvsroot/mcclim/Drei/lr-syntax.lisp 2007/04/27 21:37:14 1.1 +++ /project/mcclim/cvsroot/mcclim/Drei/lr-syntax.lisp 2007/05/06 13:54:11 1.2 @@ -160,14 +160,17 @@ until (typep child type) finally (return result))))
-(defmacro reduce-until-type (symbol type) +(defmacro reduce-until-type (symbol type &optional end-of-buffer) `(let ((result (make-instance ',symbol - :children (pop-until-type syntax ',type)))) - (when (null (children result)) - (with-slots (scan) syntax - (with-slots (start-mark size) result - (setf start-mark (clone-mark scan :right) - size 0)))) + :children (pop-until-type syntax ',type)))) + (with-slots (start-mark size) result + (when (null (children result)) + (with-slots (scan) syntax + (setf start-mark (clone-mark scan :right) + size 0))) + (when ,end-of-buffer + (setf size (- (size (buffer syntax)) + (start-offset result))))) result))
(defun pop-all (syntax)