(module dracula-language-tool mzscheme
(require (lib "list.ss")
(lib "tool.ss" "drscheme")
(lib "mred.ss" "mred")
(lib "class.ss")
(lib "unit.ss"))
(require "dracula-language-sig.scm"
"dracula-language.scm")
(require "dracula-language-interface-sig.scm"
"dracula-language-interface.scm")
(provide tool@)
(define tool-w/o-mixins@
(unit
(import dracula-language^
dracula-language-interface^
drscheme:tool^)
(export drscheme:tool-exports^)
(define (phase1)
(drscheme:language:extend-language-interface
dracula-language<%>
dracula-language-default-mixin))
(define (phase2)
(let* ([mix (drscheme:language:get-default-mixin)]
[lang (new (mix dracula-language%))])
(drscheme:language-configuration:add-language lang)))))
(define tool@
(compound-unit
(import (DRS-TOOL : drscheme:tool^))
(export TOOL)
(link [((ACL2-SETTINGS : acl2-settings^)) acl2-settings@ DRS-TOOL]
[((DRACULA-LANG-INTERFACE : dracula-language-interface^)) dracula-language-interface@
DRS-TOOL]
[((ACL2-LANGUAGE : dracula-language^)) dracula-language@
DRS-TOOL
DRACULA-LANG-INTERFACE]
[((TOOL : drscheme:tool-exports^)) tool-w/o-mixins@
ACL2-LANGUAGE
DRACULA-LANG-INTERFACE
DRS-TOOL])))
)