X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/1d8cc67a3f4ded443f5efc673a616883cbae9c50..9ec578d9fe450b7e7f9030dc9d930185593aa991:/src/parser/scanner-token-impl.lisp diff --git a/src/parser/scanner-token-impl.lisp b/src/parser/scanner-token-impl.lisp index 9535d3d..8ab427a 100644 --- a/src/parser/scanner-token-impl.lisp +++ b/src/parser/scanner-token-impl.lisp @@ -28,6 +28,11 @@ ;;;-------------------------------------------------------------------------- ;;; Token scanner implementation. +(defmethod file-location ((place token-scanner-place)) + (make-file-location (scanner-filename (token-scanner-place-scanner place)) + (token-scanner-place-line place) + (token-scanner-place-column place))) + (defmethod shared-initialize :after ((scanner token-scanner) slot-names &key) (declare (ignore slot-names)) @@ -50,9 +55,10 @@ (setf type ty value val) (if (plusp captures) - (let ((next (make-token-scanner-place - :type ty :value val - :line line :column column))) + (let ((next (make-token-scanner-place :scanner scanner + :type ty :value val + :line line + :column column))) (setf (token-scanner-place-next tail) next tail next)) (setf tail nil))))))) @@ -61,8 +67,9 @@ (with-slots (type value captures tail line column) scanner (incf captures) (or tail - (setf tail (make-token-scanner-place - :type type :value value :line line :column column))))) + (setf tail (make-token-scanner-place :scanner scanner + :type type :value value + :line line :column column))))) (defmethod scanner-restore-place ((scanner token-scanner) place) (with-slots (type value tail line column) scanner