smalltalk-tng
view etng-r1/expand-qname.scm @ 321:c4a0718c2d3c
Sketch of dependencies
| author | Tony Garnock-Jones <tonygarnockjones@gmail.com> |
|---|---|
| date | Sat Oct 08 15:36:03 2011 -0400 (7 months ago) |
| parents | 55b1a3a813eb |
| children |
line source
1 (define (extend-qname-env env prefix uri)
2 (cons (cons prefix uri) env))
4 (define (extend-qname-env* prefix-cons-alist base)
5 (append prefix-cons-alist base))
7 (define (expand-qname q env)
8 (let ((prefix (qname-uri q)))
9 (make-qname (cond
10 ((string? prefix) prefix) ;; it's already a uri
11 ((assv prefix env) => cdr)
12 (else (error "Unknown namespace prefix" q)))
13 (qname-localname q))))
15 (define (expand-qnames sexp env)
16 (let expand ((sexp sexp))
17 (cond
18 ((pair? sexp) (cons (car sexp) (map expand (cdr sexp))))
19 ((qname? sexp) (expand-qname sexp env))
20 (else sexp))))
