Artifact
5697c1e5311b5a6babc994dc1ae7bc5d2cae5ba9:
- File
sxml.sls
— part of check-in
[aa199cec70]
at
2016-12-05 21:31:39
on branch trunk
— added sxml from qothr/chez-sxml
(user:
aldo
size: 1989)
[more...]
0000: 0a 28 6c 69 62 72 61 72 79 20 28 73 78 6d 6c 29 .(library (sxml)
0010: 0a 20 20 28 65 78 70 6f 72 74 20 6d 61 6b 65 2d . (export make-
0020: 78 6d 6c 2d 74 6f 6b 65 6e 0a 20 20 20 20 20 20 xml-token.
0030: 20 20 20 20 78 6d 6c 2d 74 6f 6b 65 6e 3f 0a 20 xml-token?.
0040: 20 20 20 20 20 20 20 20 20 78 6d 6c 2d 74 6f 6b xml-tok
0050: 65 6e 2d 6b 69 6e 64 0a 20 20 20 20 20 20 20 20 en-kind.
0060: 20 20 78 6d 6c 2d 74 6f 6b 65 6e 2d 68 65 61 64 xml-token-head
0070: 0a 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 .. ssax
0080: 3a 73 6b 69 70 2d 53 0a 20 20 20 20 20 20 20 20 :skip-S.
0090: 20 20 73 73 61 78 3a 6e 63 6e 61 6d 65 2d 73 74 ssax:ncname-st
00a0: 61 72 74 69 6e 67 2d 63 68 61 72 3f 0a 20 20 20 arting-char?.
00b0: 20 20 20 20 20 20 20 73 73 61 78 3a 72 65 61 64 ssax:read
00c0: 2d 4e 43 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 -NCName.
00d0: 20 20 73 73 61 78 3a 72 65 61 64 2d 51 4e 61 6d ssax:read-QNam
00e0: 65 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 e. ssax
00f0: 3a 50 72 65 66 69 78 2d 58 4d 4c 0a 0a 20 20 20 :Prefix-XML..
0100: 20 20 20 20 20 20 20 6e 61 6d 65 2d 63 6f 6d 70 name-comp
0110: 61 72 65 0a 0a 20 20 20 20 20 20 20 20 20 20 73 are.. s
0120: 73 61 78 3a 6c 61 72 67 65 73 74 2d 75 6e 72 65 sax:largest-unre
0130: 73 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 s-name.
0140: 20 73 73 61 78 3a 72 65 61 64 2d 6d 61 72 6b 75 ssax:read-marku
0150: 70 2d 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 p-token.
0160: 20 20 73 73 61 78 3a 73 6b 69 70 2d 70 69 0a 20 ssax:skip-pi.
0170: 20 20 20 20 20 20 20 20 20 73 73 61 78 3a 72 65 ssax:re
0180: 61 64 2d 70 69 2d 62 6f 64 79 2d 61 73 2d 73 74 ad-pi-body-as-st
0190: 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 73 ring. s
01a0: 73 61 78 3a 73 6b 69 70 2d 69 6e 74 65 72 6e 61 sax:skip-interna
01b0: 6c 2d 64 74 64 0a 20 20 20 20 20 20 20 20 20 20 l-dtd.
01c0: 73 73 61 78 3a 72 65 61 64 2d 63 64 61 74 61 2d ssax:read-cdata-
01d0: 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 73 body. s
01e0: 73 61 78 3a 72 65 61 64 2d 63 68 61 72 2d 72 65 sax:read-char-re
01f0: 66 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 f. ssax
0200: 3a 70 72 65 64 65 66 69 6e 65 64 2d 70 61 72 73 :predefined-pars
0210: 65 64 2d 65 6e 74 69 74 69 65 73 0a 20 20 20 20 ed-entities.
0220: 20 20 20 20 20 20 73 73 61 78 3a 68 61 6e 64 6c ssax:handl
0230: 65 2d 70 61 72 73 65 64 2d 65 6e 74 69 74 79 0a e-parsed-entity.
0240: 0a 20 20 20 20 20 20 20 20 20 20 6d 61 6b 65 2d . make-
0250: 65 6d 70 74 79 2d 61 74 74 6c 69 73 74 0a 20 20 empty-attlist.
0260: 20 20 20 20 20 20 20 20 61 74 74 6c 69 73 74 2d attlist-
0270: 61 64 64 0a 20 20 20 20 20 20 20 20 20 20 61 74 add. at
0280: 74 6c 69 73 74 2d 6e 75 6c 6c 3f 0a 20 20 20 20 tlist-null?.
0290: 20 20 20 20 20 20 61 74 74 6c 69 73 74 2d 72 65 attlist-re
02a0: 6d 6f 76 65 2d 74 6f 70 0a 20 20 20 20 20 20 20 move-top.
02b0: 20 20 20 61 74 74 6c 69 73 74 2d 3e 61 6c 69 73 attlist->alis
02c0: 74 0a 20 20 20 20 20 20 20 20 20 20 61 74 74 6c t. attl
02d0: 69 73 74 2d 66 6f 6c 64 0a 20 20 20 20 20 20 20 ist-fold.
02e0: 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 73 73 . ss
02f0: 61 78 3a 72 65 61 64 2d 61 74 74 72 69 62 75 74 ax:read-attribut
0300: 65 73 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 es. ssa
0310: 78 3a 72 65 73 6f 6c 76 65 2d 6e 61 6d 65 0a 20 x:resolve-name.
0320: 20 20 20 20 20 20 20 20 20 73 73 61 78 3a 75 72 ssax:ur
0330: 69 2d 73 74 72 69 6e 67 2d 3e 73 79 6d 62 6f 6c i-string->symbol
0340: 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 3a . ssax:
0350: 63 6f 6d 70 6c 65 74 65 2d 73 74 61 72 74 2d 74 complete-start-t
0360: 61 67 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 ag. ssa
0370: 78 3a 72 65 61 64 2d 65 78 74 65 72 6e 61 6c 2d x:read-external-
0380: 69 64 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 id. ssa
0390: 78 3a 73 63 61 6e 2d 4d 69 73 63 0a 20 20 20 20 x:scan-Misc.
03a0: 20 20 20 20 20 20 73 73 61 78 3a 72 65 61 64 2d ssax:read-
03b0: 63 68 61 72 2d 64 61 74 61 0a 20 20 20 20 20 20 char-data.
03c0: 20 20 20 20 73 73 61 78 3a 61 73 73 65 72 74 2d ssax:assert-
03d0: 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 token.
03e0: 73 73 61 78 3a 6d 61 6b 65 2d 70 61 72 73 65 72 ssax:make-parser
03f0: 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 3a . ssax:
0400: 6d 61 6b 65 2d 70 69 2d 70 61 72 73 65 72 0a 20 make-pi-parser.
0410: 20 20 20 20 20 20 20 20 20 73 73 61 78 3a 6d 61 ssax:ma
0420: 6b 65 2d 65 6c 65 6d 2d 70 61 72 73 65 72 0a 20 ke-elem-parser.
0430: 20 20 20 20 20 20 20 20 20 73 73 61 78 3a 6d 61 ssax:ma
0440: 6b 65 2d 70 61 72 73 65 72 2f 70 6f 73 69 74 69 ke-parser/positi
0450: 6f 6e 61 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 onal-args.
0460: 20 20 20 20 73 73 61 78 3a 64 65 66 69 6e 65 2d ssax:define-
0470: 6c 61 62 65 6c 65 64 2d 61 72 67 2d 6d 61 63 72 labeled-arg-macr
0480: 6f 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 o. ssax
0490: 3a 72 65 76 65 72 73 65 2d 63 6f 6c 6c 65 63 74 :reverse-collect
04a0: 2d 73 74 72 0a 20 20 20 20 20 20 20 20 20 20 73 -str. s
04b0: 73 61 78 3a 72 65 76 65 72 73 65 2d 63 6f 6c 6c sax:reverse-coll
04c0: 65 63 74 2d 73 74 72 2d 64 72 6f 70 2d 77 73 0a ect-str-drop-ws.
04d0: 20 20 20 20 20 20 20 20 20 20 73 73 61 78 3a 78 ssax:x
04e0: 6d 6c 2d 3e 73 78 6d 6c 0a 0a 20 20 20 20 20 20 ml->sxml..
04f0: 20 20 20 20 6e 6f 64 65 73 65 74 3f 0a 20 20 20 nodeset?.
0500: 20 20 20 20 20 20 20 6e 6f 64 65 2d 74 79 70 65 node-type
0510: 6f 66 3f 0a 20 20 20 20 20 20 20 20 20 20 6e 6f of?. no
0520: 64 65 2d 65 71 3f 0a 20 20 20 20 20 20 20 20 20 de-eq?.
0530: 20 6e 6f 64 65 2d 65 71 75 61 6c 3f 0a 20 20 20 node-equal?.
0540: 20 20 20 20 20 20 20 6e 6f 64 65 2d 70 6f 73 0a node-pos.
0550: 20 20 20 20 20 20 20 20 20 20 74 61 6b 65 2d 75 take-u
0560: 6e 74 69 6c 0a 20 20 20 20 20 20 20 20 20 20 74 ntil. t
0570: 61 6b 65 2d 61 66 74 65 72 0a 20 20 20 20 20 20 ake-after.
0580: 20 20 20 20 6d 61 70 2d 75 6e 69 6f 6e 0a 20 20 map-union.
0590: 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 72 65 76 node-rev
05a0: 65 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 6e erse. n
05b0: 6f 64 65 2d 74 72 61 63 65 0a 20 20 20 20 20 20 ode-trace.
05c0: 20 20 20 20 73 65 6c 65 63 74 2d 6b 69 64 73 0a select-kids.
05d0: 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 73 node-s
05e0: 65 6c 66 0a 20 20 20 20 20 20 20 20 20 20 6e 6f elf. no
05f0: 64 65 2d 6a 6f 69 6e 0a 20 20 20 20 20 20 20 20 de-join.
0600: 20 20 6e 6f 64 65 2d 72 65 64 75 63 65 0a 20 20 node-reduce.
0610: 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 6f 72 0a node-or.
0620: 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2d 63 node-c
0630: 6c 6f 73 75 72 65 0a 20 20 20 20 20 20 20 20 20 losure.
0640: 20 6e 6f 64 65 2d 70 61 72 65 6e 74 0a 20 20 20 node-parent.
0650: 20 20 20 20 20 20 20 73 78 70 61 74 68 29 0a 20 sxpath).
0660: 20 28 69 6d 70 6f 72 74 20 28 65 78 63 65 70 74 (import (except
0670: 20 28 73 63 68 65 6d 65 29 0a 20 20 20 20 20 20 (scheme).
0680: 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 stri
0690: 6e 67 2d 63 6f 70 79 20 73 74 72 69 6e 67 2d 66 ng-copy string-f
06a0: 6f 72 2d 65 61 63 68 20 73 74 72 69 6e 67 2d 3e or-each string->
06b0: 6c 69 73 74 20 73 74 72 69 6e 67 2d 75 70 63 61 list string-upca
06c0: 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 se.
06d0: 20 20 20 20 20 73 74 72 69 6e 67 2d 64 6f 77 6e string-down
06e0: 63 61 73 65 20 73 74 72 69 6e 67 2d 74 69 74 6c case string-titl
06f0: 65 63 61 73 65 20 73 74 72 69 6e 67 2d 68 61 73 ecase string-has
0700: 68 20 73 74 72 69 6e 67 2d 63 6f 70 79 21 20 73 h string-copy! s
0710: 74 72 69 6e 67 2d 66 69 6c 6c 21 0a 20 20 20 20 tring-fill!.
0720: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f fo
0730: 6c 64 2d 72 69 67 68 74 20 65 72 72 6f 72 20 66 ld-right error f
0740: 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 ilter).
0750: 20 28 70 72 65 66 69 78 20 28 6f 6e 6c 79 20 28 (prefix (only (
0760: 73 63 68 65 6d 65 29 20 65 72 72 6f 72 29 20 73 scheme) error) s
0770: 63 68 65 6d 65 3a 29 0a 20 20 20 20 20 20 20 20 cheme:).
0780: 20 20 28 73 72 66 69 20 73 31 33 20 73 74 72 69 (srfi s13 stri
0790: 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 ngs). (
07a0: 73 78 6d 6c 20 73 73 61 78 29 0a 20 20 20 20 20 sxml ssax).
07b0: 20 20 20 20 20 28 73 78 6d 6c 20 73 78 70 61 74 (sxml sxpat
07c0: 68 29 29 29 0a h))).