diff --git a/collects/lang/htdp-langs.ss b/collects/lang/htdp-langs.ss index ccdfd56f1d..0cd769aa91 100644 --- a/collects/lang/htdp-langs.ss +++ b/collects/lang/htdp-langs.ss @@ -33,7 +33,8 @@ ;; and the user's namespace in the teaching languages "private/set-result.ss" - (lib "stepper-language-interface.ss" "stepper")) + (lib "stepper-language-interface.ss" "stepper") + (lib "debugger-language-interface.ss" "mztake")) (provide tool@) @@ -873,18 +874,26 @@ (send dlg show #t) answer) - + (define (stepper-settings-language %) - (class* % (stepper-language<%>) - (init-field stepper:supported) - (init-field stepper:enable-let-lifting) - (inherit [dontcare1 stepper:enable-let-lifting?] - [dontcare2 stepper:supported?] - [dontcare3 debugger:supported?]) - (define/override (stepper:supported?) stepper:supported) - (define/override (stepper:enable-let-lifting?) stepper:enable-let-lifting) - (define/override (debugger:supported?) #f) - (super-new))) + (if (implementation? % stepper-language<%>) + (class* % (stepper-language<%>) + (init-field stepper:supported) + (init-field stepper:enable-let-lifting) + (define/override (stepper:supported?) stepper:supported) + (define/override (stepper:enable-let-lifting?) stepper:enable-let-lifting) + (super-new)) + (class* % () + (init stepper:supported) + (init stepper:enable-let-lifting) + (super-new)))) + + (define (debugger-settings-language %) + (if (implementation? % debugger-language<%>) + (class* % (debugger-language<%>) + (define/override (debugger:supported?) #f) + (super-new)) + %)) ;; rewrite-module : settings syntax -> syntax ;; rewrites te module to print out results of non-definitions @@ -1358,12 +1367,13 @@ (define (phase2) (define htdp-language% (stepper-settings-language - ((drscheme:language:get-default-mixin) - (language-extension - (drscheme:language:module-based-language->language-mixin - (module-based-language-extension - (drscheme:language:simple-module-based-language->module-based-language-mixin - simple-htdp-language%))))))) + (debugger-settings-language + ((drscheme:language:get-default-mixin) + (language-extension + (drscheme:language:module-based-language->language-mixin + (module-based-language-extension + (drscheme:language:simple-module-based-language->module-based-language-mixin + simple-htdp-language%)))))))) (add-htdp-language (instantiate htdp-language% () diff --git a/collects/mztake/debug-tool.ss b/collects/mztake/debug-tool.ss index 07febfe0d4..7ce18f0700 100644 --- a/collects/mztake/debug-tool.ss +++ b/collects/mztake/debug-tool.ss @@ -17,7 +17,7 @@ "load-sandbox.ss" (lib "framework.ss" "framework") (lib "string-constant.ss" "string-constants") - ) + "debugger-language-interface.ss") (provide tool@) @@ -30,9 +30,6 @@ (import drscheme:tool^) (export drscheme:tool-exports^) - (define debugger-language<%> - (interface () debugger:supported?)) - (define (phase1) (drscheme:language:extend-language-interface debugger-language<%> diff --git a/collects/mztake/debugger-language-interface.ss b/collects/mztake/debugger-language-interface.ss new file mode 100644 index 0000000000..e3d9776fbb --- /dev/null +++ b/collects/mztake/debugger-language-interface.ss @@ -0,0 +1,9 @@ + +(module debugger-language-interface mzscheme + (require (lib "class.ss")) + (provide debugger-language<%>) + + (define debugger-language<%> + (interface () debugger:supported?))) + + \ No newline at end of file