2013-10-23 24 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