2013-10-23 20 views

回答

0

您需要使用正确的语言。据the documentation,它看起来像你需要与#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 : bad scanner specification in: the-lexical-spec

你需要一个实际的规范来替代词汇规范,同样(我希望,尽管我没有探索这个)与the-grammar。上面链接的文档可能(或可能不)帮助你解决这些问题。它看起来像你可以得到这是基于这本书的代码,编程语言精要,从the book's website

看起来真的什么最有前途的,但是,就像

+0

非常感谢您的帮助,但我是usi ng eopl为#lang,我仍然得到相同的错误。 – knowKnothing

+0

@ user2227735您正在使用Dr.Retet的哪个版本? –

+0

欢迎阅读DrRacket,版本5.3.6,PLT英文版。 – knowKnothing