(define read-eval-print (sllgen:make-rep-loop "--> "
(lambda (pgm) (eval-program pgm))
(sllgen:make-stream-parser
the-lexical-spec
the-grammar)))
このタイプのエラーに詳しい人はいますか? 助けてください。
適切な言語を使用する必要があります。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 サイトから入手できるようです。
ただし、実際に最も有望に見えるのは、次のような結果です