Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / basis / xml / generator / generator.factor
blobac7b14b89e16f3a17ca14d219a132e7b2a9e4494
1 ! Copyright (C) 2006, 2007 Daniel Ehrenberg
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: namespaces make kernel xml.data xml.utilities assocs
4 sequences ;
5 IN: xml.generator
7 : comment, ( string -- ) <comment> , ;
8 : instruction, ( string -- ) <instruction> , ;
9 : nl, ( -- ) "\n" , ;
11 : (tag,) ( name attrs quot -- tag )
12     -rot [ V{ } make ] 2dip rot <tag> ; inline
13 : tag*, ( name attrs quot -- )
14     (tag,) , ; inline
16 : contained*, ( name attrs -- )
17     f <tag> , ;
19 : tag, ( name quot -- ) f swap tag*, ; inline
20 : contained, ( name -- ) f contained*, ; inline
22 : make-xml* ( name attrs quot -- xml )
23     (tag,) build-xml ; inline
24 : make-xml ( name quot -- xml )
25     f swap make-xml* ; inline