24 lines
764 B
Scheme
24 lines
764 B
Scheme
#lang scheme/base
|
|
(provide mpi->list
|
|
mpi->string)
|
|
|
|
(define (mpi->list mpi)
|
|
(cond [(module-path-index? mpi)
|
|
(let-values ([(path relto) (module-path-index-split mpi)])
|
|
(cond [(not path) null]
|
|
[(not relto) (list path)]
|
|
[else (cons path (mpi->list relto))]))]
|
|
[(not mpi) null]
|
|
[else (list mpi)]))
|
|
|
|
;; mpi->string : module-path-index -> string
|
|
(define (mpi->string mpi)
|
|
(if (module-path-index? mpi)
|
|
(let ([mps (mpi->list mpi)])
|
|
(cond [(pair? mps)
|
|
(apply string-append
|
|
(format "~s" (car mps))
|
|
(map (lambda (x) (format " <= ~s" x)) (cdr mps)))]
|
|
[(null? mps) "this module"]))
|
|
(format "~s" mpi)))
|