# HG changeset patch # User Steve Losh # Date 1701642579 18000 # Node ID f6d74c247168b718cbe327ce5968966bd04b58d8 # Parent 04ad2212b90f1f79eaf59ebc17493c7e6d1a4185 Add #! and #; readers diff -r 04ad2212b90f -r f6d74c247168 src/readtable.lisp --- a/src/readtable.lisp Fri Dec 01 08:55:24 2023 -0500 +++ b/src/readtable.lisp Sun Dec 03 17:29:39 2023 -0500 @@ -1,4 +1,18 @@ (in-package :losh.readtable) + +(defun sharp-semicolon-reader (stream sub-char numarg) + (declare (ignore sub-char numarg)) + (loop :while (read-line stream nil nil)) + (values)) + +(defun shebang-reader (stream sub-char numarg) + (declare (ignore sub-char numarg)) + (read-line stream) + (values)) + (named-readtables:defreadtable losh - (:merge :standard losh.hash-tables::hash-table-constructor-syntax)) + (:merge :standard losh.hash-tables::hash-table-constructor-syntax) + (:macro-char #\# :dispatch) + (:dispatch-macro-char #\# #\; #'sharp-semicolon-reader) + (:dispatch-macro-char #\# #\! #'shebang-reader))