使用文件“test-lexer.lisp”,我稍微修改了lex
(defparameter *lex* (test-lexer "{ 1.0 12 fred 10.23e12"))
并将测试重复的次数增加到 6
(defun test ()
(loop repeat 6
collect (multiple-value-list (funcall *lex*))))
并尝试以多种方式修改 test-lexer 以尝试使其将“{”识别为标记。
例如,在 (deflexer test-lexer ...) 中添加 [:punct:]
通过改变
("[:alpha:][:alnum:]*"
(return (values 'name %0)))
至
("[:alpha:][:alnum:][:punct:]*"
(return (values 'name %0)))
并不断收到错误,例如
"""Lexer 无法识别 "{ 1.0 12 fred 10.23e12" 中的标记,位置 0 ("{ 1.0 12 fred 10.23e") [SIMPLE-ERROR 类型的条件]"""
如何将“{”指定为要识别的字符?还是我的问题在别处?