Artifact
df42dc931bdc8260eccf88a7e256ce17593f87d1:
- File
sxml/ssax.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: 1634)
[more...]
0000: 0a 28 6c 69 62 72 61 72 79 20 28 73 78 6d 6c 20 .(library (sxml
0010: 73 73 61 78 29 0a 20 20 28 65 78 70 6f 72 74 20 ssax). (export
0020: 6d 61 6b 65 2d 78 6d 6c 2d 74 6f 6b 65 6e 0a 20 make-xml-token.
0030: 20 20 20 20 20 20 20 20 20 78 6d 6c 2d 74 6f 6b xml-tok
0040: 65 6e 3f 0a 20 20 20 20 20 20 20 20 20 20 78 6d en?. xm
0050: 6c 2d 74 6f 6b 65 6e 2d 6b 69 6e 64 0a 20 20 20 l-token-kind.
0060: 20 20 20 20 20 20 20 78 6d 6c 2d 74 6f 6b 65 6e xml-token
0070: 2d 68 65 61 64 0a 0a 20 20 20 20 20 20 20 20 20 -head..
0080: 20 73 73 61 78 3a 73 6b 69 70 2d 53 0a 20 20 20 ssax:skip-S.
0090: 20 20 20 20 20 20 20 73 73 61 78 3a 6e 63 6e 61 ssax:ncna
00a0: 6d 65 2d 73 74 61 72 74 69 6e 67 2d 63 68 61 72 me-starting-char
00b0: 3f 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 ?. ssax
00c0: 3a 72 65 61 64 2d 4e 43 4e 61 6d 65 0a 20 20 20 :read-NCName.
00d0: 20 20 20 20 20 20 20 73 73 61 78 3a 72 65 61 64 ssax:read
00e0: 2d 51 4e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 -QName.
00f0: 20 73 73 61 78 3a 50 72 65 66 69 78 2d 58 4d 4c ssax:Prefix-XML
0100: 0a 0a 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 .. name
0110: 2d 63 6f 6d 70 61 72 65 0a 0a 20 20 20 20 20 20 -compare..
0120: 20 20 20 20 73 73 61 78 3a 6c 61 72 67 65 73 74 ssax:largest
0130: 2d 75 6e 72 65 73 2d 6e 61 6d 65 0a 20 20 20 20 -unres-name.
0140: 20 20 20 20 20 20 73 73 61 78 3a 72 65 61 64 2d ssax:read-
0150: 6d 61 72 6b 75 70 2d 74 6f 6b 65 6e 0a 20 20 20 markup-token.
0160: 20 20 20 20 20 20 20 73 73 61 78 3a 73 6b 69 70 ssax:skip
0170: 2d 70 69 0a 20 20 20 20 20 20 20 20 20 20 73 73 -pi. ss
0180: 61 78 3a 72 65 61 64 2d 70 69 2d 62 6f 64 79 2d ax:read-pi-body-
0190: 61 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 as-string.
01a0: 20 20 20 20 73 73 61 78 3a 73 6b 69 70 2d 69 6e ssax:skip-in
01b0: 74 65 72 6e 61 6c 2d 64 74 64 0a 20 20 20 20 20 ternal-dtd.
01c0: 20 20 20 20 20 73 73 61 78 3a 72 65 61 64 2d 63 ssax:read-c
01d0: 64 61 74 61 2d 62 6f 64 79 0a 20 20 20 20 20 20 data-body.
01e0: 20 20 20 20 73 73 61 78 3a 72 65 61 64 2d 63 68 ssax:read-ch
01f0: 61 72 2d 72 65 66 0a 20 20 20 20 20 20 20 20 20 ar-ref.
0200: 20 73 73 61 78 3a 70 72 65 64 65 66 69 6e 65 64 ssax:predefined
0210: 2d 70 61 72 73 65 64 2d 65 6e 74 69 74 69 65 73 -parsed-entities
0220: 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 3a . ssax:
0230: 68 61 6e 64 6c 65 2d 70 61 72 73 65 64 2d 65 6e handle-parsed-en
0240: 74 69 74 79 0a 0a 20 20 20 20 20 20 20 20 20 20 tity..
0250: 6d 61 6b 65 2d 65 6d 70 74 79 2d 61 74 74 6c 69 make-empty-attli
0260: 73 74 0a 20 20 20 20 20 20 20 20 20 20 61 74 74 st. att
0270: 6c 69 73 74 2d 61 64 64 0a 20 20 20 20 20 20 20 list-add.
0280: 20 20 20 61 74 74 6c 69 73 74 2d 6e 75 6c 6c 3f attlist-null?
0290: 0a 20 20 20 20 20 20 20 20 20 20 61 74 74 6c 69 . attli
02a0: 73 74 2d 72 65 6d 6f 76 65 2d 74 6f 70 0a 20 20 st-remove-top.
02b0: 20 20 20 20 20 20 20 20 61 74 74 6c 69 73 74 2d attlist-
02c0: 3e 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 >alist.
02d0: 20 61 74 74 6c 69 73 74 2d 66 6f 6c 64 0a 20 20 attlist-fold.
02e0: 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 .
02f0: 20 20 20 73 73 61 78 3a 72 65 61 64 2d 61 74 74 ssax:read-att
0300: 72 69 62 75 74 65 73 0a 20 20 20 20 20 20 20 20 ributes.
0310: 20 20 73 73 61 78 3a 72 65 73 6f 6c 76 65 2d 6e ssax:resolve-n
0320: 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 73 73 ame. ss
0330: 61 78 3a 75 72 69 2d 73 74 72 69 6e 67 2d 3e 73 ax:uri-string->s
0340: 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 ymbol.
0350: 73 73 61 78 3a 63 6f 6d 70 6c 65 74 65 2d 73 74 ssax:complete-st
0360: 61 72 74 2d 74 61 67 0a 20 20 20 20 20 20 20 20 art-tag.
0370: 20 20 73 73 61 78 3a 72 65 61 64 2d 65 78 74 65 ssax:read-exte
0380: 72 6e 61 6c 2d 69 64 0a 20 20 20 20 20 20 20 20 rnal-id.
0390: 20 20 73 73 61 78 3a 73 63 61 6e 2d 4d 69 73 63 ssax:scan-Misc
03a0: 0a 20 20 20 20 20 20 20 20 20 20 73 73 61 78 3a . ssax:
03b0: 72 65 61 64 2d 63 68 61 72 2d 64 61 74 61 0a 20 read-char-data.
03c0: 20 20 20 20 20 20 20 20 20 73 73 61 78 3a 61 73 ssax:as
03d0: 73 65 72 74 2d 74 6f 6b 65 6e 0a 20 20 20 20 20 sert-token.
03e0: 20 20 20 20 20 73 73 61 78 3a 6d 61 6b 65 2d 70 ssax:make-p
03f0: 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 arser.
0400: 73 73 61 78 3a 6d 61 6b 65 2d 70 69 2d 70 61 72 ssax:make-pi-par
0410: 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 73 73 ser. ss
0420: 61 78 3a 6d 61 6b 65 2d 65 6c 65 6d 2d 70 61 72 ax:make-elem-par
0430: 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 73 73 ser. ss
0440: 61 78 3a 6d 61 6b 65 2d 70 61 72 73 65 72 2f 70 ax:make-parser/p
0450: 6f 73 69 74 69 6f 6e 61 6c 2d 61 72 67 73 0a 20 ositional-args.
0460: 20 20 20 20 20 20 20 20 20 73 73 61 78 3a 64 65 ssax:de
0470: 66 69 6e 65 2d 6c 61 62 65 6c 65 64 2d 61 72 67 fine-labeled-arg
0480: 2d 6d 61 63 72 6f 0a 20 20 20 20 20 20 20 20 20 -macro.
0490: 20 73 73 61 78 3a 72 65 76 65 72 73 65 2d 63 6f ssax:reverse-co
04a0: 6c 6c 65 63 74 2d 73 74 72 0a 20 20 20 20 20 20 llect-str.
04b0: 20 20 20 20 73 73 61 78 3a 72 65 76 65 72 73 65 ssax:reverse
04c0: 2d 63 6f 6c 6c 65 63 74 2d 73 74 72 2d 64 72 6f -collect-str-dro
04d0: 70 2d 77 73 0a 20 20 20 20 20 20 20 20 20 20 73 p-ws. s
04e0: 73 61 78 3a 78 6d 6c 2d 3e 73 78 6d 6c 29 0a 20 sax:xml->sxml).
04f0: 20 28 69 6d 70 6f 72 74 20 28 65 78 63 65 70 74 (import (except
0500: 20 28 73 63 68 65 6d 65 29 0a 20 20 20 20 20 20 (scheme).
0510: 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 stri
0520: 6e 67 2d 63 6f 70 79 20 73 74 72 69 6e 67 2d 66 ng-copy string-f
0530: 6f 72 2d 65 61 63 68 20 73 74 72 69 6e 67 2d 3e or-each string->
0540: 6c 69 73 74 20 73 74 72 69 6e 67 2d 75 70 63 61 list string-upca
0550: 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 se.
0560: 20 20 20 20 20 73 74 72 69 6e 67 2d 64 6f 77 6e string-down
0570: 63 61 73 65 20 73 74 72 69 6e 67 2d 74 69 74 6c case string-titl
0580: 65 63 61 73 65 20 73 74 72 69 6e 67 2d 68 61 73 ecase string-has
0590: 68 20 73 74 72 69 6e 67 2d 63 6f 70 79 21 20 73 h string-copy! s
05a0: 74 72 69 6e 67 2d 66 69 6c 6c 21 0a 20 20 20 20 tring-fill!.
05b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f fo
05c0: 6c 64 2d 72 69 67 68 74 20 65 72 72 6f 72 20 66 ld-right error f
05d0: 69 6c 74 65 72 29 0a 20 20 20 20 20 20 20 20 20 ilter).
05e0: 20 28 70 72 65 66 69 78 20 28 6f 6e 6c 79 20 28 (prefix (only (
05f0: 73 63 68 65 6d 65 29 20 65 72 72 6f 72 29 20 73 scheme) error) s
0600: 63 68 65 6d 65 3a 29 0a 20 20 20 20 20 20 20 20 cheme:).
0610: 20 20 28 73 72 66 69 20 73 31 33 20 73 74 72 69 (srfi s13 stri
0620: 6e 67 73 29 29 0a 20 20 0a 20 20 28 69 6e 63 6c ngs)). . (incl
0630: 75 64 65 20 22 75 74 69 6c 73 2e 73 73 22 29 0a ude "utils.ss").
0640: 20 20 28 69 6e 63 6c 75 64 65 20 22 73 73 61 78 (include "ssax
0650: 2d 69 6d 70 6c 2e 73 73 22 29 0a 20 20 0a 20 20 -impl.ss"). .
0660: 29 0a ).