EoPL reading (136) 3.2 The Front End

昨晩の不具合は eopl:error-stop の定義が微妙な事が原因。呼び出されてるのは sllgen:error 内。

(define sllgen:error 
  (lambda (who format . data)
    ;; print the message
    (eopl:printf "Error reported by sllgen during ~s:~%" who)
    (apply eopl:printf (cons format data))
    (newline)
    (eopl:error-stop)))

eopl:error-stop の定義は define-datatype.scm の中で以下。

(define eopl:error-stop error)

適当にヤッツケちゃってるから、こーゆーコトになる訳ですが、どうしたものやら。

とりあえず

新たな例外を、とか色々考えたんですが、面倒なので以下?

(define sllgen:error 
  (lambda (who format . data)
    ;; print the message
;    (eopl:printf "Error reported by sllgen during ~s:~%" who)
;    (apply eopl:printf (cons format data))
;    (newline)
;    (eopl:error-stop)))
     (eopl:error format data)))

お仕事端末が微妙なので今からそちら対応。マトモになったら職場の同僚にタテて頂いたサイトに pukiwiki 仕込み対応予定ッス。