racket/collects/syntax/private/modhelp.ss
Matthew Flatt 39cedb62ed v3.99.0.2
svn: r7706
2007-11-13 12:40:00 +00:00

24 lines
625 B
Scheme

(module modhelp mzscheme
(require (lib "string.ss"))
(provide explode-relpath-string
module-path-v?
module-path-v-string?)
(define (explode-relpath-string p)
(map (lambda (p)
(cond [(assoc p '((#"." . same) (#".." . up))) => cdr]
[else (bytes->path p)]))
(regexp-split #rx#"/+" (string->bytes/utf-8 p))))
(define (module-path-v-string? v)
(and (regexp-match? #rx"^[-a-zA-Z0-9./]+$" v)
(not (regexp-match? #rx"^/" v))
(not (regexp-match? #rx"/$" v))))
(define (module-path-v? v)
(or (path? v)
(module-path? v))))