Hex Artifact Content
Not logged in

Artifact df42dc931bdc8260eccf88a7e256ce17593f87d1:


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