Mit Hilfe der Datei "Test-lexer.lisp", ich habe sehr leicht modifizierte lexversucht, cl-Lexer auf eine Datei zu verwenden, die "{" und "}"
(defparameter *lex* (test-lexer "{ 1.0 12 fred 10.23e12"))
und erhöht zu sein die Anzahl des Tests wiederholt bis 6
(defun test()
(loop repeat 6
collect (multiple-value-list (funcall *lex*))))
und versuchte Test-Lexer in einer Reihe von Möglichkeiten, zu modifizieren, um zu versuchen, es zu bekommen zu erkennen, „{“ als ein Zeichen.
Zum Beispiel das Hinzufügen [: punct:] in (deflexer Test-Lexer ...)
durch Änderung
("[:alpha:][:alnum:]*"
(return (values 'name %0)))
zu
("[:alpha:][:alnum:][:punct:]*"
(return (values 'name %0)))
und konsequent Fehler erhalten wie
"" "Lexer kann ein Token in" {1.0 12 fred 10.23e12 ", Position 0 (" {1.0 12 fred 10.2 3e ") [Bedingung des Typs SIMPLE-ERROR]" ""
Wie kann ich "{" als zu erkennendes Zeichen angeben? Oder ist mein Problem anderswo?