我正在尝试制作字符和数字的词法分析器,但是我收到一个错误,说 lexer 未定义。我将来会将它用于文件,但是现在我正在使用键盘输入进行测试。这是我的代码:
(require parser-tools/lex-sre)
(define simpleCharNumLexer
(lexer
[(:+ (:or (char-range #\a #\z) (char-range #\A #\Z)))
; =>
(cons `(ID ,(string->symbol lexeme))
(analyze input-port))]
[(:: (:? #\-) (:+ (char-range #\0 #\9)))
; =>
(cons `(INT ,(string->number lexeme))
(analyze input-port))]))
这是错误: lexer:undefined; 无法引用未定义的标识符
我正在使用DrRacket 6.1和Pretty Big作为语言环境。我认为lexer是一个模块,但我如何找到它或定义它?
答案 0 :(得分:4)
添加(需要parser-tools / lex)
lex-sre只为正则表达式提供了另一种表示法。