30 lines
1.0 KiB
Scheme
30 lines
1.0 KiB
Scheme
|
|
(module moddep mzscheme
|
|
(require "modread.ss"
|
|
"modcode.ss"
|
|
"modcollapse.ss"
|
|
"modresolve.ss")
|
|
|
|
(provide (all-from "modread.ss")
|
|
(all-from "modcode.ss")
|
|
(all-from "modcollapse.ss")
|
|
(all-from "modresolve.ss")
|
|
show-import-tree)
|
|
|
|
(define (show-import-tree module-path)
|
|
(let loop ([path (resolve-module-path module-path #f)][indent ""][fs ""])
|
|
(printf "~a~a~a\n" indent path fs)
|
|
(let ([code (get-module-code path)])
|
|
(let-values ([(imports fs-imports ft-imports fl-imports)
|
|
(module-compiled-imports code)])
|
|
(define ((mk-loop fs) i)
|
|
(unless (symbol? i)
|
|
(loop (resolve-module-path-index i path)
|
|
(format " ~a" indent)
|
|
fs)))
|
|
(for-each (mk-loop "") imports)
|
|
(for-each (mk-loop " [for-syntax]") fs-imports)
|
|
(for-each (mk-loop " [for-template]") ft-imports)
|
|
(for-each (mk-loop " [for-label]") fl-imports))))))
|
|
|