@this を「this」に変換するリーダー マクロを作成しようとしています。これは私が現在持っているものです:
(defun string-reader (stream char)
(declare (ignore char))
(format nil "\"~a\"" (read-line stream t nil t))
)
(set-macro-character #\@ #'string-reader )
問題は、@this の後に改行を入れる必要があることです。私も (read) で試してみましたが、それは設定されていない変数 test を返すだけです。@ 記号の後の文字数をハードコードすることはできません。何文字になるか分からないからです。これを修正する方法はありますか?
編集: read-char と peek-char をループして、#)、#\space、または #\Newline に到達するまで読み取る唯一の方法ですか?