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))))