1
使用文件「測試lexer.lisp」,我已經很稍微修改法是試圖在包含文件中使用CL-詞法「{」和「}」
(defparameter *lex* (test-lexer "{ 1.0 12 fred 10.23e12"))
和增加次測試的重複數到6
(defun test()
(loop repeat 6
collect (multiple-value-list (funcall *lex*))))
,並試圖修改測試詞法分析器在多種方式,試圖使其接受「{」作爲標記。
例如,添加[:PUNCT:]在(deflexer測試詞法分析器...)
通過改變
("[: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.2 3e「) [」簡單錯誤類型的條件「]」「」
如何指定「{」作爲要識別的字符?還是我的問題在其他地方?