DrRacket 6.1错误说lexer未定义

时间:2014-10-06 12:27:15

标签: racket

我正在尝试制作字符和数字的词法分析器,但是我收到一个错误,说 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是一个模块,但我如何找到它或定义它?

1 个答案:

答案 0 :(得分:4)

添加(需要parser-tools / lex)

lex-sre只为正则表达式提供了另一种表示法。