ファイル「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)))
一貫して次のようなエラーが発生します
"""レクサーは "{ 1.0 12 fred 10.23e12"、位置 0 ("{ 1.0 12 fred 10.23e") [SIMPLE-ERROR タイプの条件]""" でトークンを認識できません
認識する文字として「{」を指定するにはどうすればよいですか? それとも私の問題は他の場所にありますか?