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

このタイプのエラーに詳しい人はいますか? 助けてください。

4

1 に答える 1

0

適切な言語を使用する必要があります。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: スキャナの仕様が正しくありません:the-lexical-spec

そのレキシカル仕様を実際の仕様に置き換える必要がありますthe-grammar。上記のリンク先のドキュメントは、それらの解決に役立つ場合があります (ない場合もあります)。これが元になっている書籍Essentials of Programming Languagesのコードは、書籍の Web サイトから入手できるようです。

ただし、実際に最も有望に見えるのは、次のような結果です

于 2013-10-23T23:07:53.200 に答える