racket/collects/macro-debugger/view/debug.ss
2007-12-12 22:56:05 +00:00

36 lines
922 B
Scheme

(module debug mzscheme
(require (lib "pretty.ss")
(lib "class.ss")
"debug-format.ss"
"prefs.ss"
"view.ss")
(provide debug-file)
(define (widget-mixin %)
(class %
(define/override (top-interaction-kw? x)
(eq? (syntax-e x) '#%top-interaction))
(super-new)))
(define stepper-frame%
(class macro-stepper-frame%
(define/override (get-macro-stepper-widget%)
(widget-mixin (super get-macro-stepper-widget%)))
(super-new)))
(define (make-stepper)
(let ([f (new macro-stepper-frame%
(config (new macro-stepper-config/prefs%)))])
(send f show #t)
(send f get-widget)))
(define (debug-file file)
(let-values ([(events msg ctx) (load-debug-file file)])
(pretty-print msg)
(pretty-print ctx)
(let* ([w (make-stepper)])
(send w add-trace events)
w)))
)