【发布时间】:2015-06-19 16:20:14
【问题描述】:
我正在尝试制作一个可以将@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,它没有被设置。我不能硬编码@符号后的字符数,因为我不知道会有多少。有没有办法解决这个问题?
编辑:是循环读取字符和窥视字符的唯一方法,一直读取到 #)、#\space 或 #\Newline?
【问题讨论】:
标签: macros common-lisp reader-macro