错误:sllgen:make-rep-loop:模块中的未绑定标识符:sllgen:make-rep-loop

时间:2013-10-23 22:16:18

标签: scheme racket

    (define read-eval-print (sllgen:make-rep-loop "--> "
(lambda (pgm) (eval-program pgm))
(sllgen:make-stream-parser
 the-lexical-spec
 the-grammar)))

是否有人熟悉此类错误? 请帮助。

1 个答案:

答案 0 :(得分:0)

您需要使用正确的语言。根据{{​​3}},您似乎需要使用#lang eopl启动源文件:

#lang eopl

(define read-eval-print
  (sllgen:make-rep-loop
   "--> "
   (lambda (pgm)
     (eval-program pgm))
   (sllgen:make-stream-parser
    the-lexical-spec
    the-grammar)))

当您执行此操作时,您当然会开始收到其他一些错误,例如,eval-program未定义。如果你定义一个虚拟的,例如

(define (eval-program pgm)
  (values))

然后你会收到错误

  

sllgen:make-stream-parser:错误的扫描仪规范:the-lexical-spec

你需要用实际规范替换那个词法规范,并且类似地(我希望,尽管我没有探索这个),the-grammar。上面链接的文档可能(或可能不)帮助您解决这些问题。看起来您可以从the documentation获取基于编程语言要点的书籍代码。

真正看起来最有希望的是像

这样的结果