Plaster

common-lisp
(defparameter *comments* '()) (defun comment-saver (stream char) (declare (ignore char)) (push (list *load-pathname* (stream-file-position stream) (with-output-to-string (str) (loop :with c :while (char/= #\Newline (setf c (read-char stream))) :do (write-char c str)))) *comments*) (values)) (set-macro-character #\; #'comment-saver)