moved to darcs
diff -urN wiliki-0.5/Makefile wiliki-0.5-case-insensitive/Makefile --- wiliki-0.5/Makefile 2004-04-04 13:12:14.000000000 +0200 +++ wiliki-0.5-case-insensitive/Makefile 2004-09-13 16:20:08.000000000 +0200 @@ -17,6 +17,7 @@ install: all cd src; $(MAKE) install cd doc; $(MAKE) install + cd scheme-unicode; $(MAKE) install distclean: clean cd src; $(MAKE) distclean diff -urN wiliki-0.5/scheme-unicode/COPYING wiliki-0.5-case-insensitive/scheme-unicode/COPYING --- wiliki-0.5/scheme-unicode/COPYING 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/COPYING 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,5 @@ + +Copyright (C) 2002-2003 Alex Shinn, All rights reserved. + +This library is free software; you can redistribute it and/or modify +it under either the GNU GPL or Artistic licenses. diff -urN wiliki-0.5/scheme-unicode/data/case-map-2.dat wiliki-0.5-case-insensitive/scheme-unicode/data/case-map-2.dat --- wiliki-0.5/scheme-unicode/data/case-map-2.dat 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/data/case-map-2.dat 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1 @@ +#(#(223 #\ß "Ss" "SS") #(304 "i̇" #\İ #\İ) #(329 #\ʼn "ʼN" "ʼN") #(496 #\ǰ "J̌" "J̌") #(912 #\ΐ "Ϊ́" "Ϊ́") #(944 #\ΰ "Ϋ́" "Ϋ́") #(1415 #\և "Եւ" "ԵՒ") #(7830 #\ẖ "H̱" "H̱") #(7831 #\ẗ "T̈" "T̈") #(7832 #\ẘ "W̊" "W̊") #(7833 #\ẙ "Y̊" "Y̊") #(7834 #\ẚ "Aʾ" "Aʾ") #(8016 #\ὐ "Υ̓" "Υ̓") #(8018 #\ὒ "Υ̓̀" "Υ̓̀") #(8020 #\ὔ "Υ̓́" "Υ̓́") #(8022 #\ὖ "Υ̓͂" "Υ̓͂") #(8064 #\ᾀ #\ᾈ "ἈΙ") #(8065 #\ᾁ #\ᾉ "ἉΙ") #(8066 #\ᾂ #\ᾊ "ἊΙ") #(8067 #\ᾃ #\ᾋ "ἋΙ") #(8068 #\ᾄ #\ᾌ "ἌΙ") #(8069 #\ᾅ #\ᾍ "ἍΙ") #(8070 #\ᾆ #\ᾎ "ἎΙ") #(8071 #\ᾇ #\ᾏ "ἏΙ") #(8072 #\ᾀ #\ᾈ "ἈΙ") #(8073 #\ᾁ #\ᾉ "ἉΙ") #(8074 #\ᾂ #\ᾊ "ἊΙ") #(8075 #\ᾃ #\ᾋ "ἋΙ") #(8076 #\ᾄ #\ᾌ "ἌΙ") #(8077 #\ᾅ #\ᾍ "ἍΙ") #(8078 #\ᾆ #\ᾎ "ἎΙ") #(8079 #\ᾇ #\ᾏ "ἏΙ") #(8080 #\ᾐ #\ᾘ "ἨΙ") #(8081 #\ᾑ #\ᾙ "ἩΙ") #(8082 #\ᾒ #\ᾚ "ἪΙ") #(8083 #\ᾓ #\ᾛ "ἫΙ") #(8084 #\ᾔ #\ᾜ "ἬΙ") #(8085 #\ᾕ #\ᾝ "ἭΙ") #(8086 #\ᾖ #\ᾞ "ἮΙ") #(8087 #\ᾗ #\ᾟ "ἯΙ") #(8088 #\ᾐ #\ᾘ "ἨΙ") #(8089 #\ᾑ #\ᾙ "ἩΙ") #(8090 #\ᾒ #\ᾚ "ἪΙ") #(8091 #\ᾓ #\ᾛ "ἫΙ") #(8092 #\ᾔ #\ᾜ "ἬΙ") #(8093 #\ᾕ #\ᾝ "ἭΙ") #(8094 #\ᾖ #\ᾞ "ἮΙ") #(8095 #\ᾗ #\ᾟ "ἯΙ") #(8096 #\ᾠ #\ᾨ "ὨΙ") #(8097 #\ᾡ #\ᾩ "ὩΙ") #(8098 #\ᾢ #\ᾪ "ὪΙ") #(8099 #\ᾣ #\ᾫ "ὫΙ") #(8100 #\ᾤ #\ᾬ "ὬΙ") #(8101 #\ᾥ #\ᾭ "ὭΙ") #(8102 #\ᾦ #\ᾮ "ὮΙ") #(8103 #\ᾧ #\ᾯ "ὯΙ") #(8104 #\ᾠ #\ᾨ "ὨΙ") #(8105 #\ᾡ #\ᾩ "ὩΙ") #(8106 #\ᾢ #\ᾪ "ὪΙ") #(8107 #\ᾣ #\ᾫ "ὫΙ") #(8108 #\ᾤ #\ᾬ "ὬΙ") #(8109 #\ᾥ #\ᾭ "ὭΙ") #(8110 #\ᾦ #\ᾮ "ὮΙ") #(8111 #\ᾧ #\ᾯ "ὯΙ") #(8114 #\ᾲ "Ὰͅ" "ᾺΙ") #(8115 #\ᾳ #\ᾼ "ΑΙ") #(8116 #\ᾴ "Άͅ" "ΆΙ") #(8118 #\ᾶ "Α͂" "Α͂") #(8119 #\ᾷ "ᾼ͂" "Α͂Ι") #(8124 #\ᾳ #\ᾼ "ΑΙ") #(8130 #\ῂ "Ὴͅ" "ῊΙ") #(8131 #\ῃ #\ῌ "ΗΙ") #(8132 #\ῄ "Ήͅ" "ΉΙ") #(8134 #\ῆ "Η͂" "Η͂") #(8135 #\ῇ "ῌ͂" "Η͂Ι") #(8140 #\ῃ #\ῌ "ΗΙ") #(8146 #\ῒ "Ϊ̀" "Ϊ̀") #(8147 #\ΐ "Ϊ́" "Ϊ́") #(8150 #\ῖ "Ι͂" "Ι͂") #(8151 #\ῗ "Ϊ͂" "Ϊ͂") #(8162 #\ῢ "Ϋ̀" "Ϋ̀") #(8163 #\ΰ "Ϋ́" "Ϋ́") #(8164 #\ῤ "Ρ̓" "Ρ̓") #(8166 #\ῦ "Υ͂" "Υ͂") #(8167 #\ῧ "Ϋ͂" "Ϋ͂") #(8178 #\ῲ "Ὼͅ" "ῺΙ") #(8179 #\ῳ #\ῼ "ΩΙ") #(8180 #\ῴ "Ώͅ" "ΏΙ") #(8182 #\ῶ "Ω͂" "Ω͂") #(8183 #\ῷ "ῼ͂" "Ω͂Ι") #(8188 #\ῳ #\ῼ "ΩΙ") #(64256 #\ff "Ff" "FF") #(64257 #\fi "Fi" "FI") #(64258 #\fl "Fl" "FL") #(64259 #\ffi "Ffi" "FFI") #(64260 #\ffl "Ffl" "FFL") #(64261 #\ſt "St" "ST") #(64262 #\st "St" "ST") #(64275 #\ﬓ "Մն" "ՄՆ") #(64276 #\ﬔ "Մե" "ՄԵ") #(64277 #\ﬕ "Մի" "ՄԻ") #(64278 #\ﬖ "Վն" "ՎՆ") #(64279 #\ﬗ "Մխ" "ՄԽ")) \ No newline at end of file diff -urN wiliki-0.5/scheme-unicode/data/ranges.dat wiliki-0.5-case-insensitive/scheme-unicode/data/ranges.dat --- wiliki-0.5/scheme-unicode/data/ranges.dat 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/data/ranges.dat 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1 @@ +((15877 15934) ((10747 12287) ((8571 8591) ((963 969 42706) ((509 591) ((382 402) ((216 246 43470) ((183 214 43438) ((128 159 9404544) #f #f) #f) ((248 256 43501) #f #f)) ((450 460) ((403 449) #f #f) ((476 503) #f #f))) ((865 912) ((745 767) ((741 745 44000) ((674 710) #f #f) #f) ((829 864) #f #f)) ((931 937 42674) ((913 929 42657) #f #f) ((945 961 42689) #f #f)))) ((8051 8207) ((1072 1077 42961) ((1040 1045 42913) ((1025 1039) ((969 1024) #f #f) #f) ((1046 1071 42920) #f #f)) ((1105 7741) ((1078 1103 42968) #f #f) ((7743 8047) #f #f))) ((8501 8530) ((8451 8462) ((8364 8450) ((8273 8363) #f #f) #f) ((8470 8480) #f #f)) ((8544 8554 44469) ((8533 8543) #f #f) ((8560 8571 44213) #f #f))))) ((9331 9423) ((8869 8894) ((8786 8799) ((8660 8677) ((8644 8657) ((8601 8643) #f #f) #f) ((8681 8703) #f #f)) ((8823 8833) ((8811 8821) #f #f) ((8855 8868) #f #f))) ((9150 9164 42946) ((8966 8977) ((8923 8964) ((8895 8921) #f #f) #f) ((8984 9149) #f #f)) ((9251 9311) ((9166 9250) #f #f) ((9312 9331 44449) #f #f)))) ((9794 9823) ((9633 9648) ((9461 9470 42714) ((9451 9460 44203) ((9424 9449 44225) #f #f) #f) ((9547 9631) #f #f)) ((9711 9727) ((9683 9701) #f #f) ((9758 9791) #f #f))) ((10111 10547) ((10070 10101) ((10003 10069) ((9839 10002) #f #f) #f) ((10102 10111 44193) #f #f)) ((10630 10686) ((10549 10628) #f #f) ((10687 10745) #f #f)))))) ((13812 13828) ((13115 13128) ((12857 12880) ((12543 12783) ((12353 12438 42145) ((12320 12338) ((12296 12305 41426) #f #f) #f) ((12449 12534 42401) #f #f)) ((12794 12799 42745) ((12784 12793 42734) #f #f) ((12799 12848) #f #f))) ((12991 13007) ((12964 12968 44517) ((12895 12963) ((12881 12895 43201) #f #f) #f) ((12977 12991 43216) #f #f)) ((13037 13049) ((13008 13027 44251) #f #f) ((13099 13109) #f #f)))) ((13458 13492) ((13261 13313) ((13199 13211) ((13182 13197) ((13143 13178) #f #f) #f) ((13217 13251) #f #f)) ((13358 13415) ((13318 13355) #f #f) ((13418 13457) #f #f))) ((13678 13733) ((13599 13660) ((13531 13598) ((13511 13530) #f #f) #f) ((13667 13677) #f #f)) ((13765 13785) ((13736 13764) #f #f) ((13786 13811) #f #f))))) ((15118 15129) ((14336 14382) ((14197 14220) ((13977 14030) ((13898 13968) ((13829 13897) #f #f) #f) ((14031 14176) #f #f)) ((14273 14305) ((14221 14272) #f #f) ((14312 14323) #f #f))) ((14703 14957) ((14586 14614) ((14433 14585) ((14400 14427) #f #f) #f) ((14618 14702) #f #f)) ((15063 15081) ((14963 15061) #f #f) ((15082 15117) #f #f)))) ((15398 15554) ((15286 15298) ((15245 15267) ((15223 15238) ((15138 15212) #f #f) #f) ((15268 15285) #f #f)) ((15344 15374) ((15309 15343) #f #f) ((15375 15397) #f #f))) ((15716 15769) ((15633 15645) ((15570 15632) ((15555 15569) #f #f) #f) ((15646 15715) #f #f)) ((15808 15827) ((15770 15807) #f #f) ((15828 15876) #f #f))))))) ((22043 22055) ((17701 17730) ((16883 16902) ((16343 16440) ((16215 16241) ((16003 16019) ((15976 16002) ((15935 15967) #f #f) #f) ((16020 16214) #f #f)) ((16302 16328) ((16247 16301) #f #f) ((16329 16342) #f #f))) ((16719 16738) ((16531 16644) ((16472 16530) ((16441 16471) #f #f) #f) ((16645 16711) #f #f)) ((16820 16830) ((16739 16819) #f #f) ((16831 16869) #f #f)))) ((17416 17430) ((17154 17194) ((17094 17109) ((16996 17093) ((16910 16995) #f #f) #f) ((17117 17153) #f #f)) ((17219 17389) ((17195 17218) #f #f) ((17392 17415) #f #f))) ((17587 17597) ((17530 17552) ((17499 17525) ((17442 17490) #f #f) #f) ((17553 17586) #f #f)) ((17620 17671) ((17598 17619) #f #f) ((17677 17700) #f #f))))) ((18948 18984) ((18095 18187) ((17935 17984) ((17848 17892) ((17821 17847) ((17731 17820) #f #f) #f) ((17898 17934) #f #f)) ((18021 18080) ((17985 18020) #f #f) ((18081 18094) #f #f))) ((18510 18612) ((18429 18453) ((18276 18428) ((18188 18275) #f #f) #f) ((18454 18499) #f #f)) ((18864 18918) ((18613 18863) #f #f) ((18919 18937) #f #f)))) ((19719 19830) ((19432 19478) ((19259 19393) ((19132 19258) ((18985 19131) #f #f) #f) ((19410 19431) #f #f)) ((19652 19664) ((19488 19651) #f #f) ((19665 19718) #f #f))) ((21705 21719) ((20253 20270) ((20083 20093) ((19831 19967) #f #f) #f) ((21380 21394) #f #f)) ((21860 21882) ((21782 21802) #f #f) ((21993 22006) #f #f)))))) ((34427 34438) ((27973 27991) ((25062 25073) ((23700 23710) ((23113 23124) ((22353 22368) ((22096 22106) #f #f) #f) ((23676 23687) #f #f)) ((23997 24008) ((23926 23936) #f #f) ((24575 24588) #f #f))) ((26628 26639) ((25666 25677) ((25594 25605) ((25313 25323) #f #f) #f) ((26313 26325) #f #f)) ((27684 27698) ((27635 27646) #f #f) ((27714 27724) #f #f)))) ((30592 30602) ((29038 29052) ((28485 28496) ((28382 28394) ((28060 28073) #f #f) #f) ((28859 28871) #f #f)) ((29527 29538) ((29211 29223) #f #f) ((30476 30486) #f #f))) ((33478 33488) ((31264 31276) ((31216 31226) ((30801 30812) #f #f) #f) ((32412 32565) #f #f)) ((34012 34022) ((33635 33650) #f #f) ((34369 34380) #f #f))))) ((40058 40164) ((37406 37416) ((36234 36244) ((35742 35894) ((35264 35281) ((34707 34718) #f #f) #f) ((36123 36195) #f #f)) ((36708 36762) ((36587 36599) #f #f) ((37126 37137) #f #f))) ((39115 39130) ((38881 38892) ((38373 38427) ((38017 38262) #f #f) #f) ((39028 39079) #f #f)) ((39394 39404) ((39264 39317) #f #f) ((39531 39591) #f #f)))) ((63856 63951) ((40866 63772) ((40737 40747) ((40478 40564) ((40182 40193) #f #f) #f) ((40823 40844) #f #f)) ((63785 63797) ((63773 63783) #f #f) ((63798 63855) #f #f))) ((65296 65305 41904) ((64106 65092) ((63964 64014) ((63952 63963) #f #f) #f) ((65094 65280) #f #f)) ((65345 65370 41953) ((65313 65338 41921) #f #f) ((65377 65439 36513) #f #f)))))))) diff -urN wiliki-0.5/scheme-unicode/lib/lang/case-map.scm wiliki-0.5-case-insensitive/scheme-unicode/lib/lang/case-map.scm --- wiliki-0.5/scheme-unicode/lib/lang/case-map.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/lib/lang/case-map.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,236 @@ + +(define-module lang.case-map + (use srfi-2) + (use srfi-13) + (use lang.char-set) + (use gauche.uvector) + (export char-upcase* char-downcase* char-titlecase* + upcase downcase titlecase)) +(select-module lang.case-map) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; simple case conversions + +(define *char-case-file-1* + (format "~A/case-map-1.dat" (gauche-site-library-directory))) + +(define *char-case-table-1* + (with-error-handler + (lambda (err . args) + (warn "couldn't load case-map-1.dat") + (make-u32vector 0)) + (lambda () + (and-let* ((stat (sys-stat *char-case-file-1*)) + (size (slot-ref stat 'size)) + (vec (make-u32vector (quotient size 4)))) + (call-with-input-file *char-case-file-1* + (cut read-block! vec <>)) + vec)))) + +(define *char-case-count-1* + (- (quotient (u32vector-length *char-case-table-1*) 4) 1)) + +(define (char-case-index tab i) + (if (zero? (u32vector-length tab)) + 0 + (do ((j 0 (+ j 4))) + ((>= (u32vector-ref tab j) i) (quotient j 4))))) + +(define *index-2500* (char-case-index *char-case-table-1* #x2500)) +(define *index-FF20* (char-case-index *char-case-table-1* #xFF20)) + +(define (char-case-search tab i off . opt) + (let-optionals* opt ((min 0) (max *char-case-count-1*)) + (and + (>= max min) + (cond + ((= i (u32vector-ref tab (* min 4))) + (u32vector-ref (+ (* min 4) off))) + ((= i (u32vector-ref tab (* max 4))) + (u32vector-ref (+ (* max 4) off))) + (else + (let loop ((a min) (b max)) + (if (= a b) + #f + (let* ((mid (+ a (quotient (- b a) 2))) + (ind (* mid 4)) + (val (u32vector-ref tab ind))) + (cond ((< i val) (if (= mid b) #f (loop a mid))) + ((> i val) (if (= mid a) #f (loop mid b))) + (else (u32vector-ref tab (+ ind off)))))))))))) + +(define (char-map-single-case i off) + (cond ((< i 128) #f) + ((< i #x2500) + (and-let* ((j (char-case-search *char-case-table-1* + i off 0 *index-2500*))) + (ucs->char j))) + ((> i #xFF20) + (and-let* ((j (char-case-search *char-case-table-1* + i off *index-FF20* + *char-case-count-1*))) + (ucs->char j))) + (else #f))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; special casing + +(define *char-case-file-2* + (format "~A/case-map-2.dat" (gauche-site-library-directory))) + +(define *char-case-table-2* + (with-error-handler + (lambda (err . args) (warn "couldn't load case-map-2.dat") #()) + (cut with-input-from-file *char-case-file-2* read))) + +(define *char-case-length-2* (vector-length *char-case-table-2*)) + +(define (char-map-multi-case i off) + (let loop ((a 0) (b *char-case-length-2*)) + (if (= a b) + #f + (let* ((mid (+ a (quotient (- b a) 2))) + (vec (vector-ref *char-case-table-2* mid)) + (val (vector-ref vec 0))) + (cond ((< i val) (if (= mid b) #f (loop a mid))) + ((> i val) (if (= mid a) #f (loop mid b))) + (else (vector-ref vec off))))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; interface + +;; returns a single char +(define (char-upcase-single c) + (let ((i (char->ucs c))) + (if (< i 128) + (char-upcase c) + (or (char-map-single-case i 1) c)))) +(define (char-downcase-single c) + (let ((i (char->ucs c))) + (if (< i 128) + (char-downcase c) + (or (char-map-single-case i 2) c)))) +(define (char-titlecase-single c) + (let ((i (char->ucs c))) + (if (< i 128) + (char-upcase c) + (or (char-map-single-case i 3) c)))) + +;; may return a char or string +(define (char-downcase* c) + (or (char-map-multi-case (char->ucs c) 1) + (char-downcase-single c))) +(define (char-titlecase* c) + (or (char-map-multi-case (char->ucs c) 2) + (char-titlecase-single c))) +(define (char-upcase* c) + (or (char-map-multi-case (char->ucs c) 3) + (char-upcase-single c))) + +(define (opt? pred opt) + (and (pair? opt) (pred (car opt)))) + +(define (peek-char-is? pred) + (let ((c (peek-char))) + (and (not (eof-object? c)) + (if (char-set? pred) + (char-set-contains? pred c) + (pred c))))) + +(define (with-string-io* s thunk) + (with-output-to-string + (lambda () + (with-input-from-port (if (string? s) (open-input-string s) s) + thunk)))) + +;; takes an optional locale string +(define (upcase str . opt) + (with-string-io* str + (lambda () + (let loop ((c (read-char)) + (prev #f)) + (unless (eof-object? c) + (display + (or + (case c + ;; Turkish and Azeri + ((#\u0069) (if (opt? #/^(tr|az)/i opt) "\u0130" #\I)) + (else #f)) + (char-upcase* c))) + (loop (read-char) c)))))) + +(define (downcase str . opt) + (with-string-io* str + (lambda () + (let loop ((c (read-char)) + (prev #f)) + (unless (eof-object? c) + (display + (or + (case c + ;; Final Sigma + ((#\u03A3) (if (not (peek-char-is? char-set:greek)) #\u03C2 #\u03C3)) + ;; Lithuanian (XXXX add More_Above logic) + ((#\u00CC) (and (opt? #/^lt/i opt) "\u0069\u0307\u0300")) + ((#\u00CD) (and (opt? #/^lt/i opt) "\u0069\u0307\u0301")) + ((#\u0128) (and (opt? #/^lt/i opt) "\u0069\u0307\u0303")) + ;; Turkish and Azeri + ((#\u0130) (if (opt? #/^(tr|az)/i opt) #\u0069 "\u0069\u0307")) + ((#\u0307) (and (opt? #/^(tr|az)/i opt) "")) + ((#\u0049) (and (opt? #/^(tr|az)/i opt) #\u0131)) + (else #f)) + (char-downcase* c))) + (loop (read-char) c)))))) + +;; Note: there are some characters which define case mappings (such as +;; the circled latin letters), but which unicode doesn't consider +;; alphabetic. So the faster and more natural test for the alphabetic +;; property doesn't work, and we somewhat clumsily test whether or not +;; the characters are either upper or lowercase. +;; +;; An alternative approach is to explicitly compare the script property +;; of successive characters and start a new word when that property +;; changes. So a consecutive string of Greek letters followed +;; immediately by Latin characters would result in the first Greek +;; letter and first Latin character being uppercased, as opposed to just +;; the first Greek letter as we do now. +(define (has-case? c) + ;;(char-set-contains? char-set:alphabetic c) + (or (char-set-contains? char-set:uppercase c) + (char-set-contains? char-set:lowercase c))) + +(define (titlecase str . opt) + (with-string-io* str + (lambda () + (let loop ((c (read-char)) + (prev #f) + (in-word? #f)) + (unless (eof-object? c) + (let ((letter? (has-case? c))) + (display + (if (and letter? (not in-word?)) + ;; start of word, titlecase + (or + (case c + ;; Turkish and Azeri + ((#\u0069) (if (opt? #/^(tr|az)/i opt) "\u0130" #\I)) + (else #f)) + (char-titlecase* c)) + ;; non-word/in-word, lowercase + (or + (case c + ;; Final Sigma + ((#\u03A3) (if (not (peek-char-is? char-set:greek)) #\u03C2 #\u03C3)) + ;; Lithuanian (XXXX add More_Above logic) + ((#\u00CC) (and (opt? #/^lt/i opt) "\u0069\u0307\u0300")) + ((#\u00CD) (and (opt? #/^lt/i opt) "\u0069\u0307\u0301")) + ((#\u0128) (and (opt? #/^lt/i opt) "\u0069\u0307\u0303")) + ;; Turkish and Azeri + ((#\u0130) (if (opt? #/^(tr|az)/i opt) #\u0069 "\u0069\u0307")) + ((#\u0307) (and (opt? #/^(tr|az)/i opt) "")) + ((#\u0049) (and (opt? #/^(tr|az)/i opt) #\u0131)) + (else #f)) + (char-downcase* c)))) + (loop (read-char) c letter?))))))) + +(provide "lang/case-map") diff -urN wiliki-0.5/scheme-unicode/lib/lang/char-set.scm wiliki-0.5-case-insensitive/scheme-unicode/lib/lang/char-set.scm --- wiliki-0.5/scheme-unicode/lib/lang/char-set.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/lib/lang/char-set.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,5595 @@ +;; auto-generated on Wed Dec 24 18:03:33 2003 + +(define-module lang.char-set + (use srfi-14) + (export-all)) +(select-module lang.char-set) + +(provide "lang/char-set") + +(define char-set:arabic + (char-set-union + (ucs-range->char-set #x621 #x63B) + (ucs-range->char-set #x641 #x64B) + (ucs-range->char-set #x66E #x670) + (ucs-range->char-set #x671 #x6D4) + (char-set (ucs->char #x6D5)) + (ucs-range->char-set #x6E5 #x6E7) + (ucs-range->char-set #x6EE #x6F0) + (ucs-range->char-set #x6FA #x6FD) + (char-set (ucs->char #x6FF)) + (ucs-range->char-set #xFB50 #xFBB2) + (ucs-range->char-set #xFBD3 #xFD3E) + (ucs-range->char-set #xFD50 #xFD90) + (ucs-range->char-set #xFD92 #xFDC8) + (ucs-range->char-set #xFDF0 #xFDFC) + (ucs-range->char-set #xFE70 #xFE75) + (ucs-range->char-set #xFE76 #xFEFD) + )) + +(define char-set:armenian + (char-set-union + (ucs-range->char-set #x531 #x557) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x561 #x588) + (ucs-range->char-set #xFB13 #xFB18) + )) + +(define char-set:bengali + (char-set-union + (char-set (ucs->char #x981)) + (ucs-range->char-set #x982 #x984) + (ucs-range->char-set #x985 #x98D) + (ucs-range->char-set #x98F #x991) + (ucs-range->char-set #x993 #x9A9) + (ucs-range->char-set #x9AA #x9B1) + (char-set (ucs->char #x9B2)) + (ucs-range->char-set #x9B6 #x9BA) + (char-set (ucs->char #x9BC)) + (char-set (ucs->char #x9BD)) + (ucs-range->char-set #x9BE #x9C1) + (ucs-range->char-set #x9C1 #x9C5) + (ucs-range->char-set #x9C7 #x9C9) + (ucs-range->char-set #x9CB #x9CD) + (char-set (ucs->char #x9CD)) + (char-set (ucs->char #x9D7)) + (ucs-range->char-set #x9DC #x9DE) + (ucs-range->char-set #x9DF #x9E2) + (ucs-range->char-set #x9E2 #x9E4) + (ucs-range->char-set #x9E6 #x9F0) + (ucs-range->char-set #x9F0 #x9F2) + )) + +(define char-set:bopomofo + (char-set-union + (ucs-range->char-set #x3105 #x312D) + (ucs-range->char-set #x31A0 #x31B8) + )) + +(define char-set:braille + (char-set-union + (ucs-range->char-set #x2800 #x2900) + )) + +(define char-set:buhid + (char-set-union + (ucs-range->char-set #x1740 #x1752) + (ucs-range->char-set #x1752 #x1754) + )) + +(define char-set:canadian-aboriginal + (char-set-union + (ucs-range->char-set #x1401 #x166D) + (ucs-range->char-set #x166F #x1677) + )) + +(define char-set:cherokee + (char-set-union + (ucs-range->char-set #x13A0 #x13F5) + )) + +(define char-set:cypriot + (char-set-union + (ucs-range->char-set #x10800 #x10806) + (char-set (ucs->char #x10808)) + (ucs-range->char-set #x1080A #x10836) + (ucs-range->char-set #x10837 #x10839) + (char-set (ucs->char #x1083C)) + (char-set (ucs->char #x1083F)) + )) + +(define char-set:cyrillic + (char-set-union + (ucs-range->char-set #x400 #x482) + (ucs-range->char-set #x483 #x487) + (ucs-range->char-set #x48A #x4CF) + (ucs-range->char-set #x4D0 #x4F6) + (ucs-range->char-set #x4F8 #x4FA) + (ucs-range->char-set #x500 #x510) + (char-set (ucs->char #x1D2B)) + )) + +(define char-set:deseret + (char-set-union + (ucs-range->char-set #x10400 #x10450) + )) + +(define char-set:devanagari + (char-set-union + (ucs-range->char-set #x901 #x903) + (char-set (ucs->char #x903)) + (ucs-range->char-set #x904 #x93A) + (char-set (ucs->char #x93C)) + (char-set (ucs->char #x93D)) + (ucs-range->char-set #x93E #x941) + (ucs-range->char-set #x941 #x949) + (ucs-range->char-set #x949 #x94D) + (char-set (ucs->char #x94D)) + (char-set (ucs->char #x950)) + (ucs-range->char-set #x951 #x955) + (ucs-range->char-set #x958 #x962) + (ucs-range->char-set #x962 #x964) + (ucs-range->char-set #x966 #x970) + )) + +(define char-set:ethiopic + (char-set-union + (ucs-range->char-set #x1200 #x1207) + (ucs-range->char-set #x1208 #x1247) + (char-set (ucs->char #x1248)) + (ucs-range->char-set #x124A #x124E) + (ucs-range->char-set #x1250 #x1257) + (char-set (ucs->char #x1258)) + (ucs-range->char-set #x125A #x125E) + (ucs-range->char-set #x1260 #x1287) + (char-set (ucs->char #x1288)) + (ucs-range->char-set #x128A #x128E) + (ucs-range->char-set #x1290 #x12AF) + (char-set (ucs->char #x12B0)) + (ucs-range->char-set #x12B2 #x12B6) + (ucs-range->char-set #x12B8 #x12BF) + (char-set (ucs->char #x12C0)) + (ucs-range->char-set #x12C2 #x12C6) + (ucs-range->char-set #x12C8 #x12CF) + (ucs-range->char-set #x12D0 #x12D7) + (ucs-range->char-set #x12D8 #x12EF) + (ucs-range->char-set #x12F0 #x130F) + (char-set (ucs->char #x1310)) + (ucs-range->char-set #x1312 #x1316) + (ucs-range->char-set #x1318 #x131F) + (ucs-range->char-set #x1320 #x1347) + (ucs-range->char-set #x1348 #x135B) + (ucs-range->char-set #x1369 #x1372) + (ucs-range->char-set #x1372 #x137D) + )) + +(define char-set:georgian + (char-set-union + (ucs-range->char-set #x10A0 #x10C6) + (ucs-range->char-set #x10D0 #x10F9) + )) + +(define char-set:gothic + (char-set-union + (ucs-range->char-set #x10330 #x1034A) + (char-set (ucs->char #x1034A)) + )) + +(define char-set:greek + (char-set-union + (char-set (ucs->char #xB5)) + (char-set (ucs->char #x37A)) + (char-set (ucs->char #x386)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x3A2) + (ucs-range->char-set #x3A3 #x3CF) + (ucs-range->char-set #x3D0 #x3F6) + (ucs-range->char-set #x3F7 #x3FC) + (ucs-range->char-set #x1D26 #x1D2B) + (ucs-range->char-set #x1D5D #x1D62) + (ucs-range->char-set #x1D66 #x1D6B) + (ucs-range->char-set #x1F00 #x1F16) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F20 #x1F46) + (ucs-range->char-set #x1F48 #x1F4E) + (ucs-range->char-set #x1F50 #x1F58) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (ucs-range->char-set #x1F5F #x1F7E) + (ucs-range->char-set #x1F80 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FBD) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FCD) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FDC) + (ucs-range->char-set #x1FE0 #x1FED) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FFD) + (char-set (ucs->char #x2126)) + )) + +(define char-set:gujarati + (char-set-union + (ucs-range->char-set #xA81 #xA83) + (char-set (ucs->char #xA83)) + (ucs-range->char-set #xA85 #xA8E) + (ucs-range->char-set #xA8F #xA92) + (ucs-range->char-set #xA93 #xAA9) + (ucs-range->char-set #xAAA #xAB1) + (ucs-range->char-set #xAB2 #xAB4) + (ucs-range->char-set #xAB5 #xABA) + (char-set (ucs->char #xABC)) + (char-set (ucs->char #xABD)) + (ucs-range->char-set #xABE #xAC1) + (ucs-range->char-set #xAC1 #xAC6) + (ucs-range->char-set #xAC7 #xAC9) + (char-set (ucs->char #xAC9)) + (ucs-range->char-set #xACB #xACD) + (char-set (ucs->char #xACD)) + (char-set (ucs->char #xAD0)) + (ucs-range->char-set #xAE0 #xAE2) + (ucs-range->char-set #xAE2 #xAE4) + (ucs-range->char-set #xAE6 #xAF0) + )) + +(define char-set:gurmukhi + (char-set-union + (char-set (ucs->char #xA02)) + (char-set (ucs->char #xA03)) + (ucs-range->char-set #xA05 #xA0B) + (ucs-range->char-set #xA0F #xA11) + (ucs-range->char-set #xA13 #xA29) + (ucs-range->char-set #xA2A #xA31) + (ucs-range->char-set #xA32 #xA34) + (ucs-range->char-set #xA35 #xA37) + (ucs-range->char-set #xA38 #xA3A) + (char-set (ucs->char #xA3C)) + (ucs-range->char-set #xA3E #xA41) + (ucs-range->char-set #xA41 #xA43) + (ucs-range->char-set #xA47 #xA49) + (ucs-range->char-set #xA4B #xA4E) + (ucs-range->char-set #xA59 #xA5D) + (char-set (ucs->char #xA5E)) + (ucs-range->char-set #xA66 #xA70) + (ucs-range->char-set #xA70 #xA72) + (ucs-range->char-set #xA72 #xA75) + )) + +(define char-set:han + (char-set-union + (ucs-range->char-set #x2E80 #x2E9A) + (ucs-range->char-set #x2E9B #x2EF4) + (ucs-range->char-set #x2F00 #x2FD6) + (char-set (ucs->char #x3005)) + (char-set (ucs->char #x3007)) + (ucs-range->char-set #x3021 #x302A) + (ucs-range->char-set #x3038 #x303B) + (char-set (ucs->char #x303B)) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #xFA30 #xFA6B) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + )) + +(define char-set:hangul + (char-set-union + (ucs-range->char-set #x1100 #x115A) + (ucs-range->char-set #x115F #x11A3) + (ucs-range->char-set #x11A8 #x11FA) + (ucs-range->char-set #x3131 #x318F) + (ucs-range->char-set #xAC00 #xD7A4) + (ucs-range->char-set #xFFA0 #xFFBF) + (ucs-range->char-set #xFFC2 #xFFC8) + (ucs-range->char-set #xFFCA #xFFD0) + (ucs-range->char-set #xFFD2 #xFFD8) + (ucs-range->char-set #xFFDA #xFFDD) + )) + +(define char-set:hanunoo + (char-set-union + (ucs-range->char-set #x1720 #x1732) + (ucs-range->char-set #x1732 #x1735) + )) + +(define char-set:hebrew + (char-set-union + (ucs-range->char-set #x5D0 #x5EB) + (ucs-range->char-set #x5F0 #x5F3) + (char-set (ucs->char #xFB1D)) + (ucs-range->char-set #xFB1F #xFB29) + (ucs-range->char-set #xFB2A #xFB37) + (ucs-range->char-set #xFB38 #xFB3D) + (char-set (ucs->char #xFB3E)) + (ucs-range->char-set #xFB40 #xFB42) + (ucs-range->char-set #xFB43 #xFB45) + (ucs-range->char-set #xFB46 #xFB50) + )) + +(define char-set:hiragana + (char-set-union + (ucs-range->char-set #x3041 #x3097) + (ucs-range->char-set #x309D #x309F) + (char-set (ucs->char #x309F)) + )) + +(define char-set:inherited + (char-set-union + (ucs-range->char-set #x300 #x350) + (ucs-range->char-set #x360 #x370) + (ucs-range->char-set #x488 #x48A) + (ucs-range->char-set #x591 #x5A2) + (ucs-range->char-set #x5A3 #x5BA) + (ucs-range->char-set #x5BB #x5BE) + (char-set (ucs->char #x5BF)) + (ucs-range->char-set #x5C1 #x5C3) + (char-set (ucs->char #x5C4)) + (ucs-range->char-set #x64B #x656) + (char-set (ucs->char #x670)) + (ucs-range->char-set #x6D6 #x6DD) + (char-set (ucs->char #x6DD)) + (char-set (ucs->char #x6DE)) + (ucs-range->char-set #x6DF #x6E5) + (ucs-range->char-set #x6E7 #x6E9) + (ucs-range->char-set #x6EA #x6EE) + (ucs-range->char-set #x180B #x180E) + (ucs-range->char-set #x20D0 #x20DD) + (ucs-range->char-set #x20DD #x20E1) + (char-set (ucs->char #x20E1)) + (ucs-range->char-set #x20E2 #x20E5) + (ucs-range->char-set #x20E5 #x20EB) + (ucs-range->char-set #x302A #x3030) + (ucs-range->char-set #x3099 #x309B) + (char-set (ucs->char #xFB1E)) + (ucs-range->char-set #xFE00 #xFE10) + (ucs-range->char-set #xFE20 #xFE24) + (ucs-range->char-set #x1D167 #x1D16A) + (ucs-range->char-set #x1D17B #x1D183) + (ucs-range->char-set #x1D185 #x1D18C) + (ucs-range->char-set #x1D1AA #x1D1AE) + )) + +(define char-set:kannada + (char-set-union + (ucs-range->char-set #xC82 #xC84) + (ucs-range->char-set #xC85 #xC8D) + (ucs-range->char-set #xC8E #xC91) + (ucs-range->char-set #xC92 #xCA9) + (ucs-range->char-set #xCAA #xCB4) + (ucs-range->char-set #xCB5 #xCBA) + (char-set (ucs->char #xCBD)) + (char-set (ucs->char #xCBE)) + (char-set (ucs->char #xCBF)) + (ucs-range->char-set #xCC0 #xCC5) + (char-set (ucs->char #xCC6)) + (ucs-range->char-set #xCC7 #xCC9) + (ucs-range->char-set #xCCA #xCCC) + (ucs-range->char-set #xCCC #xCCE) + (ucs-range->char-set #xCD5 #xCD7) + (char-set (ucs->char #xCDE)) + (ucs-range->char-set #xCE0 #xCE2) + (ucs-range->char-set #xCE6 #xCF0) + )) + +(define char-set:katakana + (char-set-union + (ucs-range->char-set #x30A1 #x30FB) + (ucs-range->char-set #x30FD #x30FF) + (char-set (ucs->char #x30FF)) + (ucs-range->char-set #x31F0 #x3200) + (ucs-range->char-set #xFF66 #xFF70) + (ucs-range->char-set #xFF71 #xFF9E) + )) + +(define char-set:khmer + (char-set-union + (ucs-range->char-set #x1780 #x17B4) + (ucs-range->char-set #x17B4 #x17B6) + (char-set (ucs->char #x17B6)) + (ucs-range->char-set #x17B7 #x17BE) + (ucs-range->char-set #x17BE #x17C6) + (char-set (ucs->char #x17C6)) + (ucs-range->char-set #x17C7 #x17C9) + (ucs-range->char-set #x17C9 #x17D4) + (ucs-range->char-set #x17E0 #x17EA) + )) + +(define char-set:lao + (char-set-union + (ucs-range->char-set #xE81 #xE83) + (char-set (ucs->char #xE84)) + (ucs-range->char-set #xE87 #xE89) + (char-set (ucs->char #xE8A)) + (char-set (ucs->char #xE8D)) + (ucs-range->char-set #xE94 #xE98) + (ucs-range->char-set #xE99 #xEA0) + (ucs-range->char-set #xEA1 #xEA4) + (char-set (ucs->char #xEA5)) + (char-set (ucs->char #xEA7)) + (ucs-range->char-set #xEAA #xEAC) + (ucs-range->char-set #xEAD #xEB1) + (char-set (ucs->char #xEB1)) + (ucs-range->char-set #xEB2 #xEB4) + (ucs-range->char-set #xEB4 #xEBA) + (ucs-range->char-set #xEBB #xEBD) + (char-set (ucs->char #xEBD)) + (ucs-range->char-set #xEC0 #xEC5) + (char-set (ucs->char #xEC6)) + (ucs-range->char-set #xEC8 #xECE) + (ucs-range->char-set #xED0 #xEDA) + (ucs-range->char-set #xEDC #xEDE) + )) + +(define char-set:latin + (char-set-union + (ucs-range->char-set #x41 #x5B) + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xBA)) + (ucs-range->char-set #xC0 #xD7) + (ucs-range->char-set #xD8 #xF7) + (ucs-range->char-set #xF8 #x1BB) + (char-set (ucs->char #x1BB)) + (ucs-range->char-set #x1BC #x1C0) + (ucs-range->char-set #x1C0 #x1C4) + (ucs-range->char-set #x1C4 #x237) + (ucs-range->char-set #x250 #x2B0) + (ucs-range->char-set #x2B0 #x2B9) + (ucs-range->char-set #x2E0 #x2E5) + (ucs-range->char-set #x1D00 #x1D26) + (ucs-range->char-set #x1D2C #x1D5D) + (ucs-range->char-set #x1D62 #x1D66) + (char-set (ucs->char #x1D6B)) + (ucs-range->char-set #x1E00 #x1E9C) + (ucs-range->char-set #x1EA0 #x1EFA) + (char-set (ucs->char #x2071)) + (char-set (ucs->char #x207F)) + (ucs-range->char-set #x212A #x212C) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFF21 #xFF3B) + (ucs-range->char-set #xFF41 #xFF5B) + )) + +(define char-set:limbu + (char-set-union + (ucs-range->char-set #x1900 #x191D) + (ucs-range->char-set #x1920 #x1923) + (ucs-range->char-set #x1923 #x1927) + (ucs-range->char-set #x1927 #x1929) + (ucs-range->char-set #x1929 #x192C) + (ucs-range->char-set #x1930 #x1932) + (char-set (ucs->char #x1932)) + (ucs-range->char-set #x1933 #x1939) + (ucs-range->char-set #x1939 #x193C) + (ucs-range->char-set #x1946 #x1950) + )) + +(define char-set:linear-b + (char-set-union + (ucs-range->char-set #x10000 #x1000C) + (ucs-range->char-set #x1000D #x10027) + (ucs-range->char-set #x10028 #x1003B) + (ucs-range->char-set #x1003C #x1003E) + (ucs-range->char-set #x1003F #x1004E) + (ucs-range->char-set #x10050 #x1005E) + (ucs-range->char-set #x10080 #x100FB) + )) + +(define char-set:malayalam + (char-set-union + (ucs-range->char-set #xD02 #xD04) + (ucs-range->char-set #xD05 #xD0D) + (ucs-range->char-set #xD0E #xD11) + (ucs-range->char-set #xD12 #xD29) + (ucs-range->char-set #xD2A #xD3A) + (ucs-range->char-set #xD3E #xD41) + (ucs-range->char-set #xD41 #xD44) + (ucs-range->char-set #xD46 #xD49) + (ucs-range->char-set #xD4A #xD4D) + (char-set (ucs->char #xD4D)) + (char-set (ucs->char #xD57)) + (ucs-range->char-set #xD60 #xD62) + (ucs-range->char-set #xD66 #xD70) + )) + +(define char-set:mongolian + (char-set-union + (ucs-range->char-set #x1810 #x181A) + (ucs-range->char-set #x1820 #x1843) + (char-set (ucs->char #x1843)) + (ucs-range->char-set #x1844 #x1878) + (ucs-range->char-set #x1880 #x18A9) + (char-set (ucs->char #x18A9)) + )) + +(define char-set:myanmar + (char-set-union + (ucs-range->char-set #x1000 #x1022) + (ucs-range->char-set #x1023 #x1028) + (ucs-range->char-set #x1029 #x102B) + (char-set (ucs->char #x102C)) + (ucs-range->char-set #x102D #x1031) + (char-set (ucs->char #x1031)) + (char-set (ucs->char #x1032)) + (ucs-range->char-set #x1036 #x1038) + (char-set (ucs->char #x1038)) + (char-set (ucs->char #x1039)) + (ucs-range->char-set #x1040 #x104A) + (ucs-range->char-set #x1050 #x1056) + (ucs-range->char-set #x1056 #x1058) + (ucs-range->char-set #x1058 #x105A) + )) + +(define char-set:ogham + (char-set-union + (ucs-range->char-set #x1681 #x169B) + )) + +(define char-set:old-italic + (char-set-union + (ucs-range->char-set #x10300 #x1031F) + )) + +(define char-set:oriya + (char-set-union + (char-set (ucs->char #xB01)) + (ucs-range->char-set #xB02 #xB04) + (ucs-range->char-set #xB05 #xB0D) + (ucs-range->char-set #xB0F #xB11) + (ucs-range->char-set #xB13 #xB29) + (ucs-range->char-set #xB2A #xB31) + (ucs-range->char-set #xB32 #xB34) + (ucs-range->char-set #xB35 #xB3A) + (char-set (ucs->char #xB3C)) + (char-set (ucs->char #xB3D)) + (char-set (ucs->char #xB3E)) + (char-set (ucs->char #xB3F)) + (char-set (ucs->char #xB40)) + (ucs-range->char-set #xB41 #xB44) + (ucs-range->char-set #xB47 #xB49) + (ucs-range->char-set #xB4B #xB4D) + (char-set (ucs->char #xB4D)) + (char-set (ucs->char #xB56)) + (char-set (ucs->char #xB57)) + (ucs-range->char-set #xB5C #xB5E) + (ucs-range->char-set #xB5F #xB62) + (ucs-range->char-set #xB66 #xB70) + (char-set (ucs->char #xB71)) + )) + +(define char-set:osmanya + (char-set-union + (ucs-range->char-set #x10480 #x1049E) + (ucs-range->char-set #x104A0 #x104AA) + )) + +(define char-set:runic + (char-set-union + (ucs-range->char-set #x16A0 #x16EB) + (ucs-range->char-set #x16EE #x16F1) + )) + +(define char-set:shavian + (char-set-union + (ucs-range->char-set #x10450 #x10480) + )) + +(define char-set:sinhala + (char-set-union + (ucs-range->char-set #xD82 #xD84) + (ucs-range->char-set #xD85 #xD97) + (ucs-range->char-set #xD9A #xDB2) + (ucs-range->char-set #xDB3 #xDBC) + (char-set (ucs->char #xDBD)) + (ucs-range->char-set #xDC0 #xDC7) + (char-set (ucs->char #xDCA)) + (ucs-range->char-set #xDCF #xDD2) + (ucs-range->char-set #xDD2 #xDD5) + (char-set (ucs->char #xDD6)) + (ucs-range->char-set #xDD8 #xDE0) + (ucs-range->char-set #xDF2 #xDF4) + )) + +(define char-set:syriac + (char-set-union + (char-set (ucs->char #x710)) + (char-set (ucs->char #x711)) + (ucs-range->char-set #x712 #x730) + (ucs-range->char-set #x730 #x74B) + (ucs-range->char-set #x74D #x750) + )) + +(define char-set:tagalog + (char-set-union + (ucs-range->char-set #x1700 #x170D) + (ucs-range->char-set #x170E #x1712) + (ucs-range->char-set #x1712 #x1715) + )) + +(define char-set:tagbanwa + (char-set-union + (ucs-range->char-set #x1760 #x176D) + (ucs-range->char-set #x176E #x1771) + (ucs-range->char-set #x1772 #x1774) + )) + +(define char-set:tai-le + (char-set-union + (ucs-range->char-set #x1950 #x196E) + (ucs-range->char-set #x1970 #x1975) + )) + +(define char-set:tamil + (char-set-union + (char-set (ucs->char #xB82)) + (char-set (ucs->char #xB83)) + (ucs-range->char-set #xB85 #xB8B) + (ucs-range->char-set #xB8E #xB91) + (ucs-range->char-set #xB92 #xB96) + (ucs-range->char-set #xB99 #xB9B) + (char-set (ucs->char #xB9C)) + (ucs-range->char-set #xB9E #xBA0) + (ucs-range->char-set #xBA3 #xBA5) + (ucs-range->char-set #xBA8 #xBAB) + (ucs-range->char-set #xBAE #xBB6) + (ucs-range->char-set #xBB7 #xBBA) + (ucs-range->char-set #xBBE #xBC0) + (char-set (ucs->char #xBC0)) + (ucs-range->char-set #xBC1 #xBC3) + (ucs-range->char-set #xBC6 #xBC9) + (ucs-range->char-set #xBCA #xBCD) + (char-set (ucs->char #xBCD)) + (char-set (ucs->char #xBD7)) + (ucs-range->char-set #xBE7 #xBF0) + (ucs-range->char-set #xBF0 #xBF3) + )) + +(define char-set:telugu + (char-set-union + (ucs-range->char-set #xC01 #xC04) + (ucs-range->char-set #xC05 #xC0D) + (ucs-range->char-set #xC0E #xC11) + (ucs-range->char-set #xC12 #xC29) + (ucs-range->char-set #xC2A #xC34) + (ucs-range->char-set #xC35 #xC3A) + (ucs-range->char-set #xC3E #xC41) + (ucs-range->char-set #xC41 #xC45) + (ucs-range->char-set #xC46 #xC49) + (ucs-range->char-set #xC4A #xC4E) + (ucs-range->char-set #xC55 #xC57) + (ucs-range->char-set #xC60 #xC62) + (ucs-range->char-set #xC66 #xC70) + )) + +(define char-set:thaana + (char-set-union + (ucs-range->char-set #x780 #x7A6) + (ucs-range->char-set #x7A6 #x7B1) + (char-set (ucs->char #x7B1)) + )) + +(define char-set:thai + (char-set-union + (ucs-range->char-set #xE01 #xE31) + (char-set (ucs->char #xE31)) + (ucs-range->char-set #xE32 #xE34) + (ucs-range->char-set #xE34 #xE3B) + (ucs-range->char-set #xE40 #xE46) + (char-set (ucs->char #xE46)) + (ucs-range->char-set #xE47 #xE4F) + (ucs-range->char-set #xE50 #xE5A) + )) + +(define char-set:tibetan + (char-set-union + (char-set (ucs->char #xF00)) + (ucs-range->char-set #xF18 #xF1A) + (ucs-range->char-set #xF20 #xF2A) + (ucs-range->char-set #xF2A #xF34) + (char-set (ucs->char #xF35)) + (char-set (ucs->char #xF37)) + (char-set (ucs->char #xF39)) + (ucs-range->char-set #xF40 #xF48) + (ucs-range->char-set #xF49 #xF6B) + (ucs-range->char-set #xF71 #xF7F) + (char-set (ucs->char #xF7F)) + (ucs-range->char-set #xF80 #xF85) + (ucs-range->char-set #xF86 #xF88) + (ucs-range->char-set #xF88 #xF8C) + (ucs-range->char-set #xF90 #xF98) + (ucs-range->char-set #xF99 #xFBD) + (char-set (ucs->char #xFC6)) + )) + +(define char-set:ugaritic + (char-set-union + (ucs-range->char-set #x10380 #x1039E) + )) + +(define char-set:yi + (char-set-union + (ucs-range->char-set #xA000 #xA48D) + (ucs-range->char-set #xA490 #xA4C7) + )) + +(define char-set:common + (char-set-complement + (char-set-union + char-set:arabic + char-set:armenian + char-set:bengali + char-set:bopomofo + char-set:braille + char-set:buhid + char-set:canadian-aboriginal + char-set:cherokee + char-set:cypriot + char-set:cyrillic + char-set:deseret + char-set:devanagari + char-set:ethiopic + char-set:georgian + char-set:gothic + char-set:greek + char-set:gujarati + char-set:gurmukhi + char-set:han + char-set:hangul + char-set:hanunoo + char-set:hebrew + char-set:hiragana + char-set:inherited + char-set:kannada + char-set:katakana + char-set:khmer + char-set:lao + char-set:latin + char-set:limbu + char-set:linear-b + char-set:malayalam + char-set:mongolian + char-set:myanmar + char-set:ogham + char-set:old-italic + char-set:oriya + char-set:osmanya + char-set:runic + char-set:shavian + char-set:sinhala + char-set:syriac + char-set:tagalog + char-set:tagbanwa + char-set:tai-le + char-set:tamil + char-set:telugu + char-set:thaana + char-set:thai + char-set:tibetan + char-set:ugaritic + char-set:yi + ))) + +(define char-set:ascii-hex-digit + (char-set-union + (ucs-range->char-set #x30 #x3A) + (ucs-range->char-set #x41 #x47) + (ucs-range->char-set #x61 #x67) + )) + +(define char-set:bidi-control + (char-set-union + (ucs-range->char-set #x200E #x2010) + (ucs-range->char-set #x202A #x202F) + )) + +(define char-set:dash + (char-set-union + (char-set (ucs->char #x2D)) + (char-set (ucs->char #x58A)) + (char-set (ucs->char #x1806)) + (ucs-range->char-set #x2010 #x2016) + (char-set (ucs->char #x2053)) + (char-set (ucs->char #x207B)) + (char-set (ucs->char #x208B)) + (char-set (ucs->char #x2212)) + (char-set (ucs->char #x301C)) + (char-set (ucs->char #x3030)) + (ucs-range->char-set #xFE31 #xFE33) + (char-set (ucs->char #xFE58)) + (char-set (ucs->char #xFE63)) + (char-set (ucs->char #xFF0D)) + )) + +(define char-set:deprecated + (char-set-union + (ucs-range->char-set #x340 #x342) + (char-set (ucs->char #x17A3)) + (char-set (ucs->char #x17D3)) + (ucs-range->char-set #x206A #x2070) + )) + +(define char-set:diacritic + (char-set-union + (char-set (ucs->char #x5E)) + (char-set (ucs->char #x60)) + (char-set (ucs->char #xA8)) + (char-set (ucs->char #xAF)) + (char-set (ucs->char #xB4)) + (char-set (ucs->char #xB7)) + (char-set (ucs->char #xB8)) + (ucs-range->char-set #x2B0 #x2C2) + (ucs-range->char-set #x2C2 #x2C6) + (ucs-range->char-set #x2C6 #x2D2) + (ucs-range->char-set #x2D2 #x2E0) + (ucs-range->char-set #x2E0 #x2E5) + (ucs-range->char-set #x2E5 #x2EE) + (char-set (ucs->char #x2EE)) + (ucs-range->char-set #x2EF #x300) + (ucs-range->char-set #x300 #x34F) + (ucs-range->char-set #x350 #x358) + (ucs-range->char-set #x35D #x363) + (ucs-range->char-set #x374 #x376) + (char-set (ucs->char #x37A)) + (ucs-range->char-set #x384 #x386) + (ucs-range->char-set #x483 #x487) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x591 #x5A2) + (ucs-range->char-set #x5A3 #x5BA) + (ucs-range->char-set #x5BB #x5BE) + (char-set (ucs->char #x5BF)) + (ucs-range->char-set #x5C1 #x5C3) + (char-set (ucs->char #x5C4)) + (ucs-range->char-set #x64B #x653) + (ucs-range->char-set #x657 #x659) + (ucs-range->char-set #x6DF #x6E1) + (ucs-range->char-set #x6E5 #x6E7) + (ucs-range->char-set #x6EA #x6ED) + (ucs-range->char-set #x730 #x74B) + (ucs-range->char-set #x7A6 #x7B1) + (char-set (ucs->char #x93C)) + (char-set (ucs->char #x94D)) + (ucs-range->char-set #x951 #x955) + (char-set (ucs->char #x9BC)) + (char-set (ucs->char #x9CD)) + (char-set (ucs->char #xA3C)) + (char-set (ucs->char #xA4D)) + (char-set (ucs->char #xABC)) + (char-set (ucs->char #xACD)) + (char-set (ucs->char #xB3C)) + (char-set (ucs->char #xB4D)) + (char-set (ucs->char #xBCD)) + (char-set (ucs->char #xC4D)) + (char-set (ucs->char #xCBC)) + (char-set (ucs->char #xCCD)) + (char-set (ucs->char #xD4D)) + (char-set (ucs->char #xDCA)) + (ucs-range->char-set #xE47 #xE4D) + (char-set (ucs->char #xE4E)) + (ucs-range->char-set #xEC8 #xECD) + (ucs-range->char-set #xF18 #xF1A) + (char-set (ucs->char #xF35)) + (char-set (ucs->char #xF37)) + (char-set (ucs->char #xF39)) + (ucs-range->char-set #xF3E #xF40) + (ucs-range->char-set #xF82 #xF85) + (ucs-range->char-set #xF86 #xF88) + (char-set (ucs->char #xFC6)) + (char-set (ucs->char #x1037)) + (char-set (ucs->char #x1039)) + (ucs-range->char-set #x17C9 #x17D4) + (char-set (ucs->char #x17DD)) + (ucs-range->char-set #x1939 #x193C) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x1D62 #x1D6B) + (char-set (ucs->char #x1FBD)) + (ucs-range->char-set #x1FBF #x1FC2) + (ucs-range->char-set #x1FCD #x1FD0) + (ucs-range->char-set #x1FDD #x1FE0) + (ucs-range->char-set #x1FED #x1FF0) + (ucs-range->char-set #x1FFD #x1FFF) + (ucs-range->char-set #x302A #x3030) + (ucs-range->char-set #x3099 #x309B) + (ucs-range->char-set #x309B #x309D) + (char-set (ucs->char #x30FC)) + (char-set (ucs->char #xFB1E)) + (ucs-range->char-set #xFE20 #xFE24) + (char-set (ucs->char #xFF3E)) + (char-set (ucs->char #xFF40)) + (char-set (ucs->char #xFF70)) + (ucs-range->char-set #xFF9E #xFFA0) + (char-set (ucs->char #xFFE3)) + (ucs-range->char-set #x1D167 #x1D16A) + (ucs-range->char-set #x1D16D #x1D173) + (ucs-range->char-set #x1D17B #x1D183) + (ucs-range->char-set #x1D185 #x1D18C) + (ucs-range->char-set #x1D1AA #x1D1AE) + )) + +(define char-set:extender + (char-set-union + (char-set (ucs->char #xB7)) + (ucs-range->char-set #x2D0 #x2D2) + (char-set (ucs->char #x640)) + (char-set (ucs->char #xE46)) + (char-set (ucs->char #xEC6)) + (char-set (ucs->char #x1843)) + (char-set (ucs->char #x3005)) + (ucs-range->char-set #x3031 #x3036) + (ucs-range->char-set #x309D #x309F) + (ucs-range->char-set #x30FC #x30FF) + (char-set (ucs->char #xFF70)) + )) + +(define char-set:grapheme-link + (char-set-union + (char-set (ucs->char #x34F)) + (char-set (ucs->char #x94D)) + (char-set (ucs->char #x9CD)) + (char-set (ucs->char #xA4D)) + (char-set (ucs->char #xACD)) + (char-set (ucs->char #xB4D)) + (char-set (ucs->char #xBCD)) + (char-set (ucs->char #xC4D)) + (char-set (ucs->char #xCCD)) + (char-set (ucs->char #xD4D)) + (char-set (ucs->char #xDCA)) + (char-set (ucs->char #xE3A)) + (char-set (ucs->char #x1039)) + (char-set (ucs->char #x17D2)) + )) + +(define char-set:hex-digit + (char-set-union + (ucs-range->char-set #x30 #x3A) + (ucs-range->char-set #x41 #x47) + (ucs-range->char-set #x61 #x67) + (ucs-range->char-set #xFF10 #xFF1A) + (ucs-range->char-set #xFF21 #xFF27) + (ucs-range->char-set #xFF41 #xFF47) + )) + +(define char-set:hyphen + (char-set-union + (char-set (ucs->char #x2D)) + (char-set (ucs->char #xAD)) + (char-set (ucs->char #x58A)) + (char-set (ucs->char #x1806)) + (ucs-range->char-set #x2010 #x2012) + (char-set (ucs->char #x30FB)) + (char-set (ucs->char #xFE63)) + (char-set (ucs->char #xFF0D)) + (char-set (ucs->char #xFF65)) + )) + +(define char-set:ideographic + (char-set-union + (char-set (ucs->char #x3006)) + (char-set (ucs->char #x3007)) + (ucs-range->char-set #x3021 #x302A) + (ucs-range->char-set #x3038 #x303B) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + )) + +(define char-set:ids-binary-operator + (char-set-union + (ucs-range->char-set #x2FF0 #x2FF2) + (ucs-range->char-set #x2FF4 #x2FFC) + )) + +(define char-set:ids-trinary-operator + (char-set-union + (ucs-range->char-set #x2FF2 #x2FF4) + )) + +(define char-set:join-control + (char-set-union + (ucs-range->char-set #x200C #x200E) + )) + +(define char-set:logical-order-exception + (char-set-union + (ucs-range->char-set #xE40 #xE45) + (ucs-range->char-set #xEC0 #xEC5) + )) + +(define char-set:noncharacter-code-point + (char-set-union + (ucs-range->char-set #xFDD0 #xFDF0) + (ucs-range->char-set #xFFFE #x10000) + (ucs-range->char-set #x1FFFE #x20000) + (ucs-range->char-set #x2FFFE #x30000) + (ucs-range->char-set #x3FFFE #x40000) + (ucs-range->char-set #x4FFFE #x50000) + (ucs-range->char-set #x5FFFE #x60000) + (ucs-range->char-set #x6FFFE #x70000) + (ucs-range->char-set #x7FFFE #x80000) + (ucs-range->char-set #x8FFFE #x90000) + (ucs-range->char-set #x9FFFE #xA0000) + (ucs-range->char-set #xAFFFE #xB0000) + (ucs-range->char-set #xBFFFE #xC0000) + (ucs-range->char-set #xCFFFE #xD0000) + (ucs-range->char-set #xDFFFE #xE0000) + (ucs-range->char-set #xEFFFE #xF0000) + (ucs-range->char-set #xFFFFE #x100000) + (ucs-range->char-set #x10FFFE #x110000) + )) + +(define char-set:other-alphabetic + (char-set-union + (char-set (ucs->char #x345)) + (ucs-range->char-set #x5B0 #x5BA) + (ucs-range->char-set #x5BB #x5BE) + (char-set (ucs->char #x5BF)) + (ucs-range->char-set #x5C1 #x5C3) + (char-set (ucs->char #x5C4)) + (ucs-range->char-set #x610 #x616) + (ucs-range->char-set #x64B #x658) + (char-set (ucs->char #x670)) + (ucs-range->char-set #x6D6 #x6DD) + (ucs-range->char-set #x6E1 #x6E5) + (ucs-range->char-set #x6E7 #x6E9) + (char-set (ucs->char #x6ED)) + (char-set (ucs->char #x711)) + (ucs-range->char-set #x730 #x740) + (ucs-range->char-set #x7A6 #x7B1) + (ucs-range->char-set #x901 #x903) + (char-set (ucs->char #x903)) + (ucs-range->char-set #x93E #x941) + (ucs-range->char-set #x941 #x949) + (ucs-range->char-set #x949 #x94D) + (ucs-range->char-set #x962 #x964) + (char-set (ucs->char #x981)) + (ucs-range->char-set #x982 #x984) + (ucs-range->char-set #x9BE #x9C1) + (ucs-range->char-set #x9C1 #x9C5) + (ucs-range->char-set #x9C7 #x9C9) + (ucs-range->char-set #x9CB #x9CD) + (char-set (ucs->char #x9D7)) + (ucs-range->char-set #x9E2 #x9E4) + (ucs-range->char-set #xA01 #xA03) + (char-set (ucs->char #xA03)) + (ucs-range->char-set #xA3E #xA41) + (ucs-range->char-set #xA41 #xA43) + (ucs-range->char-set #xA47 #xA49) + (ucs-range->char-set #xA4B #xA4D) + (ucs-range->char-set #xA70 #xA72) + (ucs-range->char-set #xA81 #xA83) + (char-set (ucs->char #xA83)) + (ucs-range->char-set #xABE #xAC1) + (ucs-range->char-set #xAC1 #xAC6) + (ucs-range->char-set #xAC7 #xAC9) + (char-set (ucs->char #xAC9)) + (ucs-range->char-set #xACB #xACD) + (ucs-range->char-set #xAE2 #xAE4) + (char-set (ucs->char #xB01)) + (ucs-range->char-set #xB02 #xB04) + (char-set (ucs->char #xB3E)) + (char-set (ucs->char #xB3F)) + (char-set (ucs->char #xB40)) + (ucs-range->char-set #xB41 #xB44) + (ucs-range->char-set #xB47 #xB49) + (ucs-range->char-set #xB4B #xB4D) + (char-set (ucs->char #xB56)) + (char-set (ucs->char #xB57)) + (char-set (ucs->char #xB82)) + (ucs-range->char-set #xBBE #xBC0) + (char-set (ucs->char #xBC0)) + (ucs-range->char-set #xBC1 #xBC3) + (ucs-range->char-set #xBC6 #xBC9) + (ucs-range->char-set #xBCA #xBCD) + (char-set (ucs->char #xBD7)) + (ucs-range->char-set #xC01 #xC04) + (ucs-range->char-set #xC3E #xC41) + (ucs-range->char-set #xC41 #xC45) + (ucs-range->char-set #xC46 #xC49) + (ucs-range->char-set #xC4A #xC4D) + (ucs-range->char-set #xC55 #xC57) + (ucs-range->char-set #xC82 #xC84) + (char-set (ucs->char #xCBE)) + (char-set (ucs->char #xCBF)) + (ucs-range->char-set #xCC0 #xCC5) + (char-set (ucs->char #xCC6)) + (ucs-range->char-set #xCC7 #xCC9) + (ucs-range->char-set #xCCA #xCCC) + (char-set (ucs->char #xCCC)) + (ucs-range->char-set #xCD5 #xCD7) + (ucs-range->char-set #xD02 #xD04) + (ucs-range->char-set #xD3E #xD41) + (ucs-range->char-set #xD41 #xD44) + (ucs-range->char-set #xD46 #xD49) + (ucs-range->char-set #xD4A #xD4D) + (char-set (ucs->char #xD57)) + (ucs-range->char-set #xD82 #xD84) + (ucs-range->char-set #xDCF #xDD2) + (ucs-range->char-set #xDD2 #xDD5) + (char-set (ucs->char #xDD6)) + (ucs-range->char-set #xDD8 #xDE0) + (ucs-range->char-set #xDF2 #xDF4) + (char-set (ucs->char #xE31)) + (ucs-range->char-set #xE34 #xE3B) + (char-set (ucs->char #xE4D)) + (char-set (ucs->char #xEB1)) + (ucs-range->char-set #xEB4 #xEBA) + (ucs-range->char-set #xEBB #xEBD) + (char-set (ucs->char #xECD)) + (ucs-range->char-set #xF71 #xF7F) + (char-set (ucs->char #xF7F)) + (ucs-range->char-set #xF80 #xF82) + (ucs-range->char-set #xF90 #xF98) + (ucs-range->char-set #xF99 #xFBD) + (char-set (ucs->char #x102C)) + (ucs-range->char-set #x102D #x1031) + (char-set (ucs->char #x1031)) + (char-set (ucs->char #x1032)) + (char-set (ucs->char #x1036)) + (char-set (ucs->char #x1038)) + (ucs-range->char-set #x1056 #x1058) + (ucs-range->char-set #x1058 #x105A) + (ucs-range->char-set #x16EE #x16F1) + (ucs-range->char-set #x1712 #x1714) + (ucs-range->char-set #x1732 #x1734) + (ucs-range->char-set #x1752 #x1754) + (ucs-range->char-set #x1772 #x1774) + (char-set (ucs->char #x17B6)) + (ucs-range->char-set #x17B7 #x17BE) + (ucs-range->char-set #x17BE #x17C6) + (char-set (ucs->char #x17C6)) + (ucs-range->char-set #x17C7 #x17C9) + (char-set (ucs->char #x18A9)) + (ucs-range->char-set #x1920 #x1923) + (ucs-range->char-set #x1923 #x1927) + (ucs-range->char-set #x1927 #x1929) + (ucs-range->char-set #x1929 #x192C) + (ucs-range->char-set #x1930 #x1932) + (char-set (ucs->char #x1932)) + (ucs-range->char-set #x1933 #x1939) + (ucs-range->char-set #x2160 #x2184) + (char-set (ucs->char #xFB1E)) + (char-set (ucs->char #x1034A)) + )) + +(define char-set:other-default-ignorable-code-point + (char-set-union + (char-set (ucs->char #x34F)) + (ucs-range->char-set #x115F #x1161) + (ucs-range->char-set #x180B #x180E) + (char-set (ucs->char #x200B)) + (ucs-range->char-set #x2064 #x206A) + (char-set (ucs->char #x3164)) + (ucs-range->char-set #xFE00 #xFE10) + (char-set (ucs->char #xFFA0)) + (ucs-range->char-set #xFFF0 #xFFF9) + (char-set (ucs->char #xE0000)) + (ucs-range->char-set #xE0002 #xE0020) + (ucs-range->char-set #xE0080 #xE0100) + (ucs-range->char-set #xE0100 #xE01F0) + (ucs-range->char-set #xE01F0 #xE1000) + )) + +(define char-set:other-grapheme-extend + (char-set-union + (char-set (ucs->char #x9BE)) + (char-set (ucs->char #x9D7)) + (char-set (ucs->char #xB3E)) + (char-set (ucs->char #xB57)) + (char-set (ucs->char #xBBE)) + (char-set (ucs->char #xBD7)) + (char-set (ucs->char #xCC2)) + (ucs-range->char-set #xCD5 #xCD7) + (char-set (ucs->char #xD3E)) + (char-set (ucs->char #xD57)) + (char-set (ucs->char #xDCF)) + (char-set (ucs->char #xDDF)) + (char-set (ucs->char #x1D165)) + (ucs-range->char-set #x1D16E #x1D170) + )) + +(define char-set:other-id-start + (char-set-union + (char-set (ucs->char #x2118)) + (char-set (ucs->char #x212E)) + (ucs-range->char-set #x309B #x309D) + )) + +(define char-set:other-lowercase + (char-set-union + (ucs-range->char-set #x2B0 #x2B9) + (ucs-range->char-set #x2C0 #x2C2) + (ucs-range->char-set #x2E0 #x2E5) + (char-set (ucs->char #x345)) + (char-set (ucs->char #x37A)) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x2170 #x2180) + (ucs-range->char-set #x24D0 #x24EA) + )) + +(define char-set:other-math + (char-set-union + (char-set (ucs->char #x28)) + (char-set (ucs->char #x29)) + (char-set (ucs->char #x2A)) + (char-set (ucs->char #x2D)) + (char-set (ucs->char #x2F)) + (char-set (ucs->char #x5B)) + (char-set (ucs->char #x5C)) + (char-set (ucs->char #x5D)) + (char-set (ucs->char #x5E)) + (char-set (ucs->char #x7B)) + (char-set (ucs->char #x7D)) + (char-set (ucs->char #x2016)) + (ucs-range->char-set #x2032 #x2035) + (char-set (ucs->char #x207D)) + (char-set (ucs->char #x207E)) + (char-set (ucs->char #x208D)) + (char-set (ucs->char #x208E)) + (ucs-range->char-set #x20D0 #x20DD) + (char-set (ucs->char #x20E1)) + (char-set (ucs->char #x2102)) + (ucs-range->char-set #x210A #x2114) + (char-set (ucs->char #x2115)) + (ucs-range->char-set #x2119 #x211E) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2128)) + (ucs-range->char-set #x212C #x212E) + (ucs-range->char-set #x212F #x2132) + (ucs-range->char-set #x2133 #x2135) + (ucs-range->char-set #x2135 #x2139) + (char-set (ucs->char #xFE35)) + (char-set (ucs->char #xFE36)) + (char-set (ucs->char #xFE37)) + (char-set (ucs->char #xFE38)) + (char-set (ucs->char #xFE47)) + (char-set (ucs->char #xFE48)) + (char-set (ucs->char #xFE59)) + (char-set (ucs->char #xFE5A)) + (char-set (ucs->char #xFE5B)) + (char-set (ucs->char #xFE5C)) + (char-set (ucs->char #xFE61)) + (char-set (ucs->char #xFE63)) + (char-set (ucs->char #xFE68)) + (char-set (ucs->char #xFF08)) + (char-set (ucs->char #xFF09)) + (char-set (ucs->char #xFF0A)) + (char-set (ucs->char #xFF0D)) + (char-set (ucs->char #xFF0F)) + (char-set (ucs->char #xFF3B)) + (char-set (ucs->char #xFF3C)) + (char-set (ucs->char #xFF3D)) + (char-set (ucs->char #xFF3E)) + (char-set (ucs->char #xFF5B)) + (char-set (ucs->char #xFF5D)) + (ucs-range->char-set #x1D400 #x1D455) + (ucs-range->char-set #x1D456 #x1D49D) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D51E #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D552 #x1D6A4) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (ucs-range->char-set #x1D6DC #x1D6FB) + (ucs-range->char-set #x1D6FC #x1D715) + (ucs-range->char-set #x1D716 #x1D735) + (ucs-range->char-set #x1D736 #x1D74F) + (ucs-range->char-set #x1D750 #x1D76F) + (ucs-range->char-set #x1D770 #x1D789) + (ucs-range->char-set #x1D78A #x1D7A9) + (ucs-range->char-set #x1D7AA #x1D7C3) + (ucs-range->char-set #x1D7C4 #x1D7CA) + (ucs-range->char-set #x1D7CE #x1D800) + )) + +(define char-set:other-uppercase + (char-set-union + (ucs-range->char-set #x2160 #x2170) + (ucs-range->char-set #x24B6 #x24D0) + )) + +(define char-set:quotation-mark + (char-set-union + (char-set (ucs->char #x22)) + (char-set (ucs->char #x27)) + (char-set (ucs->char #xAB)) + (char-set (ucs->char #xBB)) + (char-set (ucs->char #x2018)) + (char-set (ucs->char #x2019)) + (char-set (ucs->char #x201A)) + (ucs-range->char-set #x201B #x201D) + (char-set (ucs->char #x201D)) + (char-set (ucs->char #x201E)) + (char-set (ucs->char #x201F)) + (char-set (ucs->char #x2039)) + (char-set (ucs->char #x203A)) + (char-set (ucs->char #x300C)) + (char-set (ucs->char #x300D)) + (char-set (ucs->char #x300E)) + (char-set (ucs->char #x300F)) + (char-set (ucs->char #x301D)) + (ucs-range->char-set #x301E #x3020) + (char-set (ucs->char #xFE41)) + (char-set (ucs->char #xFE42)) + (char-set (ucs->char #xFE43)) + (char-set (ucs->char #xFE44)) + (char-set (ucs->char #xFF02)) + (char-set (ucs->char #xFF07)) + (char-set (ucs->char #xFF62)) + (char-set (ucs->char #xFF63)) + )) + +(define char-set:radical + (char-set-union + (ucs-range->char-set #x2E80 #x2E9A) + (ucs-range->char-set #x2E9B #x2EF4) + (ucs-range->char-set #x2F00 #x2FD6) + )) + +(define char-set:soft-dotted + (char-set-union + (ucs-range->char-set #x69 #x6B) + (char-set (ucs->char #x12F)) + (char-set (ucs->char #x268)) + (char-set (ucs->char #x456)) + (char-set (ucs->char #x458)) + (char-set (ucs->char #x1D62)) + (char-set (ucs->char #x1E2D)) + (char-set (ucs->char #x1ECB)) + (char-set (ucs->char #x2071)) + )) + +(define char-set:terminal-punctuation + (char-set-union + (char-set (ucs->char #x21)) + (char-set (ucs->char #x2C)) + (char-set (ucs->char #x2E)) + (ucs-range->char-set #x3A #x3C) + (char-set (ucs->char #x3F)) + (char-set (ucs->char #x37E)) + (char-set (ucs->char #x387)) + (char-set (ucs->char #x589)) + (char-set (ucs->char #x60C)) + (char-set (ucs->char #x61B)) + (char-set (ucs->char #x61F)) + (char-set (ucs->char #x6D4)) + (ucs-range->char-set #x700 #x70B) + (char-set (ucs->char #x70C)) + (ucs-range->char-set #x964 #x966) + (ucs-range->char-set #xE5A #xE5C) + (ucs-range->char-set #x104A #x104C) + (ucs-range->char-set #x1361 #x1369) + (ucs-range->char-set #x166D #x166F) + (ucs-range->char-set #x16EB #x16EE) + (ucs-range->char-set #x17D4 #x17D7) + (char-set (ucs->char #x17DA)) + (ucs-range->char-set #x1802 #x1806) + (ucs-range->char-set #x1808 #x180A) + (ucs-range->char-set #x1944 #x1946) + (ucs-range->char-set #x203C #x203E) + (ucs-range->char-set #x2047 #x204A) + (ucs-range->char-set #x3001 #x3003) + (ucs-range->char-set #xFE50 #xFE53) + (ucs-range->char-set #xFE54 #xFE58) + (char-set (ucs->char #xFF01)) + (char-set (ucs->char #xFF0C)) + (char-set (ucs->char #xFF0E)) + (ucs-range->char-set #xFF1A #xFF1C) + (char-set (ucs->char #xFF1F)) + (char-set (ucs->char #xFF61)) + (char-set (ucs->char #xFF64)) + )) + +(define char-set:unified-ideograph + (char-set-union + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xFA0E #xFA10) + (char-set (ucs->char #xFA11)) + (ucs-range->char-set #xFA13 #xFA15) + (char-set (ucs->char #xFA1F)) + (char-set (ucs->char #xFA21)) + (ucs-range->char-set #xFA23 #xFA25) + (ucs-range->char-set #xFA27 #xFA2A) + (ucs-range->char-set #x20000 #x2A6D7) + )) + +(define char-set:white-space + (char-set-union + (ucs-range->char-set #x9 #xE) + (char-set (ucs->char #x20)) + (char-set (ucs->char #x85)) + (char-set (ucs->char #xA0)) + (char-set (ucs->char #x1680)) + (char-set (ucs->char #x180E)) + (ucs-range->char-set #x2000 #x200B) + (char-set (ucs->char #x2028)) + (char-set (ucs->char #x2029)) + (char-set (ucs->char #x202F)) + (char-set (ucs->char #x205F)) + (char-set (ucs->char #x3000)) + )) + +(define char-set:alphabetic + (char-set-union + char-set:other-alphabetic + (ucs-range->char-set #x41 #x5B) + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xB5)) + (char-set (ucs->char #xBA)) + (ucs-range->char-set #xC0 #xD7) + (ucs-range->char-set #xD8 #xF7) + (ucs-range->char-set #xF8 #x1BB) + (char-set (ucs->char #x1BB)) + (ucs-range->char-set #x1BC #x1C0) + (ucs-range->char-set #x1C0 #x1C4) + (ucs-range->char-set #x1C4 #x237) + (ucs-range->char-set #x250 #x2B0) + (ucs-range->char-set #x2B0 #x2C2) + (ucs-range->char-set #x2C6 #x2D2) + (ucs-range->char-set #x2E0 #x2E5) + (char-set (ucs->char #x2EE)) + (char-set (ucs->char #x37A)) + (char-set (ucs->char #x386)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x3A2) + (ucs-range->char-set #x3A3 #x3CF) + (ucs-range->char-set #x3D0 #x3F6) + (ucs-range->char-set #x3F7 #x3FC) + (ucs-range->char-set #x400 #x482) + (ucs-range->char-set #x48A #x4CF) + (ucs-range->char-set #x4D0 #x4F6) + (ucs-range->char-set #x4F8 #x4FA) + (ucs-range->char-set #x500 #x510) + (ucs-range->char-set #x531 #x557) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x561 #x588) + (ucs-range->char-set #x5D0 #x5EB) + (ucs-range->char-set #x5F0 #x5F3) + (ucs-range->char-set #x621 #x63B) + (char-set (ucs->char #x640)) + (ucs-range->char-set #x641 #x64B) + (ucs-range->char-set #x66E #x670) + (ucs-range->char-set #x671 #x6D4) + (char-set (ucs->char #x6D5)) + (ucs-range->char-set #x6E5 #x6E7) + (ucs-range->char-set #x6EE #x6F0) + (ucs-range->char-set #x6FA #x6FD) + (char-set (ucs->char #x6FF)) + (char-set (ucs->char #x710)) + (ucs-range->char-set #x712 #x730) + (ucs-range->char-set #x74D #x750) + (ucs-range->char-set #x780 #x7A6) + (char-set (ucs->char #x7B1)) + (ucs-range->char-set #x904 #x93A) + (char-set (ucs->char #x93D)) + (char-set (ucs->char #x950)) + (ucs-range->char-set #x958 #x962) + (ucs-range->char-set #x985 #x98D) + (ucs-range->char-set #x98F #x991) + (ucs-range->char-set #x993 #x9A9) + (ucs-range->char-set #x9AA #x9B1) + (char-set (ucs->char #x9B2)) + (ucs-range->char-set #x9B6 #x9BA) + (char-set (ucs->char #x9BD)) + (ucs-range->char-set #x9DC #x9DE) + (ucs-range->char-set #x9DF #x9E2) + (ucs-range->char-set #x9F0 #x9F2) + (ucs-range->char-set #xA05 #xA0B) + (ucs-range->char-set #xA0F #xA11) + (ucs-range->char-set #xA13 #xA29) + (ucs-range->char-set #xA2A #xA31) + (ucs-range->char-set #xA32 #xA34) + (ucs-range->char-set #xA35 #xA37) + (ucs-range->char-set #xA38 #xA3A) + (ucs-range->char-set #xA59 #xA5D) + (char-set (ucs->char #xA5E)) + (ucs-range->char-set #xA72 #xA75) + (ucs-range->char-set #xA85 #xA8E) + (ucs-range->char-set #xA8F #xA92) + (ucs-range->char-set #xA93 #xAA9) + (ucs-range->char-set #xAAA #xAB1) + (ucs-range->char-set #xAB2 #xAB4) + (ucs-range->char-set #xAB5 #xABA) + (char-set (ucs->char #xABD)) + (char-set (ucs->char #xAD0)) + (ucs-range->char-set #xAE0 #xAE2) + (ucs-range->char-set #xB05 #xB0D) + (ucs-range->char-set #xB0F #xB11) + (ucs-range->char-set #xB13 #xB29) + (ucs-range->char-set #xB2A #xB31) + (ucs-range->char-set #xB32 #xB34) + (ucs-range->char-set #xB35 #xB3A) + (char-set (ucs->char #xB3D)) + (ucs-range->char-set #xB5C #xB5E) + (ucs-range->char-set #xB5F #xB62) + (char-set (ucs->char #xB71)) + (char-set (ucs->char #xB83)) + (ucs-range->char-set #xB85 #xB8B) + (ucs-range->char-set #xB8E #xB91) + (ucs-range->char-set #xB92 #xB96) + (ucs-range->char-set #xB99 #xB9B) + (char-set (ucs->char #xB9C)) + (ucs-range->char-set #xB9E #xBA0) + (ucs-range->char-set #xBA3 #xBA5) + (ucs-range->char-set #xBA8 #xBAB) + (ucs-range->char-set #xBAE #xBB6) + (ucs-range->char-set #xBB7 #xBBA) + (ucs-range->char-set #xC05 #xC0D) + (ucs-range->char-set #xC0E #xC11) + (ucs-range->char-set #xC12 #xC29) + (ucs-range->char-set #xC2A #xC34) + (ucs-range->char-set #xC35 #xC3A) + (ucs-range->char-set #xC60 #xC62) + (ucs-range->char-set #xC85 #xC8D) + (ucs-range->char-set #xC8E #xC91) + (ucs-range->char-set #xC92 #xCA9) + (ucs-range->char-set #xCAA #xCB4) + (ucs-range->char-set #xCB5 #xCBA) + (char-set (ucs->char #xCBD)) + (char-set (ucs->char #xCDE)) + (ucs-range->char-set #xCE0 #xCE2) + (ucs-range->char-set #xD05 #xD0D) + (ucs-range->char-set #xD0E #xD11) + (ucs-range->char-set #xD12 #xD29) + (ucs-range->char-set #xD2A #xD3A) + (ucs-range->char-set #xD60 #xD62) + (ucs-range->char-set #xD85 #xD97) + (ucs-range->char-set #xD9A #xDB2) + (ucs-range->char-set #xDB3 #xDBC) + (char-set (ucs->char #xDBD)) + (ucs-range->char-set #xDC0 #xDC7) + (ucs-range->char-set #xE01 #xE31) + (ucs-range->char-set #xE32 #xE34) + (ucs-range->char-set #xE40 #xE46) + (char-set (ucs->char #xE46)) + (ucs-range->char-set #xE81 #xE83) + (char-set (ucs->char #xE84)) + (ucs-range->char-set #xE87 #xE89) + (char-set (ucs->char #xE8A)) + (char-set (ucs->char #xE8D)) + (ucs-range->char-set #xE94 #xE98) + (ucs-range->char-set #xE99 #xEA0) + (ucs-range->char-set #xEA1 #xEA4) + (char-set (ucs->char #xEA5)) + (char-set (ucs->char #xEA7)) + (ucs-range->char-set #xEAA #xEAC) + (ucs-range->char-set #xEAD #xEB1) + (ucs-range->char-set #xEB2 #xEB4) + (char-set (ucs->char #xEBD)) + (ucs-range->char-set #xEC0 #xEC5) + (char-set (ucs->char #xEC6)) + (ucs-range->char-set #xEDC #xEDE) + (char-set (ucs->char #xF00)) + (ucs-range->char-set #xF40 #xF48) + (ucs-range->char-set #xF49 #xF6B) + (ucs-range->char-set #xF88 #xF8C) + (ucs-range->char-set #x1000 #x1022) + (ucs-range->char-set #x1023 #x1028) + (ucs-range->char-set #x1029 #x102B) + (ucs-range->char-set #x1050 #x1056) + (ucs-range->char-set #x10A0 #x10C6) + (ucs-range->char-set #x10D0 #x10F9) + (ucs-range->char-set #x1100 #x115A) + (ucs-range->char-set #x115F #x11A3) + (ucs-range->char-set #x11A8 #x11FA) + (ucs-range->char-set #x1200 #x1207) + (ucs-range->char-set #x1208 #x1247) + (char-set (ucs->char #x1248)) + (ucs-range->char-set #x124A #x124E) + (ucs-range->char-set #x1250 #x1257) + (char-set (ucs->char #x1258)) + (ucs-range->char-set #x125A #x125E) + (ucs-range->char-set #x1260 #x1287) + (char-set (ucs->char #x1288)) + (ucs-range->char-set #x128A #x128E) + (ucs-range->char-set #x1290 #x12AF) + (char-set (ucs->char #x12B0)) + (ucs-range->char-set #x12B2 #x12B6) + (ucs-range->char-set #x12B8 #x12BF) + (char-set (ucs->char #x12C0)) + (ucs-range->char-set #x12C2 #x12C6) + (ucs-range->char-set #x12C8 #x12CF) + (ucs-range->char-set #x12D0 #x12D7) + (ucs-range->char-set #x12D8 #x12EF) + (ucs-range->char-set #x12F0 #x130F) + (char-set (ucs->char #x1310)) + (ucs-range->char-set #x1312 #x1316) + (ucs-range->char-set #x1318 #x131F) + (ucs-range->char-set #x1320 #x1347) + (ucs-range->char-set #x1348 #x135B) + (ucs-range->char-set #x13A0 #x13F5) + (ucs-range->char-set #x1401 #x166D) + (ucs-range->char-set #x166F #x1677) + (ucs-range->char-set #x1681 #x169B) + (ucs-range->char-set #x16A0 #x16EB) + (ucs-range->char-set #x1700 #x170D) + (ucs-range->char-set #x170E #x1712) + (ucs-range->char-set #x1720 #x1732) + (ucs-range->char-set #x1740 #x1752) + (ucs-range->char-set #x1760 #x176D) + (ucs-range->char-set #x176E #x1771) + (ucs-range->char-set #x1780 #x17B4) + (char-set (ucs->char #x17D7)) + (char-set (ucs->char #x17DC)) + (ucs-range->char-set #x1820 #x1843) + (char-set (ucs->char #x1843)) + (ucs-range->char-set #x1844 #x1878) + (ucs-range->char-set #x1880 #x18A9) + (ucs-range->char-set #x1900 #x191D) + (ucs-range->char-set #x1950 #x196E) + (ucs-range->char-set #x1970 #x1975) + (ucs-range->char-set #x1D00 #x1D2C) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x1D62 #x1D6C) + (ucs-range->char-set #x1E00 #x1E9C) + (ucs-range->char-set #x1EA0 #x1EFA) + (ucs-range->char-set #x1F00 #x1F16) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F20 #x1F46) + (ucs-range->char-set #x1F48 #x1F4E) + (ucs-range->char-set #x1F50 #x1F58) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (ucs-range->char-set #x1F5F #x1F7E) + (ucs-range->char-set #x1F80 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FBD) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FCD) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FDC) + (ucs-range->char-set #x1FE0 #x1FED) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FFD) + (char-set (ucs->char #x2071)) + (char-set (ucs->char #x207F)) + (char-set (ucs->char #x2102)) + (char-set (ucs->char #x2107)) + (ucs-range->char-set #x210A #x2114) + (char-set (ucs->char #x2115)) + (ucs-range->char-set #x2119 #x211E) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2126)) + (char-set (ucs->char #x2128)) + (ucs-range->char-set #x212A #x212E) + (ucs-range->char-set #x212F #x2132) + (ucs-range->char-set #x2133 #x2135) + (ucs-range->char-set #x2135 #x2139) + (char-set (ucs->char #x2139)) + (ucs-range->char-set #x213D #x2140) + (ucs-range->char-set #x2145 #x214A) + (char-set (ucs->char #x3005)) + (char-set (ucs->char #x3006)) + (char-set (ucs->char #x3007)) + (ucs-range->char-set #x3021 #x302A) + (ucs-range->char-set #x3031 #x3036) + (ucs-range->char-set #x3038 #x303B) + (char-set (ucs->char #x303B)) + (char-set (ucs->char #x303C)) + (ucs-range->char-set #x3041 #x3097) + (ucs-range->char-set #x309D #x309F) + (char-set (ucs->char #x309F)) + (ucs-range->char-set #x30A1 #x30FB) + (ucs-range->char-set #x30FC #x30FF) + (char-set (ucs->char #x30FF)) + (ucs-range->char-set #x3105 #x312D) + (ucs-range->char-set #x3131 #x318F) + (ucs-range->char-set #x31A0 #x31B8) + (ucs-range->char-set #x31F0 #x3200) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xA000 #xA48D) + (ucs-range->char-set #xAC00 #xD7A4) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #xFA30 #xFA6B) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFB13 #xFB18) + (char-set (ucs->char #xFB1D)) + (ucs-range->char-set #xFB1F #xFB29) + (ucs-range->char-set #xFB2A #xFB37) + (ucs-range->char-set #xFB38 #xFB3D) + (char-set (ucs->char #xFB3E)) + (ucs-range->char-set #xFB40 #xFB42) + (ucs-range->char-set #xFB43 #xFB45) + (ucs-range->char-set #xFB46 #xFBB2) + (ucs-range->char-set #xFBD3 #xFD3E) + (ucs-range->char-set #xFD50 #xFD90) + (ucs-range->char-set #xFD92 #xFDC8) + (ucs-range->char-set #xFDF0 #xFDFC) + (ucs-range->char-set #xFE70 #xFE75) + (ucs-range->char-set #xFE76 #xFEFD) + (ucs-range->char-set #xFF21 #xFF3B) + (ucs-range->char-set #xFF41 #xFF5B) + (ucs-range->char-set #xFF66 #xFF70) + (char-set (ucs->char #xFF70)) + (ucs-range->char-set #xFF71 #xFF9E) + (ucs-range->char-set #xFF9E #xFFA0) + (ucs-range->char-set #xFFA0 #xFFBF) + (ucs-range->char-set #xFFC2 #xFFC8) + (ucs-range->char-set #xFFCA #xFFD0) + (ucs-range->char-set #xFFD2 #xFFD8) + (ucs-range->char-set #xFFDA #xFFDD) + (ucs-range->char-set #x10000 #x1000C) + (ucs-range->char-set #x1000D #x10027) + (ucs-range->char-set #x10028 #x1003B) + (ucs-range->char-set #x1003C #x1003E) + (ucs-range->char-set #x1003F #x1004E) + (ucs-range->char-set #x10050 #x1005E) + (ucs-range->char-set #x10080 #x100FB) + (ucs-range->char-set #x10300 #x1031F) + (ucs-range->char-set #x10330 #x1034A) + (ucs-range->char-set #x10380 #x1039E) + (ucs-range->char-set #x10400 #x10450) + (ucs-range->char-set #x10450 #x1049E) + (ucs-range->char-set #x10800 #x10806) + (char-set (ucs->char #x10808)) + (ucs-range->char-set #x1080A #x10836) + (ucs-range->char-set #x10837 #x10839) + (char-set (ucs->char #x1083C)) + (char-set (ucs->char #x1083F)) + (ucs-range->char-set #x1D400 #x1D455) + (ucs-range->char-set #x1D456 #x1D49D) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D51E #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D552 #x1D6A4) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (ucs-range->char-set #x1D6DC #x1D6FB) + (ucs-range->char-set #x1D6FC #x1D715) + (ucs-range->char-set #x1D716 #x1D735) + (ucs-range->char-set #x1D736 #x1D74F) + (ucs-range->char-set #x1D750 #x1D76F) + (ucs-range->char-set #x1D770 #x1D789) + (ucs-range->char-set #x1D78A #x1D7A9) + (ucs-range->char-set #x1D7AA #x1D7C3) + (ucs-range->char-set #x1D7C4 #x1D7CA) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + )) + +(define char-set:default-ignorable-code-point + (char-set-union + char-set:other-default-ignorable-code-point + (ucs-range->char-set #x0 #x9) + (ucs-range->char-set #xE #x20) + (ucs-range->char-set #x7F #x85) + (ucs-range->char-set #x86 #xA0) + (char-set (ucs->char #xAD)) + (ucs-range->char-set #x600 #x604) + (char-set (ucs->char #x6DD)) + (char-set (ucs->char #x70F)) + (ucs-range->char-set #x17B4 #x17B6) + (ucs-range->char-set #x200C #x2010) + (ucs-range->char-set #x202A #x202F) + (ucs-range->char-set #x2060 #x2064) + (ucs-range->char-set #x206A #x2070) + (ucs-range->char-set #xD800 #xE000) + (char-set (ucs->char #xFEFF)) + (ucs-range->char-set #xFFF9 #xFFFC) + (ucs-range->char-set #x1D173 #x1D17B) + (char-set (ucs->char #xE0001)) + (ucs-range->char-set #xE0020 #xE0080) + )) + +(define char-set:grapheme-base + (char-set-union + (char-set (ucs->char #x20)) + (ucs-range->char-set #x21 #x24) + (char-set (ucs->char #x24)) + (ucs-range->char-set #x25 #x28) + (char-set (ucs->char #x28)) + (char-set (ucs->char #x29)) + (char-set (ucs->char #x2A)) + (char-set (ucs->char #x2B)) + (char-set (ucs->char #x2C)) + (char-set (ucs->char #x2D)) + (ucs-range->char-set #x2E #x30) + (ucs-range->char-set #x30 #x3A) + (ucs-range->char-set #x3A #x3C) + (ucs-range->char-set #x3C #x3F) + (ucs-range->char-set #x3F #x41) + (ucs-range->char-set #x41 #x5B) + (char-set (ucs->char #x5B)) + (char-set (ucs->char #x5C)) + (char-set (ucs->char #x5D)) + (char-set (ucs->char #x5E)) + (char-set (ucs->char #x5F)) + (char-set (ucs->char #x60)) + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #x7B)) + (char-set (ucs->char #x7C)) + (char-set (ucs->char #x7D)) + (char-set (ucs->char #x7E)) + (char-set (ucs->char #xA0)) + (char-set (ucs->char #xA1)) + (ucs-range->char-set #xA2 #xA6) + (ucs-range->char-set #xA6 #xA8) + (char-set (ucs->char #xA8)) + (char-set (ucs->char #xA9)) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xAB)) + (char-set (ucs->char #xAC)) + (char-set (ucs->char #xAE)) + (char-set (ucs->char #xAF)) + (char-set (ucs->char #xB0)) + (char-set (ucs->char #xB1)) + (ucs-range->char-set #xB2 #xB4) + (char-set (ucs->char #xB4)) + (char-set (ucs->char #xB5)) + (char-set (ucs->char #xB6)) + (char-set (ucs->char #xB7)) + (char-set (ucs->char #xB8)) + (char-set (ucs->char #xB9)) + (char-set (ucs->char #xBA)) + (char-set (ucs->char #xBB)) + (ucs-range->char-set #xBC #xBF) + (char-set (ucs->char #xBF)) + (ucs-range->char-set #xC0 #xD7) + (char-set (ucs->char #xD7)) + (ucs-range->char-set #xD8 #xF7) + (char-set (ucs->char #xF7)) + (ucs-range->char-set #xF8 #x1BB) + (char-set (ucs->char #x1BB)) + (ucs-range->char-set #x1BC #x1C0) + (ucs-range->char-set #x1C0 #x1C4) + (ucs-range->char-set #x1C4 #x237) + (ucs-range->char-set #x250 #x2B0) + (ucs-range->char-set #x2B0 #x2C2) + (ucs-range->char-set #x2C2 #x2C6) + (ucs-range->char-set #x2C6 #x2D2) + (ucs-range->char-set #x2D2 #x2E0) + (ucs-range->char-set #x2E0 #x2E5) + (ucs-range->char-set #x2E5 #x2EE) + (char-set (ucs->char #x2EE)) + (ucs-range->char-set #x2EF #x300) + (ucs-range->char-set #x374 #x376) + (char-set (ucs->char #x37A)) + (char-set (ucs->char #x37E)) + (ucs-range->char-set #x384 #x386) + (char-set (ucs->char #x386)) + (char-set (ucs->char #x387)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x3A2) + (ucs-range->char-set #x3A3 #x3CF) + (ucs-range->char-set #x3D0 #x3F6) + (char-set (ucs->char #x3F6)) + (ucs-range->char-set #x3F7 #x3FC) + (ucs-range->char-set #x400 #x482) + (char-set (ucs->char #x482)) + (ucs-range->char-set #x48A #x4CF) + (ucs-range->char-set #x4D0 #x4F6) + (ucs-range->char-set #x4F8 #x4FA) + (ucs-range->char-set #x500 #x510) + (ucs-range->char-set #x531 #x557) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x55A #x560) + (ucs-range->char-set #x561 #x588) + (char-set (ucs->char #x589)) + (char-set (ucs->char #x58A)) + (char-set (ucs->char #x5BE)) + (char-set (ucs->char #x5C0)) + (char-set (ucs->char #x5C3)) + (ucs-range->char-set #x5D0 #x5EB) + (ucs-range->char-set #x5F0 #x5F3) + (ucs-range->char-set #x5F3 #x5F5) + (ucs-range->char-set #x60C #x60E) + (ucs-range->char-set #x60E #x610) + (char-set (ucs->char #x61B)) + (char-set (ucs->char #x61F)) + (ucs-range->char-set #x621 #x63B) + (char-set (ucs->char #x640)) + (ucs-range->char-set #x641 #x64B) + (ucs-range->char-set #x660 #x66A) + (ucs-range->char-set #x66A #x66E) + (ucs-range->char-set #x66E #x670) + (ucs-range->char-set #x671 #x6D4) + (char-set (ucs->char #x6D4)) + (char-set (ucs->char #x6D5)) + (ucs-range->char-set #x6E5 #x6E7) + (char-set (ucs->char #x6E9)) + (ucs-range->char-set #x6EE #x6F0) + (ucs-range->char-set #x6F0 #x6FA) + (ucs-range->char-set #x6FA #x6FD) + (ucs-range->char-set #x6FD #x6FF) + (char-set (ucs->char #x6FF)) + (ucs-range->char-set #x700 #x70E) + (char-set (ucs->char #x710)) + (ucs-range->char-set #x712 #x730) + (ucs-range->char-set #x74D #x750) + (ucs-range->char-set #x780 #x7A6) + (char-set (ucs->char #x7B1)) + (char-set (ucs->char #x903)) + (ucs-range->char-set #x904 #x93A) + (char-set (ucs->char #x93D)) + (ucs-range->char-set #x93E #x941) + (ucs-range->char-set #x949 #x94D) + (char-set (ucs->char #x950)) + (ucs-range->char-set #x958 #x962) + (ucs-range->char-set #x964 #x966) + (ucs-range->char-set #x966 #x970) + (char-set (ucs->char #x970)) + (ucs-range->char-set #x982 #x984) + (ucs-range->char-set #x985 #x98D) + (ucs-range->char-set #x98F #x991) + (ucs-range->char-set #x993 #x9A9) + (ucs-range->char-set #x9AA #x9B1) + (char-set (ucs->char #x9B2)) + (ucs-range->char-set #x9B6 #x9BA) + (char-set (ucs->char #x9BD)) + (ucs-range->char-set #x9BF #x9C1) + (ucs-range->char-set #x9C7 #x9C9) + (ucs-range->char-set #x9CB #x9CD) + (ucs-range->char-set #x9DC #x9DE) + (ucs-range->char-set #x9DF #x9E2) + (ucs-range->char-set #x9E6 #x9F0) + (ucs-range->char-set #x9F0 #x9F2) + (ucs-range->char-set #x9F2 #x9F4) + (ucs-range->char-set #x9F4 #x9FA) + (char-set (ucs->char #x9FA)) + (char-set (ucs->char #xA03)) + (ucs-range->char-set #xA05 #xA0B) + (ucs-range->char-set #xA0F #xA11) + (ucs-range->char-set #xA13 #xA29) + (ucs-range->char-set #xA2A #xA31) + (ucs-range->char-set #xA32 #xA34) + (ucs-range->char-set #xA35 #xA37) + (ucs-range->char-set #xA38 #xA3A) + (ucs-range->char-set #xA3E #xA41) + (ucs-range->char-set #xA59 #xA5D) + (char-set (ucs->char #xA5E)) + (ucs-range->char-set #xA66 #xA70) + (ucs-range->char-set #xA72 #xA75) + (char-set (ucs->char #xA83)) + (ucs-range->char-set #xA85 #xA8E) + (ucs-range->char-set #xA8F #xA92) + (ucs-range->char-set #xA93 #xAA9) + (ucs-range->char-set #xAAA #xAB1) + (ucs-range->char-set #xAB2 #xAB4) + (ucs-range->char-set #xAB5 #xABA) + (char-set (ucs->char #xABD)) + (ucs-range->char-set #xABE #xAC1) + (char-set (ucs->char #xAC9)) + (ucs-range->char-set #xACB #xACD) + (char-set (ucs->char #xAD0)) + (ucs-range->char-set #xAE0 #xAE2) + (ucs-range->char-set #xAE6 #xAF0) + (char-set (ucs->char #xAF1)) + (ucs-range->char-set #xB02 #xB04) + (ucs-range->char-set #xB05 #xB0D) + (ucs-range->char-set #xB0F #xB11) + (ucs-range->char-set #xB13 #xB29) + (ucs-range->char-set #xB2A #xB31) + (ucs-range->char-set #xB32 #xB34) + (ucs-range->char-set #xB35 #xB3A) + (char-set (ucs->char #xB3D)) + (char-set (ucs->char #xB40)) + (ucs-range->char-set #xB47 #xB49) + (ucs-range->char-set #xB4B #xB4D) + (ucs-range->char-set #xB5C #xB5E) + (ucs-range->char-set #xB5F #xB62) + (ucs-range->char-set #xB66 #xB70) + (char-set (ucs->char #xB70)) + (char-set (ucs->char #xB71)) + (char-set (ucs->char #xB83)) + (ucs-range->char-set #xB85 #xB8B) + (ucs-range->char-set #xB8E #xB91) + (ucs-range->char-set #xB92 #xB96) + (ucs-range->char-set #xB99 #xB9B) + (char-set (ucs->char #xB9C)) + (ucs-range->char-set #xB9E #xBA0) + (ucs-range->char-set #xBA3 #xBA5) + (ucs-range->char-set #xBA8 #xBAB) + (ucs-range->char-set #xBAE #xBB6) + (ucs-range->char-set #xBB7 #xBBA) + (char-set (ucs->char #xBBF)) + (ucs-range->char-set #xBC1 #xBC3) + (ucs-range->char-set #xBC6 #xBC9) + (ucs-range->char-set #xBCA #xBCD) + (ucs-range->char-set #xBE7 #xBF0) + (ucs-range->char-set #xBF0 #xBF3) + (ucs-range->char-set #xBF3 #xBF9) + (char-set (ucs->char #xBF9)) + (char-set (ucs->char #xBFA)) + (ucs-range->char-set #xC01 #xC04) + (ucs-range->char-set #xC05 #xC0D) + (ucs-range->char-set #xC0E #xC11) + (ucs-range->char-set #xC12 #xC29) + (ucs-range->char-set #xC2A #xC34) + (ucs-range->char-set #xC35 #xC3A) + (ucs-range->char-set #xC41 #xC45) + (ucs-range->char-set #xC60 #xC62) + (ucs-range->char-set #xC66 #xC70) + (ucs-range->char-set #xC82 #xC84) + (ucs-range->char-set #xC85 #xC8D) + (ucs-range->char-set #xC8E #xC91) + (ucs-range->char-set #xC92 #xCA9) + (ucs-range->char-set #xCAA #xCB4) + (ucs-range->char-set #xCB5 #xCBA) + (char-set (ucs->char #xCBD)) + (char-set (ucs->char #xCBE)) + (ucs-range->char-set #xCC0 #xCC2) + (ucs-range->char-set #xCC3 #xCC5) + (ucs-range->char-set #xCC7 #xCC9) + (ucs-range->char-set #xCCA #xCCC) + (char-set (ucs->char #xCDE)) + (ucs-range->char-set #xCE0 #xCE2) + (ucs-range->char-set #xCE6 #xCF0) + (ucs-range->char-set #xD02 #xD04) + (ucs-range->char-set #xD05 #xD0D) + (ucs-range->char-set #xD0E #xD11) + (ucs-range->char-set #xD12 #xD29) + (ucs-range->char-set #xD2A #xD3A) + (ucs-range->char-set #xD3F #xD41) + (ucs-range->char-set #xD46 #xD49) + (ucs-range->char-set #xD4A #xD4D) + (ucs-range->char-set #xD60 #xD62) + (ucs-range->char-set #xD66 #xD70) + (ucs-range->char-set #xD82 #xD84) + (ucs-range->char-set #xD85 #xD97) + (ucs-range->char-set #xD9A #xDB2) + (ucs-range->char-set #xDB3 #xDBC) + (char-set (ucs->char #xDBD)) + (ucs-range->char-set #xDC0 #xDC7) + (ucs-range->char-set #xDD0 #xDD2) + (ucs-range->char-set #xDD8 #xDDF) + (ucs-range->char-set #xDF2 #xDF4) + (char-set (ucs->char #xDF4)) + (ucs-range->char-set #xE01 #xE31) + (ucs-range->char-set #xE32 #xE34) + (char-set (ucs->char #xE3F)) + (ucs-range->char-set #xE40 #xE46) + (char-set (ucs->char #xE46)) + (char-set (ucs->char #xE4F)) + (ucs-range->char-set #xE50 #xE5A) + (ucs-range->char-set #xE5A #xE5C) + (ucs-range->char-set #xE81 #xE83) + (char-set (ucs->char #xE84)) + (ucs-range->char-set #xE87 #xE89) + (char-set (ucs->char #xE8A)) + (char-set (ucs->char #xE8D)) + (ucs-range->char-set #xE94 #xE98) + (ucs-range->char-set #xE99 #xEA0) + (ucs-range->char-set #xEA1 #xEA4) + (char-set (ucs->char #xEA5)) + (char-set (ucs->char #xEA7)) + (ucs-range->char-set #xEAA #xEAC) + (ucs-range->char-set #xEAD #xEB1) + (ucs-range->char-set #xEB2 #xEB4) + (char-set (ucs->char #xEBD)) + (ucs-range->char-set #xEC0 #xEC5) + (char-set (ucs->char #xEC6)) + (ucs-range->char-set #xED0 #xEDA) + (ucs-range->char-set #xEDC #xEDE) + (char-set (ucs->char #xF00)) + (ucs-range->char-set #xF01 #xF04) + (ucs-range->char-set #xF04 #xF13) + (ucs-range->char-set #xF13 #xF18) + (ucs-range->char-set #xF1A #xF20) + (ucs-range->char-set #xF20 #xF2A) + (ucs-range->char-set #xF2A #xF34) + (char-set (ucs->char #xF34)) + (char-set (ucs->char #xF36)) + (char-set (ucs->char #xF38)) + (char-set (ucs->char #xF3A)) + (char-set (ucs->char #xF3B)) + (char-set (ucs->char #xF3C)) + (char-set (ucs->char #xF3D)) + (ucs-range->char-set #xF3E #xF40) + (ucs-range->char-set #xF40 #xF48) + (ucs-range->char-set #xF49 #xF6B) + (char-set (ucs->char #xF7F)) + (char-set (ucs->char #xF85)) + (ucs-range->char-set #xF88 #xF8C) + (ucs-range->char-set #xFBE #xFC6) + (ucs-range->char-set #xFC7 #xFCD) + (char-set (ucs->char #xFCF)) + (ucs-range->char-set #x1000 #x1022) + (ucs-range->char-set #x1023 #x1028) + (ucs-range->char-set #x1029 #x102B) + (char-set (ucs->char #x102C)) + (char-set (ucs->char #x1031)) + (char-set (ucs->char #x1038)) + (ucs-range->char-set #x1040 #x104A) + (ucs-range->char-set #x104A #x1050) + (ucs-range->char-set #x1050 #x1056) + (ucs-range->char-set #x1056 #x1058) + (ucs-range->char-set #x10A0 #x10C6) + (ucs-range->char-set #x10D0 #x10F9) + (char-set (ucs->char #x10FB)) + (ucs-range->char-set #x1100 #x115A) + (ucs-range->char-set #x115F #x11A3) + (ucs-range->char-set #x11A8 #x11FA) + (ucs-range->char-set #x1200 #x1207) + (ucs-range->char-set #x1208 #x1247) + (char-set (ucs->char #x1248)) + (ucs-range->char-set #x124A #x124E) + (ucs-range->char-set #x1250 #x1257) + (char-set (ucs->char #x1258)) + (ucs-range->char-set #x125A #x125E) + (ucs-range->char-set #x1260 #x1287) + (char-set (ucs->char #x1288)) + (ucs-range->char-set #x128A #x128E) + (ucs-range->char-set #x1290 #x12AF) + (char-set (ucs->char #x12B0)) + (ucs-range->char-set #x12B2 #x12B6) + (ucs-range->char-set #x12B8 #x12BF) + (char-set (ucs->char #x12C0)) + (ucs-range->char-set #x12C2 #x12C6) + (ucs-range->char-set #x12C8 #x12CF) + (ucs-range->char-set #x12D0 #x12D7) + (ucs-range->char-set #x12D8 #x12EF) + (ucs-range->char-set #x12F0 #x130F) + (char-set (ucs->char #x1310)) + (ucs-range->char-set #x1312 #x1316) + (ucs-range->char-set #x1318 #x131F) + (ucs-range->char-set #x1320 #x1347) + (ucs-range->char-set #x1348 #x135B) + (ucs-range->char-set #x1361 #x1369) + (ucs-range->char-set #x1369 #x1372) + (ucs-range->char-set #x1372 #x137D) + (ucs-range->char-set #x13A0 #x13F5) + (ucs-range->char-set #x1401 #x166D) + (ucs-range->char-set #x166D #x166F) + (ucs-range->char-set #x166F #x1677) + (char-set (ucs->char #x1680)) + (ucs-range->char-set #x1681 #x169B) + (char-set (ucs->char #x169B)) + (char-set (ucs->char #x169C)) + (ucs-range->char-set #x16A0 #x16EB) + (ucs-range->char-set #x16EB #x16EE) + (ucs-range->char-set #x16EE #x16F1) + (ucs-range->char-set #x1700 #x170D) + (ucs-range->char-set #x170E #x1712) + (ucs-range->char-set #x1720 #x1732) + (ucs-range->char-set #x1735 #x1737) + (ucs-range->char-set #x1740 #x1752) + (ucs-range->char-set #x1760 #x176D) + (ucs-range->char-set #x176E #x1771) + (ucs-range->char-set #x1780 #x17B4) + (char-set (ucs->char #x17B6)) + (ucs-range->char-set #x17BE #x17C6) + (ucs-range->char-set #x17C7 #x17C9) + (ucs-range->char-set #x17D4 #x17D7) + (char-set (ucs->char #x17D7)) + (ucs-range->char-set #x17D8 #x17DB) + (char-set (ucs->char #x17DB)) + (char-set (ucs->char #x17DC)) + (ucs-range->char-set #x17E0 #x17EA) + (ucs-range->char-set #x17F0 #x17FA) + (ucs-range->char-set #x1800 #x1806) + (char-set (ucs->char #x1806)) + (ucs-range->char-set #x1807 #x180B) + (char-set (ucs->char #x180E)) + (ucs-range->char-set #x1810 #x181A) + (ucs-range->char-set #x1820 #x1843) + (char-set (ucs->char #x1843)) + (ucs-range->char-set #x1844 #x1878) + (ucs-range->char-set #x1880 #x18A9) + (ucs-range->char-set #x1900 #x191D) + (ucs-range->char-set #x1923 #x1927) + (ucs-range->char-set #x1929 #x192C) + (ucs-range->char-set #x1930 #x1932) + (ucs-range->char-set #x1933 #x1939) + (char-set (ucs->char #x1940)) + (ucs-range->char-set #x1944 #x1946) + (ucs-range->char-set #x1946 #x1950) + (ucs-range->char-set #x1950 #x196E) + (ucs-range->char-set #x1970 #x1975) + (ucs-range->char-set #x19E0 #x1A00) + (ucs-range->char-set #x1D00 #x1D2C) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x1D62 #x1D6C) + (ucs-range->char-set #x1E00 #x1E9C) + (ucs-range->char-set #x1EA0 #x1EFA) + (ucs-range->char-set #x1F00 #x1F16) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F20 #x1F46) + (ucs-range->char-set #x1F48 #x1F4E) + (ucs-range->char-set #x1F50 #x1F58) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (ucs-range->char-set #x1F5F #x1F7E) + (ucs-range->char-set #x1F80 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FBD) + (char-set (ucs->char #x1FBD)) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FBF #x1FC2) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FCD) + (ucs-range->char-set #x1FCD #x1FD0) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FDC) + (ucs-range->char-set #x1FDD #x1FE0) + (ucs-range->char-set #x1FE0 #x1FED) + (ucs-range->char-set #x1FED #x1FF0) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FFD) + (ucs-range->char-set #x1FFD #x1FFF) + (ucs-range->char-set #x2000 #x200C) + (ucs-range->char-set #x2010 #x2016) + (ucs-range->char-set #x2016 #x2018) + (char-set (ucs->char #x2018)) + (char-set (ucs->char #x2019)) + (char-set (ucs->char #x201A)) + (ucs-range->char-set #x201B #x201D) + (char-set (ucs->char #x201D)) + (char-set (ucs->char #x201E)) + (char-set (ucs->char #x201F)) + (ucs-range->char-set #x2020 #x2028) + (char-set (ucs->char #x202F)) + (ucs-range->char-set #x2030 #x2039) + (char-set (ucs->char #x2039)) + (char-set (ucs->char #x203A)) + (ucs-range->char-set #x203B #x203F) + (ucs-range->char-set #x203F #x2041) + (ucs-range->char-set #x2041 #x2044) + (char-set (ucs->char #x2044)) + (char-set (ucs->char #x2045)) + (char-set (ucs->char #x2046)) + (ucs-range->char-set #x2047 #x2052) + (char-set (ucs->char #x2052)) + (char-set (ucs->char #x2053)) + (char-set (ucs->char #x2054)) + (char-set (ucs->char #x2057)) + (char-set (ucs->char #x205F)) + (char-set (ucs->char #x2070)) + (char-set (ucs->char #x2071)) + (ucs-range->char-set #x2074 #x207A) + (ucs-range->char-set #x207A #x207D) + (char-set (ucs->char #x207D)) + (char-set (ucs->char #x207E)) + (char-set (ucs->char #x207F)) + (ucs-range->char-set #x2080 #x208A) + (ucs-range->char-set #x208A #x208D) + (char-set (ucs->char #x208D)) + (char-set (ucs->char #x208E)) + (ucs-range->char-set #x20A0 #x20B2) + (ucs-range->char-set #x2100 #x2102) + (char-set (ucs->char #x2102)) + (ucs-range->char-set #x2103 #x2107) + (char-set (ucs->char #x2107)) + (ucs-range->char-set #x2108 #x210A) + (ucs-range->char-set #x210A #x2114) + (char-set (ucs->char #x2114)) + (char-set (ucs->char #x2115)) + (ucs-range->char-set #x2116 #x2119) + (ucs-range->char-set #x2119 #x211E) + (ucs-range->char-set #x211E #x2124) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2125)) + (char-set (ucs->char #x2126)) + (char-set (ucs->char #x2127)) + (char-set (ucs->char #x2128)) + (char-set (ucs->char #x2129)) + (ucs-range->char-set #x212A #x212E) + (char-set (ucs->char #x212E)) + (ucs-range->char-set #x212F #x2132) + (char-set (ucs->char #x2132)) + (ucs-range->char-set #x2133 #x2135) + (ucs-range->char-set #x2135 #x2139) + (char-set (ucs->char #x2139)) + (ucs-range->char-set #x213A #x213C) + (ucs-range->char-set #x213D #x2140) + (ucs-range->char-set #x2140 #x2145) + (ucs-range->char-set #x2145 #x214A) + (char-set (ucs->char #x214A)) + (char-set (ucs->char #x214B)) + (ucs-range->char-set #x2153 #x2160) + (ucs-range->char-set #x2160 #x2184) + (ucs-range->char-set #x2190 #x2195) + (ucs-range->char-set #x2195 #x219A) + (ucs-range->char-set #x219A #x219C) + (ucs-range->char-set #x219C #x21A0) + (char-set (ucs->char #x21A0)) + (ucs-range->char-set #x21A1 #x21A3) + (char-set (ucs->char #x21A3)) + (ucs-range->char-set #x21A4 #x21A6) + (char-set (ucs->char #x21A6)) + (ucs-range->char-set #x21A7 #x21AE) + (char-set (ucs->char #x21AE)) + (ucs-range->char-set #x21AF #x21CE) + (ucs-range->char-set #x21CE #x21D0) + (ucs-range->char-set #x21D0 #x21D2) + (char-set (ucs->char #x21D2)) + (char-set (ucs->char #x21D3)) + (char-set (ucs->char #x21D4)) + (ucs-range->char-set #x21D5 #x21F4) + (ucs-range->char-set #x21F4 #x2300) + (ucs-range->char-set #x2300 #x2308) + (ucs-range->char-set #x2308 #x230C) + (ucs-range->char-set #x230C #x2320) + (ucs-range->char-set #x2320 #x2322) + (ucs-range->char-set #x2322 #x2329) + (char-set (ucs->char #x2329)) + (char-set (ucs->char #x232A)) + (ucs-range->char-set #x232B #x237C) + (char-set (ucs->char #x237C)) + (ucs-range->char-set #x237D #x239B) + (ucs-range->char-set #x239B #x23B4) + (char-set (ucs->char #x23B4)) + (char-set (ucs->char #x23B5)) + (char-set (ucs->char #x23B6)) + (ucs-range->char-set #x23B7 #x23D1) + (ucs-range->char-set #x2400 #x2427) + (ucs-range->char-set #x2440 #x244B) + (ucs-range->char-set #x2460 #x249C) + (ucs-range->char-set #x249C #x24EA) + (ucs-range->char-set #x24EA #x2500) + (ucs-range->char-set #x2500 #x25B7) + (char-set (ucs->char #x25B7)) + (ucs-range->char-set #x25B8 #x25C1) + (char-set (ucs->char #x25C1)) + (ucs-range->char-set #x25C2 #x25F8) + (ucs-range->char-set #x25F8 #x2600) + (ucs-range->char-set #x2600 #x2618) + (ucs-range->char-set #x2619 #x266F) + (char-set (ucs->char #x266F)) + (ucs-range->char-set #x2670 #x267E) + (ucs-range->char-set #x2680 #x2692) + (ucs-range->char-set #x26A0 #x26A2) + (ucs-range->char-set #x2701 #x2705) + (ucs-range->char-set #x2706 #x270A) + (ucs-range->char-set #x270C #x2728) + (ucs-range->char-set #x2729 #x274C) + (char-set (ucs->char #x274D)) + (ucs-range->char-set #x274F #x2753) + (char-set (ucs->char #x2756)) + (ucs-range->char-set #x2758 #x275F) + (ucs-range->char-set #x2761 #x2768) + (char-set (ucs->char #x2768)) + (char-set (ucs->char #x2769)) + (char-set (ucs->char #x276A)) + (char-set (ucs->char #x276B)) + (char-set (ucs->char #x276C)) + (char-set (ucs->char #x276D)) + (char-set (ucs->char #x276E)) + (char-set (ucs->char #x276F)) + (char-set (ucs->char #x2770)) + (char-set (ucs->char #x2771)) + (char-set (ucs->char #x2772)) + (char-set (ucs->char #x2773)) + (char-set (ucs->char #x2774)) + (char-set (ucs->char #x2775)) + (ucs-range->char-set #x2776 #x2794) + (char-set (ucs->char #x2794)) + (ucs-range->char-set #x2798 #x27B0) + (ucs-range->char-set #x27B1 #x27BF) + (ucs-range->char-set #x27D0 #x27E6) + (char-set (ucs->char #x27E6)) + (char-set (ucs->char #x27E7)) + (char-set (ucs->char #x27E8)) + (char-set (ucs->char #x27E9)) + (char-set (ucs->char #x27EA)) + (char-set (ucs->char #x27EB)) + (ucs-range->char-set #x27F0 #x2800) + (ucs-range->char-set #x2800 #x2900) + (ucs-range->char-set #x2900 #x2983) + (char-set (ucs->char #x2983)) + (char-set (ucs->char #x2984)) + (char-set (ucs->char #x2985)) + (char-set (ucs->char #x2986)) + (char-set (ucs->char #x2987)) + (char-set (ucs->char #x2988)) + (char-set (ucs->char #x2989)) + (char-set (ucs->char #x298A)) + (char-set (ucs->char #x298B)) + (char-set (ucs->char #x298C)) + (char-set (ucs->char #x298D)) + (char-set (ucs->char #x298E)) + (char-set (ucs->char #x298F)) + (char-set (ucs->char #x2990)) + (char-set (ucs->char #x2991)) + (char-set (ucs->char #x2992)) + (char-set (ucs->char #x2993)) + (char-set (ucs->char #x2994)) + (char-set (ucs->char #x2995)) + (char-set (ucs->char #x2996)) + (char-set (ucs->char #x2997)) + (char-set (ucs->char #x2998)) + (ucs-range->char-set #x2999 #x29D8) + (char-set (ucs->char #x29D8)) + (char-set (ucs->char #x29D9)) + (char-set (ucs->char #x29DA)) + (char-set (ucs->char #x29DB)) + (ucs-range->char-set #x29DC #x29FC) + (char-set (ucs->char #x29FC)) + (char-set (ucs->char #x29FD)) + (ucs-range->char-set #x29FE #x2B00) + (ucs-range->char-set #x2B00 #x2B0E) + (ucs-range->char-set #x2E80 #x2E9A) + (ucs-range->char-set #x2E9B #x2EF4) + (ucs-range->char-set #x2F00 #x2FD6) + (ucs-range->char-set #x2FF0 #x2FFC) + (char-set (ucs->char #x3000)) + (ucs-range->char-set #x3001 #x3004) + (char-set (ucs->char #x3004)) + (char-set (ucs->char #x3005)) + (char-set (ucs->char #x3006)) + (char-set (ucs->char #x3007)) + (char-set (ucs->char #x3008)) + (char-set (ucs->char #x3009)) + (char-set (ucs->char #x300A)) + (char-set (ucs->char #x300B)) + (char-set (ucs->char #x300C)) + (char-set (ucs->char #x300D)) + (char-set (ucs->char #x300E)) + (char-set (ucs->char #x300F)) + (char-set (ucs->char #x3010)) + (char-set (ucs->char #x3011)) + (ucs-range->char-set #x3012 #x3014) + (char-set (ucs->char #x3014)) + (char-set (ucs->char #x3015)) + (char-set (ucs->char #x3016)) + (char-set (ucs->char #x3017)) + (char-set (ucs->char #x3018)) + (char-set (ucs->char #x3019)) + (char-set (ucs->char #x301A)) + (char-set (ucs->char #x301B)) + (char-set (ucs->char #x301C)) + (char-set (ucs->char #x301D)) + (ucs-range->char-set #x301E #x3020) + (char-set (ucs->char #x3020)) + (ucs-range->char-set #x3021 #x302A) + (char-set (ucs->char #x3030)) + (ucs-range->char-set #x3031 #x3036) + (ucs-range->char-set #x3036 #x3038) + (ucs-range->char-set #x3038 #x303B) + (char-set (ucs->char #x303B)) + (char-set (ucs->char #x303C)) + (char-set (ucs->char #x303D)) + (ucs-range->char-set #x303E #x3040) + (ucs-range->char-set #x3041 #x3097) + (ucs-range->char-set #x309B #x309D) + (ucs-range->char-set #x309D #x309F) + (char-set (ucs->char #x309F)) + (char-set (ucs->char #x30A0)) + (ucs-range->char-set #x30A1 #x30FB) + (char-set (ucs->char #x30FB)) + (ucs-range->char-set #x30FC #x30FF) + (char-set (ucs->char #x30FF)) + (ucs-range->char-set #x3105 #x312D) + (ucs-range->char-set #x3131 #x318F) + (ucs-range->char-set #x3190 #x3192) + (ucs-range->char-set #x3192 #x3196) + (ucs-range->char-set #x3196 #x31A0) + (ucs-range->char-set #x31A0 #x31B8) + (ucs-range->char-set #x31F0 #x3200) + (ucs-range->char-set #x3200 #x321F) + (ucs-range->char-set #x3220 #x322A) + (ucs-range->char-set #x322A #x3244) + (char-set (ucs->char #x3250)) + (ucs-range->char-set #x3251 #x3260) + (ucs-range->char-set #x3260 #x327E) + (char-set (ucs->char #x327F)) + (ucs-range->char-set #x3280 #x328A) + (ucs-range->char-set #x328A #x32B1) + (ucs-range->char-set #x32B1 #x32C0) + (ucs-range->char-set #x32C0 #x32FF) + (ucs-range->char-set #x3300 #x3400) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4DC0 #x4E00) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xA000 #xA48D) + (ucs-range->char-set #xA490 #xA4C7) + (ucs-range->char-set #xAC00 #xD7A4) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #xFA30 #xFA6B) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFB13 #xFB18) + (char-set (ucs->char #xFB1D)) + (ucs-range->char-set #xFB1F #xFB29) + (char-set (ucs->char #xFB29)) + (ucs-range->char-set #xFB2A #xFB37) + (ucs-range->char-set #xFB38 #xFB3D) + (char-set (ucs->char #xFB3E)) + (ucs-range->char-set #xFB40 #xFB42) + (ucs-range->char-set #xFB43 #xFB45) + (ucs-range->char-set #xFB46 #xFBB2) + (ucs-range->char-set #xFBD3 #xFD3E) + (char-set (ucs->char #xFD3E)) + (char-set (ucs->char #xFD3F)) + (ucs-range->char-set #xFD50 #xFD90) + (ucs-range->char-set #xFD92 #xFDC8) + (ucs-range->char-set #xFDF0 #xFDFC) + (char-set (ucs->char #xFDFC)) + (char-set (ucs->char #xFDFD)) + (char-set (ucs->char #xFE30)) + (ucs-range->char-set #xFE31 #xFE33) + (ucs-range->char-set #xFE33 #xFE35) + (char-set (ucs->char #xFE35)) + (char-set (ucs->char #xFE36)) + (char-set (ucs->char #xFE37)) + (char-set (ucs->char #xFE38)) + (char-set (ucs->char #xFE39)) + (char-set (ucs->char #xFE3A)) + (char-set (ucs->char #xFE3B)) + (char-set (ucs->char #xFE3C)) + (char-set (ucs->char #xFE3D)) + (char-set (ucs->char #xFE3E)) + (char-set (ucs->char #xFE3F)) + (char-set (ucs->char #xFE40)) + (char-set (ucs->char #xFE41)) + (char-set (ucs->char #xFE42)) + (char-set (ucs->char #xFE43)) + (char-set (ucs->char #xFE44)) + (ucs-range->char-set #xFE45 #xFE47) + (char-set (ucs->char #xFE47)) + (char-set (ucs->char #xFE48)) + (ucs-range->char-set #xFE49 #xFE4D) + (ucs-range->char-set #xFE4D #xFE50) + (ucs-range->char-set #xFE50 #xFE53) + (ucs-range->char-set #xFE54 #xFE58) + (char-set (ucs->char #xFE58)) + (char-set (ucs->char #xFE59)) + (char-set (ucs->char #xFE5A)) + (char-set (ucs->char #xFE5B)) + (char-set (ucs->char #xFE5C)) + (char-set (ucs->char #xFE5D)) + (char-set (ucs->char #xFE5E)) + (ucs-range->char-set #xFE5F #xFE62) + (char-set (ucs->char #xFE62)) + (char-set (ucs->char #xFE63)) + (ucs-range->char-set #xFE64 #xFE67) + (char-set (ucs->char #xFE68)) + (char-set (ucs->char #xFE69)) + (ucs-range->char-set #xFE6A #xFE6C) + (ucs-range->char-set #xFE70 #xFE75) + (ucs-range->char-set #xFE76 #xFEFD) + (ucs-range->char-set #xFF01 #xFF04) + (char-set (ucs->char #xFF04)) + (ucs-range->char-set #xFF05 #xFF08) + (char-set (ucs->char #xFF08)) + (char-set (ucs->char #xFF09)) + (char-set (ucs->char #xFF0A)) + (char-set (ucs->char #xFF0B)) + (char-set (ucs->char #xFF0C)) + (char-set (ucs->char #xFF0D)) + (ucs-range->char-set #xFF0E #xFF10) + (ucs-range->char-set #xFF10 #xFF1A) + (ucs-range->char-set #xFF1A #xFF1C) + (ucs-range->char-set #xFF1C #xFF1F) + (ucs-range->char-set #xFF1F #xFF21) + (ucs-range->char-set #xFF21 #xFF3B) + (char-set (ucs->char #xFF3B)) + (char-set (ucs->char #xFF3C)) + (char-set (ucs->char #xFF3D)) + (char-set (ucs->char #xFF3E)) + (char-set (ucs->char #xFF3F)) + (char-set (ucs->char #xFF40)) + (ucs-range->char-set #xFF41 #xFF5B) + (char-set (ucs->char #xFF5B)) + (char-set (ucs->char #xFF5C)) + (char-set (ucs->char #xFF5D)) + (char-set (ucs->char #xFF5E)) + (char-set (ucs->char #xFF5F)) + (char-set (ucs->char #xFF60)) + (char-set (ucs->char #xFF61)) + (char-set (ucs->char #xFF62)) + (char-set (ucs->char #xFF63)) + (char-set (ucs->char #xFF64)) + (char-set (ucs->char #xFF65)) + (ucs-range->char-set #xFF66 #xFF70) + (char-set (ucs->char #xFF70)) + (ucs-range->char-set #xFF71 #xFF9E) + (ucs-range->char-set #xFF9E #xFFA0) + (ucs-range->char-set #xFFA0 #xFFBF) + (ucs-range->char-set #xFFC2 #xFFC8) + (ucs-range->char-set #xFFCA #xFFD0) + (ucs-range->char-set #xFFD2 #xFFD8) + (ucs-range->char-set #xFFDA #xFFDD) + (ucs-range->char-set #xFFE0 #xFFE2) + (char-set (ucs->char #xFFE2)) + (char-set (ucs->char #xFFE3)) + (char-set (ucs->char #xFFE4)) + (ucs-range->char-set #xFFE5 #xFFE7) + (char-set (ucs->char #xFFE8)) + (ucs-range->char-set #xFFE9 #xFFED) + (ucs-range->char-set #xFFED #xFFEF) + (ucs-range->char-set #xFFFC #xFFFE) + (ucs-range->char-set #x10000 #x1000C) + (ucs-range->char-set #x1000D #x10027) + (ucs-range->char-set #x10028 #x1003B) + (ucs-range->char-set #x1003C #x1003E) + (ucs-range->char-set #x1003F #x1004E) + (ucs-range->char-set #x10050 #x1005E) + (ucs-range->char-set #x10080 #x100FB) + (ucs-range->char-set #x10100 #x10102) + (char-set (ucs->char #x10102)) + (ucs-range->char-set #x10107 #x10134) + (ucs-range->char-set #x10137 #x10140) + (ucs-range->char-set #x10300 #x1031F) + (ucs-range->char-set #x10320 #x10324) + (ucs-range->char-set #x10330 #x1034A) + (char-set (ucs->char #x1034A)) + (ucs-range->char-set #x10380 #x1039E) + (char-set (ucs->char #x1039F)) + (ucs-range->char-set #x10400 #x10450) + (ucs-range->char-set #x10450 #x1049E) + (ucs-range->char-set #x104A0 #x104AA) + (ucs-range->char-set #x10800 #x10806) + (char-set (ucs->char #x10808)) + (ucs-range->char-set #x1080A #x10836) + (ucs-range->char-set #x10837 #x10839) + (char-set (ucs->char #x1083C)) + (char-set (ucs->char #x1083F)) + (ucs-range->char-set #x1D000 #x1D0F6) + (ucs-range->char-set #x1D100 #x1D127) + (ucs-range->char-set #x1D12A #x1D165) + (char-set (ucs->char #x1D166)) + (ucs-range->char-set #x1D16A #x1D16D) + (char-set (ucs->char #x1D16D)) + (ucs-range->char-set #x1D170 #x1D173) + (ucs-range->char-set #x1D183 #x1D185) + (ucs-range->char-set #x1D18C #x1D1AA) + (ucs-range->char-set #x1D1AE #x1D1DE) + (ucs-range->char-set #x1D300 #x1D357) + (ucs-range->char-set #x1D400 #x1D455) + (ucs-range->char-set #x1D456 #x1D49D) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D51E #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D552 #x1D6A4) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (char-set (ucs->char #x1D6C1)) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (char-set (ucs->char #x1D6DB)) + (ucs-range->char-set #x1D6DC #x1D6FB) + (char-set (ucs->char #x1D6FB)) + (ucs-range->char-set #x1D6FC #x1D715) + (char-set (ucs->char #x1D715)) + (ucs-range->char-set #x1D716 #x1D735) + (char-set (ucs->char #x1D735)) + (ucs-range->char-set #x1D736 #x1D74F) + (char-set (ucs->char #x1D74F)) + (ucs-range->char-set #x1D750 #x1D76F) + (char-set (ucs->char #x1D76F)) + (ucs-range->char-set #x1D770 #x1D789) + (char-set (ucs->char #x1D789)) + (ucs-range->char-set #x1D78A #x1D7A9) + (char-set (ucs->char #x1D7A9)) + (ucs-range->char-set #x1D7AA #x1D7C3) + (char-set (ucs->char #x1D7C3)) + (ucs-range->char-set #x1D7C4 #x1D7CA) + (ucs-range->char-set #x1D7CE #x1D800) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + )) + +(define char-set:grapheme-extend + (char-set-union + char-set:other-grapheme-extend + (ucs-range->char-set #x300 #x358) + (ucs-range->char-set #x35D #x370) + (ucs-range->char-set #x483 #x487) + (ucs-range->char-set #x488 #x48A) + (ucs-range->char-set #x591 #x5A2) + (ucs-range->char-set #x5A3 #x5BA) + (ucs-range->char-set #x5BB #x5BE) + (char-set (ucs->char #x5BF)) + (ucs-range->char-set #x5C1 #x5C3) + (char-set (ucs->char #x5C4)) + (ucs-range->char-set #x610 #x616) + (ucs-range->char-set #x64B #x659) + (char-set (ucs->char #x670)) + (ucs-range->char-set #x6D6 #x6DD) + (char-set (ucs->char #x6DE)) + (ucs-range->char-set #x6DF #x6E5) + (ucs-range->char-set #x6E7 #x6E9) + (ucs-range->char-set #x6EA #x6EE) + (char-set (ucs->char #x711)) + (ucs-range->char-set #x730 #x74B) + (ucs-range->char-set #x7A6 #x7B1) + (ucs-range->char-set #x901 #x903) + (char-set (ucs->char #x93C)) + (ucs-range->char-set #x941 #x949) + (char-set (ucs->char #x94D)) + (ucs-range->char-set #x951 #x955) + (ucs-range->char-set #x962 #x964) + (char-set (ucs->char #x981)) + (char-set (ucs->char #x9BC)) + (ucs-range->char-set #x9C1 #x9C5) + (char-set (ucs->char #x9CD)) + (ucs-range->char-set #x9E2 #x9E4) + (ucs-range->char-set #xA01 #xA03) + (char-set (ucs->char #xA3C)) + (ucs-range->char-set #xA41 #xA43) + (ucs-range->char-set #xA47 #xA49) + (ucs-range->char-set #xA4B #xA4E) + (ucs-range->char-set #xA70 #xA72) + (ucs-range->char-set #xA81 #xA83) + (char-set (ucs->char #xABC)) + (ucs-range->char-set #xAC1 #xAC6) + (ucs-range->char-set #xAC7 #xAC9) + (char-set (ucs->char #xACD)) + (ucs-range->char-set #xAE2 #xAE4) + (char-set (ucs->char #xB01)) + (char-set (ucs->char #xB3C)) + (char-set (ucs->char #xB3F)) + (ucs-range->char-set #xB41 #xB44) + (char-set (ucs->char #xB4D)) + (char-set (ucs->char #xB56)) + (char-set (ucs->char #xB82)) + (char-set (ucs->char #xBC0)) + (char-set (ucs->char #xBCD)) + (ucs-range->char-set #xC3E #xC41) + (ucs-range->char-set #xC46 #xC49) + (ucs-range->char-set #xC4A #xC4E) + (ucs-range->char-set #xC55 #xC57) + (char-set (ucs->char #xCBC)) + (char-set (ucs->char #xCBF)) + (char-set (ucs->char #xCC6)) + (ucs-range->char-set #xCCC #xCCE) + (ucs-range->char-set #xD41 #xD44) + (char-set (ucs->char #xD4D)) + (char-set (ucs->char #xDCA)) + (ucs-range->char-set #xDD2 #xDD5) + (char-set (ucs->char #xDD6)) + (char-set (ucs->char #xE31)) + (ucs-range->char-set #xE34 #xE3B) + (ucs-range->char-set #xE47 #xE4F) + (char-set (ucs->char #xEB1)) + (ucs-range->char-set #xEB4 #xEBA) + (ucs-range->char-set #xEBB #xEBD) + (ucs-range->char-set #xEC8 #xECE) + (ucs-range->char-set #xF18 #xF1A) + (char-set (ucs->char #xF35)) + (char-set (ucs->char #xF37)) + (char-set (ucs->char #xF39)) + (ucs-range->char-set #xF71 #xF7F) + (ucs-range->char-set #xF80 #xF85) + (ucs-range->char-set #xF86 #xF88) + (ucs-range->char-set #xF90 #xF98) + (ucs-range->char-set #xF99 #xFBD) + (char-set (ucs->char #xFC6)) + (ucs-range->char-set #x102D #x1031) + (char-set (ucs->char #x1032)) + (ucs-range->char-set #x1036 #x1038) + (char-set (ucs->char #x1039)) + (ucs-range->char-set #x1058 #x105A) + (ucs-range->char-set #x1712 #x1715) + (ucs-range->char-set #x1732 #x1735) + (ucs-range->char-set #x1752 #x1754) + (ucs-range->char-set #x1772 #x1774) + (ucs-range->char-set #x17B7 #x17BE) + (char-set (ucs->char #x17C6)) + (ucs-range->char-set #x17C9 #x17D4) + (char-set (ucs->char #x17DD)) + (ucs-range->char-set #x180B #x180E) + (char-set (ucs->char #x18A9)) + (ucs-range->char-set #x1920 #x1923) + (ucs-range->char-set #x1927 #x1929) + (char-set (ucs->char #x1932)) + (ucs-range->char-set #x1939 #x193C) + (ucs-range->char-set #x20D0 #x20DD) + (ucs-range->char-set #x20DD #x20E1) + (char-set (ucs->char #x20E1)) + (ucs-range->char-set #x20E2 #x20E5) + (ucs-range->char-set #x20E5 #x20EB) + (ucs-range->char-set #x302A #x3030) + (ucs-range->char-set #x3099 #x309B) + (char-set (ucs->char #xFB1E)) + (ucs-range->char-set #xFE00 #xFE10) + (ucs-range->char-set #xFE20 #xFE24) + (ucs-range->char-set #x1D167 #x1D16A) + (ucs-range->char-set #x1D17B #x1D183) + (ucs-range->char-set #x1D185 #x1D18C) + (ucs-range->char-set #x1D1AA #x1D1AE) + (ucs-range->char-set #xE0100 #xE01F0) + )) + +(define char-set:id-continue + (char-set-union + (ucs-range->char-set #x30 #x3A) + (ucs-range->char-set #x41 #x5B) + (char-set (ucs->char #x5F)) + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xB5)) + (char-set (ucs->char #xBA)) + (ucs-range->char-set #xC0 #xD7) + (ucs-range->char-set #xD8 #xF7) + (ucs-range->char-set #xF8 #x1BB) + (char-set (ucs->char #x1BB)) + (ucs-range->char-set #x1BC #x1C0) + (ucs-range->char-set #x1C0 #x1C4) + (ucs-range->char-set #x1C4 #x237) + (ucs-range->char-set #x250 #x2B0) + (ucs-range->char-set #x2B0 #x2C2) + (ucs-range->char-set #x2C6 #x2D2) + (ucs-range->char-set #x2E0 #x2E5) + (char-set (ucs->char #x2EE)) + (ucs-range->char-set #x300 #x358) + (ucs-range->char-set #x35D #x370) + (char-set (ucs->char #x37A)) + (char-set (ucs->char #x386)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x3A2) + (ucs-range->char-set #x3A3 #x3CF) + (ucs-range->char-set #x3D0 #x3F6) + (ucs-range->char-set #x3F7 #x3FC) + (ucs-range->char-set #x400 #x482) + (ucs-range->char-set #x483 #x487) + (ucs-range->char-set #x48A #x4CF) + (ucs-range->char-set #x4D0 #x4F6) + (ucs-range->char-set #x4F8 #x4FA) + (ucs-range->char-set #x500 #x510) + (ucs-range->char-set #x531 #x557) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x561 #x588) + (ucs-range->char-set #x591 #x5A2) + (ucs-range->char-set #x5A3 #x5BA) + (ucs-range->char-set #x5BB #x5BE) + (char-set (ucs->char #x5BF)) + (ucs-range->char-set #x5C1 #x5C3) + (char-set (ucs->char #x5C4)) + (ucs-range->char-set #x5D0 #x5EB) + (ucs-range->char-set #x5F0 #x5F3) + (ucs-range->char-set #x610 #x616) + (ucs-range->char-set #x621 #x63B) + (char-set (ucs->char #x640)) + (ucs-range->char-set #x641 #x64B) + (ucs-range->char-set #x64B #x659) + (ucs-range->char-set #x660 #x66A) + (ucs-range->char-set #x66E #x670) + (char-set (ucs->char #x670)) + (ucs-range->char-set #x671 #x6D4) + (char-set (ucs->char #x6D5)) + (ucs-range->char-set #x6D6 #x6DD) + (ucs-range->char-set #x6DF #x6E5) + (ucs-range->char-set #x6E5 #x6E7) + (ucs-range->char-set #x6E7 #x6E9) + (ucs-range->char-set #x6EA #x6EE) + (ucs-range->char-set #x6EE #x6F0) + (ucs-range->char-set #x6F0 #x6FA) + (ucs-range->char-set #x6FA #x6FD) + (char-set (ucs->char #x6FF)) + (char-set (ucs->char #x710)) + (char-set (ucs->char #x711)) + (ucs-range->char-set #x712 #x730) + (ucs-range->char-set #x730 #x74B) + (ucs-range->char-set #x74D #x750) + (ucs-range->char-set #x780 #x7A6) + (ucs-range->char-set #x7A6 #x7B1) + (char-set (ucs->char #x7B1)) + (ucs-range->char-set #x901 #x903) + (char-set (ucs->char #x903)) + (ucs-range->char-set #x904 #x93A) + (char-set (ucs->char #x93C)) + (char-set (ucs->char #x93D)) + (ucs-range->char-set #x93E #x941) + (ucs-range->char-set #x941 #x949) + (ucs-range->char-set #x949 #x94D) + (char-set (ucs->char #x94D)) + (char-set (ucs->char #x950)) + (ucs-range->char-set #x951 #x955) + (ucs-range->char-set #x958 #x962) + (ucs-range->char-set #x962 #x964) + (ucs-range->char-set #x966 #x970) + (char-set (ucs->char #x981)) + (ucs-range->char-set #x982 #x984) + (ucs-range->char-set #x985 #x98D) + (ucs-range->char-set #x98F #x991) + (ucs-range->char-set #x993 #x9A9) + (ucs-range->char-set #x9AA #x9B1) + (char-set (ucs->char #x9B2)) + (ucs-range->char-set #x9B6 #x9BA) + (char-set (ucs->char #x9BC)) + (char-set (ucs->char #x9BD)) + (ucs-range->char-set #x9BE #x9C1) + (ucs-range->char-set #x9C1 #x9C5) + (ucs-range->char-set #x9C7 #x9C9) + (ucs-range->char-set #x9CB #x9CD) + (char-set (ucs->char #x9CD)) + (char-set (ucs->char #x9D7)) + (ucs-range->char-set #x9DC #x9DE) + (ucs-range->char-set #x9DF #x9E2) + (ucs-range->char-set #x9E2 #x9E4) + (ucs-range->char-set #x9E6 #x9F0) + (ucs-range->char-set #x9F0 #x9F2) + (ucs-range->char-set #xA01 #xA03) + (char-set (ucs->char #xA03)) + (ucs-range->char-set #xA05 #xA0B) + (ucs-range->char-set #xA0F #xA11) + (ucs-range->char-set #xA13 #xA29) + (ucs-range->char-set #xA2A #xA31) + (ucs-range->char-set #xA32 #xA34) + (ucs-range->char-set #xA35 #xA37) + (ucs-range->char-set #xA38 #xA3A) + (char-set (ucs->char #xA3C)) + (ucs-range->char-set #xA3E #xA41) + (ucs-range->char-set #xA41 #xA43) + (ucs-range->char-set #xA47 #xA49) + (ucs-range->char-set #xA4B #xA4E) + (ucs-range->char-set #xA59 #xA5D) + (char-set (ucs->char #xA5E)) + (ucs-range->char-set #xA66 #xA70) + (ucs-range->char-set #xA70 #xA72) + (ucs-range->char-set #xA72 #xA75) + (ucs-range->char-set #xA81 #xA83) + (char-set (ucs->char #xA83)) + (ucs-range->char-set #xA85 #xA8E) + (ucs-range->char-set #xA8F #xA92) + (ucs-range->char-set #xA93 #xAA9) + (ucs-range->char-set #xAAA #xAB1) + (ucs-range->char-set #xAB2 #xAB4) + (ucs-range->char-set #xAB5 #xABA) + (char-set (ucs->char #xABC)) + (char-set (ucs->char #xABD)) + (ucs-range->char-set #xABE #xAC1) + (ucs-range->char-set #xAC1 #xAC6) + (ucs-range->char-set #xAC7 #xAC9) + (char-set (ucs->char #xAC9)) + (ucs-range->char-set #xACB #xACD) + (char-set (ucs->char #xACD)) + (char-set (ucs->char #xAD0)) + (ucs-range->char-set #xAE0 #xAE2) + (ucs-range->char-set #xAE2 #xAE4) + (ucs-range->char-set #xAE6 #xAF0) + (char-set (ucs->char #xB01)) + (ucs-range->char-set #xB02 #xB04) + (ucs-range->char-set #xB05 #xB0D) + (ucs-range->char-set #xB0F #xB11) + (ucs-range->char-set #xB13 #xB29) + (ucs-range->char-set #xB2A #xB31) + (ucs-range->char-set #xB32 #xB34) + (ucs-range->char-set #xB35 #xB3A) + (char-set (ucs->char #xB3C)) + (char-set (ucs->char #xB3D)) + (char-set (ucs->char #xB3E)) + (char-set (ucs->char #xB3F)) + (char-set (ucs->char #xB40)) + (ucs-range->char-set #xB41 #xB44) + (ucs-range->char-set #xB47 #xB49) + (ucs-range->char-set #xB4B #xB4D) + (char-set (ucs->char #xB4D)) + (char-set (ucs->char #xB56)) + (char-set (ucs->char #xB57)) + (ucs-range->char-set #xB5C #xB5E) + (ucs-range->char-set #xB5F #xB62) + (ucs-range->char-set #xB66 #xB70) + (char-set (ucs->char #xB71)) + (char-set (ucs->char #xB82)) + (char-set (ucs->char #xB83)) + (ucs-range->char-set #xB85 #xB8B) + (ucs-range->char-set #xB8E #xB91) + (ucs-range->char-set #xB92 #xB96) + (ucs-range->char-set #xB99 #xB9B) + (char-set (ucs->char #xB9C)) + (ucs-range->char-set #xB9E #xBA0) + (ucs-range->char-set #xBA3 #xBA5) + (ucs-range->char-set #xBA8 #xBAB) + (ucs-range->char-set #xBAE #xBB6) + (ucs-range->char-set #xBB7 #xBBA) + (ucs-range->char-set #xBBE #xBC0) + (char-set (ucs->char #xBC0)) + (ucs-range->char-set #xBC1 #xBC3) + (ucs-range->char-set #xBC6 #xBC9) + (ucs-range->char-set #xBCA #xBCD) + (char-set (ucs->char #xBCD)) + (char-set (ucs->char #xBD7)) + (ucs-range->char-set #xBE7 #xBF0) + (ucs-range->char-set #xC01 #xC04) + (ucs-range->char-set #xC05 #xC0D) + (ucs-range->char-set #xC0E #xC11) + (ucs-range->char-set #xC12 #xC29) + (ucs-range->char-set #xC2A #xC34) + (ucs-range->char-set #xC35 #xC3A) + (ucs-range->char-set #xC3E #xC41) + (ucs-range->char-set #xC41 #xC45) + (ucs-range->char-set #xC46 #xC49) + (ucs-range->char-set #xC4A #xC4E) + (ucs-range->char-set #xC55 #xC57) + (ucs-range->char-set #xC60 #xC62) + (ucs-range->char-set #xC66 #xC70) + (ucs-range->char-set #xC82 #xC84) + (ucs-range->char-set #xC85 #xC8D) + (ucs-range->char-set #xC8E #xC91) + (ucs-range->char-set #xC92 #xCA9) + (ucs-range->char-set #xCAA #xCB4) + (ucs-range->char-set #xCB5 #xCBA) + (char-set (ucs->char #xCBC)) + (char-set (ucs->char #xCBD)) + (char-set (ucs->char #xCBE)) + (char-set (ucs->char #xCBF)) + (ucs-range->char-set #xCC0 #xCC5) + (char-set (ucs->char #xCC6)) + (ucs-range->char-set #xCC7 #xCC9) + (ucs-range->char-set #xCCA #xCCC) + (ucs-range->char-set #xCCC #xCCE) + (ucs-range->char-set #xCD5 #xCD7) + (char-set (ucs->char #xCDE)) + (ucs-range->char-set #xCE0 #xCE2) + (ucs-range->char-set #xCE6 #xCF0) + (ucs-range->char-set #xD02 #xD04) + (ucs-range->char-set #xD05 #xD0D) + (ucs-range->char-set #xD0E #xD11) + (ucs-range->char-set #xD12 #xD29) + (ucs-range->char-set #xD2A #xD3A) + (ucs-range->char-set #xD3E #xD41) + (ucs-range->char-set #xD41 #xD44) + (ucs-range->char-set #xD46 #xD49) + (ucs-range->char-set #xD4A #xD4D) + (char-set (ucs->char #xD4D)) + (char-set (ucs->char #xD57)) + (ucs-range->char-set #xD60 #xD62) + (ucs-range->char-set #xD66 #xD70) + (ucs-range->char-set #xD82 #xD84) + (ucs-range->char-set #xD85 #xD97) + (ucs-range->char-set #xD9A #xDB2) + (ucs-range->char-set #xDB3 #xDBC) + (char-set (ucs->char #xDBD)) + (ucs-range->char-set #xDC0 #xDC7) + (char-set (ucs->char #xDCA)) + (ucs-range->char-set #xDCF #xDD2) + (ucs-range->char-set #xDD2 #xDD5) + (char-set (ucs->char #xDD6)) + (ucs-range->char-set #xDD8 #xDE0) + (ucs-range->char-set #xDF2 #xDF4) + (ucs-range->char-set #xE01 #xE31) + (char-set (ucs->char #xE31)) + (ucs-range->char-set #xE32 #xE34) + (ucs-range->char-set #xE34 #xE3B) + (ucs-range->char-set #xE40 #xE46) + (char-set (ucs->char #xE46)) + (ucs-range->char-set #xE47 #xE4F) + (ucs-range->char-set #xE50 #xE5A) + (ucs-range->char-set #xE81 #xE83) + (char-set (ucs->char #xE84)) + (ucs-range->char-set #xE87 #xE89) + (char-set (ucs->char #xE8A)) + (char-set (ucs->char #xE8D)) + (ucs-range->char-set #xE94 #xE98) + (ucs-range->char-set #xE99 #xEA0) + (ucs-range->char-set #xEA1 #xEA4) + (char-set (ucs->char #xEA5)) + (char-set (ucs->char #xEA7)) + (ucs-range->char-set #xEAA #xEAC) + (ucs-range->char-set #xEAD #xEB1) + (char-set (ucs->char #xEB1)) + (ucs-range->char-set #xEB2 #xEB4) + (ucs-range->char-set #xEB4 #xEBA) + (ucs-range->char-set #xEBB #xEBD) + (char-set (ucs->char #xEBD)) + (ucs-range->char-set #xEC0 #xEC5) + (char-set (ucs->char #xEC6)) + (ucs-range->char-set #xEC8 #xECE) + (ucs-range->char-set #xED0 #xEDA) + (ucs-range->char-set #xEDC #xEDE) + (char-set (ucs->char #xF00)) + (ucs-range->char-set #xF18 #xF1A) + (ucs-range->char-set #xF20 #xF2A) + (char-set (ucs->char #xF35)) + (char-set (ucs->char #xF37)) + (char-set (ucs->char #xF39)) + (ucs-range->char-set #xF3E #xF40) + (ucs-range->char-set #xF40 #xF48) + (ucs-range->char-set #xF49 #xF6B) + (ucs-range->char-set #xF71 #xF7F) + (char-set (ucs->char #xF7F)) + (ucs-range->char-set #xF80 #xF85) + (ucs-range->char-set #xF86 #xF88) + (ucs-range->char-set #xF88 #xF8C) + (ucs-range->char-set #xF90 #xF98) + (ucs-range->char-set #xF99 #xFBD) + (char-set (ucs->char #xFC6)) + (ucs-range->char-set #x1000 #x1022) + (ucs-range->char-set #x1023 #x1028) + (ucs-range->char-set #x1029 #x102B) + (char-set (ucs->char #x102C)) + (ucs-range->char-set #x102D #x1031) + (char-set (ucs->char #x1031)) + (char-set (ucs->char #x1032)) + (ucs-range->char-set #x1036 #x1038) + (char-set (ucs->char #x1038)) + (char-set (ucs->char #x1039)) + (ucs-range->char-set #x1040 #x104A) + (ucs-range->char-set #x1050 #x1056) + (ucs-range->char-set #x1056 #x1058) + (ucs-range->char-set #x1058 #x105A) + (ucs-range->char-set #x10A0 #x10C6) + (ucs-range->char-set #x10D0 #x10F9) + (ucs-range->char-set #x1100 #x115A) + (ucs-range->char-set #x115F #x11A3) + (ucs-range->char-set #x11A8 #x11FA) + (ucs-range->char-set #x1200 #x1207) + (ucs-range->char-set #x1208 #x1247) + (char-set (ucs->char #x1248)) + (ucs-range->char-set #x124A #x124E) + (ucs-range->char-set #x1250 #x1257) + (char-set (ucs->char #x1258)) + (ucs-range->char-set #x125A #x125E) + (ucs-range->char-set #x1260 #x1287) + (char-set (ucs->char #x1288)) + (ucs-range->char-set #x128A #x128E) + (ucs-range->char-set #x1290 #x12AF) + (char-set (ucs->char #x12B0)) + (ucs-range->char-set #x12B2 #x12B6) + (ucs-range->char-set #x12B8 #x12BF) + (char-set (ucs->char #x12C0)) + (ucs-range->char-set #x12C2 #x12C6) + (ucs-range->char-set #x12C8 #x12CF) + (ucs-range->char-set #x12D0 #x12D7) + (ucs-range->char-set #x12D8 #x12EF) + (ucs-range->char-set #x12F0 #x130F) + (char-set (ucs->char #x1310)) + (ucs-range->char-set #x1312 #x1316) + (ucs-range->char-set #x1318 #x131F) + (ucs-range->char-set #x1320 #x1347) + (ucs-range->char-set #x1348 #x135B) + (ucs-range->char-set #x1369 #x1372) + (ucs-range->char-set #x13A0 #x13F5) + (ucs-range->char-set #x1401 #x166D) + (ucs-range->char-set #x166F #x1677) + (ucs-range->char-set #x1681 #x169B) + (ucs-range->char-set #x16A0 #x16EB) + (ucs-range->char-set #x16EE #x16F1) + (ucs-range->char-set #x1700 #x170D) + (ucs-range->char-set #x170E #x1712) + (ucs-range->char-set #x1712 #x1715) + (ucs-range->char-set #x1720 #x1732) + (ucs-range->char-set #x1732 #x1735) + (ucs-range->char-set #x1740 #x1752) + (ucs-range->char-set #x1752 #x1754) + (ucs-range->char-set #x1760 #x176D) + (ucs-range->char-set #x176E #x1771) + (ucs-range->char-set #x1772 #x1774) + (ucs-range->char-set #x1780 #x17B4) + (char-set (ucs->char #x17B6)) + (ucs-range->char-set #x17B7 #x17BE) + (ucs-range->char-set #x17BE #x17C6) + (char-set (ucs->char #x17C6)) + (ucs-range->char-set #x17C7 #x17C9) + (ucs-range->char-set #x17C9 #x17D4) + (char-set (ucs->char #x17D7)) + (char-set (ucs->char #x17DC)) + (char-set (ucs->char #x17DD)) + (ucs-range->char-set #x17E0 #x17EA) + (ucs-range->char-set #x180B #x180E) + (ucs-range->char-set #x1810 #x181A) + (ucs-range->char-set #x1820 #x1843) + (char-set (ucs->char #x1843)) + (ucs-range->char-set #x1844 #x1878) + (ucs-range->char-set #x1880 #x18A9) + (char-set (ucs->char #x18A9)) + (ucs-range->char-set #x1900 #x191D) + (ucs-range->char-set #x1920 #x1923) + (ucs-range->char-set #x1923 #x1927) + (ucs-range->char-set #x1927 #x1929) + (ucs-range->char-set #x1929 #x192C) + (ucs-range->char-set #x1930 #x1932) + (char-set (ucs->char #x1932)) + (ucs-range->char-set #x1933 #x1939) + (ucs-range->char-set #x1939 #x193C) + (ucs-range->char-set #x1946 #x1950) + (ucs-range->char-set #x1950 #x196E) + (ucs-range->char-set #x1970 #x1975) + (ucs-range->char-set #x1D00 #x1D2C) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x1D62 #x1D6C) + (ucs-range->char-set #x1E00 #x1E9C) + (ucs-range->char-set #x1EA0 #x1EFA) + (ucs-range->char-set #x1F00 #x1F16) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F20 #x1F46) + (ucs-range->char-set #x1F48 #x1F4E) + (ucs-range->char-set #x1F50 #x1F58) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (ucs-range->char-set #x1F5F #x1F7E) + (ucs-range->char-set #x1F80 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FBD) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FCD) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FDC) + (ucs-range->char-set #x1FE0 #x1FED) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FFD) + (ucs-range->char-set #x203F #x2041) + (char-set (ucs->char #x2054)) + (char-set (ucs->char #x2071)) + (char-set (ucs->char #x207F)) + (ucs-range->char-set #x20D0 #x20DD) + (char-set (ucs->char #x20E1)) + (ucs-range->char-set #x20E5 #x20EB) + (char-set (ucs->char #x2102)) + (char-set (ucs->char #x2107)) + (ucs-range->char-set #x210A #x2114) + (char-set (ucs->char #x2115)) + (char-set (ucs->char #x2118)) + (ucs-range->char-set #x2119 #x211E) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2126)) + (char-set (ucs->char #x2128)) + (ucs-range->char-set #x212A #x212E) + (char-set (ucs->char #x212E)) + (ucs-range->char-set #x212F #x2132) + (ucs-range->char-set #x2133 #x2135) + (ucs-range->char-set #x2135 #x2139) + (char-set (ucs->char #x2139)) + (ucs-range->char-set #x213D #x2140) + (ucs-range->char-set #x2145 #x214A) + (ucs-range->char-set #x2160 #x2184) + (char-set (ucs->char #x3005)) + (char-set (ucs->char #x3006)) + (char-set (ucs->char #x3007)) + (ucs-range->char-set #x3021 #x302A) + (ucs-range->char-set #x302A #x3030) + (ucs-range->char-set #x3031 #x3036) + (ucs-range->char-set #x3038 #x303B) + (char-set (ucs->char #x303B)) + (char-set (ucs->char #x303C)) + (ucs-range->char-set #x3041 #x3097) + (ucs-range->char-set #x3099 #x309B) + (ucs-range->char-set #x309B #x309D) + (ucs-range->char-set #x309D #x309F) + (char-set (ucs->char #x309F)) + (ucs-range->char-set #x30A1 #x30FB) + (char-set (ucs->char #x30FB)) + (ucs-range->char-set #x30FC #x30FF) + (char-set (ucs->char #x30FF)) + (ucs-range->char-set #x3105 #x312D) + (ucs-range->char-set #x3131 #x318F) + (ucs-range->char-set #x31A0 #x31B8) + (ucs-range->char-set #x31F0 #x3200) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xA000 #xA48D) + (ucs-range->char-set #xAC00 #xD7A4) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #xFA30 #xFA6B) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFB13 #xFB18) + (char-set (ucs->char #xFB1D)) + (char-set (ucs->char #xFB1E)) + (ucs-range->char-set #xFB1F #xFB29) + (ucs-range->char-set #xFB2A #xFB37) + (ucs-range->char-set #xFB38 #xFB3D) + (char-set (ucs->char #xFB3E)) + (ucs-range->char-set #xFB40 #xFB42) + (ucs-range->char-set #xFB43 #xFB45) + (ucs-range->char-set #xFB46 #xFBB2) + (ucs-range->char-set #xFBD3 #xFD3E) + (ucs-range->char-set #xFD50 #xFD90) + (ucs-range->char-set #xFD92 #xFDC8) + (ucs-range->char-set #xFDF0 #xFDFC) + (ucs-range->char-set #xFE00 #xFE10) + (ucs-range->char-set #xFE20 #xFE24) + (ucs-range->char-set #xFE33 #xFE35) + (ucs-range->char-set #xFE4D #xFE50) + (ucs-range->char-set #xFE70 #xFE75) + (ucs-range->char-set #xFE76 #xFEFD) + (ucs-range->char-set #xFF10 #xFF1A) + (ucs-range->char-set #xFF21 #xFF3B) + (char-set (ucs->char #xFF3F)) + (ucs-range->char-set #xFF41 #xFF5B) + (char-set (ucs->char #xFF65)) + (ucs-range->char-set #xFF66 #xFF70) + (char-set (ucs->char #xFF70)) + (ucs-range->char-set #xFF71 #xFF9E) + (ucs-range->char-set #xFF9E #xFFA0) + (ucs-range->char-set #xFFA0 #xFFBF) + (ucs-range->char-set #xFFC2 #xFFC8) + (ucs-range->char-set #xFFCA #xFFD0) + (ucs-range->char-set #xFFD2 #xFFD8) + (ucs-range->char-set #xFFDA #xFFDD) + (ucs-range->char-set #x10000 #x1000C) + (ucs-range->char-set #x1000D #x10027) + (ucs-range->char-set #x10028 #x1003B) + (ucs-range->char-set #x1003C #x1003E) + (ucs-range->char-set #x1003F #x1004E) + (ucs-range->char-set #x10050 #x1005E) + (ucs-range->char-set #x10080 #x100FB) + (ucs-range->char-set #x10300 #x1031F) + (ucs-range->char-set #x10330 #x1034A) + (char-set (ucs->char #x1034A)) + (ucs-range->char-set #x10380 #x1039E) + (ucs-range->char-set #x10400 #x10450) + (ucs-range->char-set #x10450 #x1049E) + (ucs-range->char-set #x104A0 #x104AA) + (ucs-range->char-set #x10800 #x10806) + (char-set (ucs->char #x10808)) + (ucs-range->char-set #x1080A #x10836) + (ucs-range->char-set #x10837 #x10839) + (char-set (ucs->char #x1083C)) + (char-set (ucs->char #x1083F)) + (ucs-range->char-set #x1D165 #x1D167) + (ucs-range->char-set #x1D167 #x1D16A) + (ucs-range->char-set #x1D16D #x1D173) + (ucs-range->char-set #x1D17B #x1D183) + (ucs-range->char-set #x1D185 #x1D18C) + (ucs-range->char-set #x1D1AA #x1D1AE) + (ucs-range->char-set #x1D400 #x1D455) + (ucs-range->char-set #x1D456 #x1D49D) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D51E #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D552 #x1D6A4) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (ucs-range->char-set #x1D6DC #x1D6FB) + (ucs-range->char-set #x1D6FC #x1D715) + (ucs-range->char-set #x1D716 #x1D735) + (ucs-range->char-set #x1D736 #x1D74F) + (ucs-range->char-set #x1D750 #x1D76F) + (ucs-range->char-set #x1D770 #x1D789) + (ucs-range->char-set #x1D78A #x1D7A9) + (ucs-range->char-set #x1D7AA #x1D7C3) + (ucs-range->char-set #x1D7C4 #x1D7CA) + (ucs-range->char-set #x1D7CE #x1D800) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + (ucs-range->char-set #xE0100 #xE01F0) + )) + +(define char-set:id-start + (char-set-union + char-set:other-id-start + (ucs-range->char-set #x41 #x5B) + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xB5)) + (char-set (ucs->char #xBA)) + (ucs-range->char-set #xC0 #xD7) + (ucs-range->char-set #xD8 #xF7) + (ucs-range->char-set #xF8 #x1BB) + (char-set (ucs->char #x1BB)) + (ucs-range->char-set #x1BC #x1C0) + (ucs-range->char-set #x1C0 #x1C4) + (ucs-range->char-set #x1C4 #x237) + (ucs-range->char-set #x250 #x2B0) + (ucs-range->char-set #x2B0 #x2C2) + (ucs-range->char-set #x2C6 #x2D2) + (ucs-range->char-set #x2E0 #x2E5) + (char-set (ucs->char #x2EE)) + (char-set (ucs->char #x37A)) + (char-set (ucs->char #x386)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x3A2) + (ucs-range->char-set #x3A3 #x3CF) + (ucs-range->char-set #x3D0 #x3F6) + (ucs-range->char-set #x3F7 #x3FC) + (ucs-range->char-set #x400 #x482) + (ucs-range->char-set #x48A #x4CF) + (ucs-range->char-set #x4D0 #x4F6) + (ucs-range->char-set #x4F8 #x4FA) + (ucs-range->char-set #x500 #x510) + (ucs-range->char-set #x531 #x557) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x561 #x588) + (ucs-range->char-set #x5D0 #x5EB) + (ucs-range->char-set #x5F0 #x5F3) + (ucs-range->char-set #x621 #x63B) + (char-set (ucs->char #x640)) + (ucs-range->char-set #x641 #x64B) + (ucs-range->char-set #x66E #x670) + (ucs-range->char-set #x671 #x6D4) + (char-set (ucs->char #x6D5)) + (ucs-range->char-set #x6E5 #x6E7) + (ucs-range->char-set #x6EE #x6F0) + (ucs-range->char-set #x6FA #x6FD) + (char-set (ucs->char #x6FF)) + (char-set (ucs->char #x710)) + (ucs-range->char-set #x712 #x730) + (ucs-range->char-set #x74D #x750) + (ucs-range->char-set #x780 #x7A6) + (char-set (ucs->char #x7B1)) + (ucs-range->char-set #x904 #x93A) + (char-set (ucs->char #x93D)) + (char-set (ucs->char #x950)) + (ucs-range->char-set #x958 #x962) + (ucs-range->char-set #x985 #x98D) + (ucs-range->char-set #x98F #x991) + (ucs-range->char-set #x993 #x9A9) + (ucs-range->char-set #x9AA #x9B1) + (char-set (ucs->char #x9B2)) + (ucs-range->char-set #x9B6 #x9BA) + (char-set (ucs->char #x9BD)) + (ucs-range->char-set #x9DC #x9DE) + (ucs-range->char-set #x9DF #x9E2) + (ucs-range->char-set #x9F0 #x9F2) + (ucs-range->char-set #xA05 #xA0B) + (ucs-range->char-set #xA0F #xA11) + (ucs-range->char-set #xA13 #xA29) + (ucs-range->char-set #xA2A #xA31) + (ucs-range->char-set #xA32 #xA34) + (ucs-range->char-set #xA35 #xA37) + (ucs-range->char-set #xA38 #xA3A) + (ucs-range->char-set #xA59 #xA5D) + (char-set (ucs->char #xA5E)) + (ucs-range->char-set #xA72 #xA75) + (ucs-range->char-set #xA85 #xA8E) + (ucs-range->char-set #xA8F #xA92) + (ucs-range->char-set #xA93 #xAA9) + (ucs-range->char-set #xAAA #xAB1) + (ucs-range->char-set #xAB2 #xAB4) + (ucs-range->char-set #xAB5 #xABA) + (char-set (ucs->char #xABD)) + (char-set (ucs->char #xAD0)) + (ucs-range->char-set #xAE0 #xAE2) + (ucs-range->char-set #xB05 #xB0D) + (ucs-range->char-set #xB0F #xB11) + (ucs-range->char-set #xB13 #xB29) + (ucs-range->char-set #xB2A #xB31) + (ucs-range->char-set #xB32 #xB34) + (ucs-range->char-set #xB35 #xB3A) + (char-set (ucs->char #xB3D)) + (ucs-range->char-set #xB5C #xB5E) + (ucs-range->char-set #xB5F #xB62) + (char-set (ucs->char #xB71)) + (char-set (ucs->char #xB83)) + (ucs-range->char-set #xB85 #xB8B) + (ucs-range->char-set #xB8E #xB91) + (ucs-range->char-set #xB92 #xB96) + (ucs-range->char-set #xB99 #xB9B) + (char-set (ucs->char #xB9C)) + (ucs-range->char-set #xB9E #xBA0) + (ucs-range->char-set #xBA3 #xBA5) + (ucs-range->char-set #xBA8 #xBAB) + (ucs-range->char-set #xBAE #xBB6) + (ucs-range->char-set #xBB7 #xBBA) + (ucs-range->char-set #xC05 #xC0D) + (ucs-range->char-set #xC0E #xC11) + (ucs-range->char-set #xC12 #xC29) + (ucs-range->char-set #xC2A #xC34) + (ucs-range->char-set #xC35 #xC3A) + (ucs-range->char-set #xC60 #xC62) + (ucs-range->char-set #xC85 #xC8D) + (ucs-range->char-set #xC8E #xC91) + (ucs-range->char-set #xC92 #xCA9) + (ucs-range->char-set #xCAA #xCB4) + (ucs-range->char-set #xCB5 #xCBA) + (char-set (ucs->char #xCBD)) + (char-set (ucs->char #xCDE)) + (ucs-range->char-set #xCE0 #xCE2) + (ucs-range->char-set #xD05 #xD0D) + (ucs-range->char-set #xD0E #xD11) + (ucs-range->char-set #xD12 #xD29) + (ucs-range->char-set #xD2A #xD3A) + (ucs-range->char-set #xD60 #xD62) + (ucs-range->char-set #xD85 #xD97) + (ucs-range->char-set #xD9A #xDB2) + (ucs-range->char-set #xDB3 #xDBC) + (char-set (ucs->char #xDBD)) + (ucs-range->char-set #xDC0 #xDC7) + (ucs-range->char-set #xE01 #xE31) + (ucs-range->char-set #xE32 #xE34) + (ucs-range->char-set #xE40 #xE46) + (char-set (ucs->char #xE46)) + (ucs-range->char-set #xE81 #xE83) + (char-set (ucs->char #xE84)) + (ucs-range->char-set #xE87 #xE89) + (char-set (ucs->char #xE8A)) + (char-set (ucs->char #xE8D)) + (ucs-range->char-set #xE94 #xE98) + (ucs-range->char-set #xE99 #xEA0) + (ucs-range->char-set #xEA1 #xEA4) + (char-set (ucs->char #xEA5)) + (char-set (ucs->char #xEA7)) + (ucs-range->char-set #xEAA #xEAC) + (ucs-range->char-set #xEAD #xEB1) + (ucs-range->char-set #xEB2 #xEB4) + (char-set (ucs->char #xEBD)) + (ucs-range->char-set #xEC0 #xEC5) + (char-set (ucs->char #xEC6)) + (ucs-range->char-set #xEDC #xEDE) + (char-set (ucs->char #xF00)) + (ucs-range->char-set #xF40 #xF48) + (ucs-range->char-set #xF49 #xF6B) + (ucs-range->char-set #xF88 #xF8C) + (ucs-range->char-set #x1000 #x1022) + (ucs-range->char-set #x1023 #x1028) + (ucs-range->char-set #x1029 #x102B) + (ucs-range->char-set #x1050 #x1056) + (ucs-range->char-set #x10A0 #x10C6) + (ucs-range->char-set #x10D0 #x10F9) + (ucs-range->char-set #x1100 #x115A) + (ucs-range->char-set #x115F #x11A3) + (ucs-range->char-set #x11A8 #x11FA) + (ucs-range->char-set #x1200 #x1207) + (ucs-range->char-set #x1208 #x1247) + (char-set (ucs->char #x1248)) + (ucs-range->char-set #x124A #x124E) + (ucs-range->char-set #x1250 #x1257) + (char-set (ucs->char #x1258)) + (ucs-range->char-set #x125A #x125E) + (ucs-range->char-set #x1260 #x1287) + (char-set (ucs->char #x1288)) + (ucs-range->char-set #x128A #x128E) + (ucs-range->char-set #x1290 #x12AF) + (char-set (ucs->char #x12B0)) + (ucs-range->char-set #x12B2 #x12B6) + (ucs-range->char-set #x12B8 #x12BF) + (char-set (ucs->char #x12C0)) + (ucs-range->char-set #x12C2 #x12C6) + (ucs-range->char-set #x12C8 #x12CF) + (ucs-range->char-set #x12D0 #x12D7) + (ucs-range->char-set #x12D8 #x12EF) + (ucs-range->char-set #x12F0 #x130F) + (char-set (ucs->char #x1310)) + (ucs-range->char-set #x1312 #x1316) + (ucs-range->char-set #x1318 #x131F) + (ucs-range->char-set #x1320 #x1347) + (ucs-range->char-set #x1348 #x135B) + (ucs-range->char-set #x13A0 #x13F5) + (ucs-range->char-set #x1401 #x166D) + (ucs-range->char-set #x166F #x1677) + (ucs-range->char-set #x1681 #x169B) + (ucs-range->char-set #x16A0 #x16EB) + (ucs-range->char-set #x16EE #x16F1) + (ucs-range->char-set #x1700 #x170D) + (ucs-range->char-set #x170E #x1712) + (ucs-range->char-set #x1720 #x1732) + (ucs-range->char-set #x1740 #x1752) + (ucs-range->char-set #x1760 #x176D) + (ucs-range->char-set #x176E #x1771) + (ucs-range->char-set #x1780 #x17B4) + (char-set (ucs->char #x17D7)) + (char-set (ucs->char #x17DC)) + (ucs-range->char-set #x1820 #x1843) + (char-set (ucs->char #x1843)) + (ucs-range->char-set #x1844 #x1878) + (ucs-range->char-set #x1880 #x18A9) + (ucs-range->char-set #x1900 #x191D) + (ucs-range->char-set #x1950 #x196E) + (ucs-range->char-set #x1970 #x1975) + (ucs-range->char-set #x1D00 #x1D2C) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x1D62 #x1D6C) + (ucs-range->char-set #x1E00 #x1E9C) + (ucs-range->char-set #x1EA0 #x1EFA) + (ucs-range->char-set #x1F00 #x1F16) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F20 #x1F46) + (ucs-range->char-set #x1F48 #x1F4E) + (ucs-range->char-set #x1F50 #x1F58) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (ucs-range->char-set #x1F5F #x1F7E) + (ucs-range->char-set #x1F80 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FBD) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FCD) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FDC) + (ucs-range->char-set #x1FE0 #x1FED) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FFD) + (char-set (ucs->char #x2071)) + (char-set (ucs->char #x207F)) + (char-set (ucs->char #x2102)) + (char-set (ucs->char #x2107)) + (ucs-range->char-set #x210A #x2114) + (char-set (ucs->char #x2115)) + (ucs-range->char-set #x2119 #x211E) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2126)) + (char-set (ucs->char #x2128)) + (ucs-range->char-set #x212A #x212E) + (ucs-range->char-set #x212F #x2132) + (ucs-range->char-set #x2133 #x2135) + (ucs-range->char-set #x2135 #x2139) + (char-set (ucs->char #x2139)) + (ucs-range->char-set #x213D #x2140) + (ucs-range->char-set #x2145 #x214A) + (ucs-range->char-set #x2160 #x2184) + (char-set (ucs->char #x3005)) + (char-set (ucs->char #x3006)) + (char-set (ucs->char #x3007)) + (ucs-range->char-set #x3021 #x302A) + (ucs-range->char-set #x3031 #x3036) + (ucs-range->char-set #x3038 #x303B) + (char-set (ucs->char #x303B)) + (char-set (ucs->char #x303C)) + (ucs-range->char-set #x3041 #x3097) + (ucs-range->char-set #x309D #x309F) + (char-set (ucs->char #x309F)) + (ucs-range->char-set #x30A1 #x30FB) + (ucs-range->char-set #x30FC #x30FF) + (char-set (ucs->char #x30FF)) + (ucs-range->char-set #x3105 #x312D) + (ucs-range->char-set #x3131 #x318F) + (ucs-range->char-set #x31A0 #x31B8) + (ucs-range->char-set #x31F0 #x3200) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xA000 #xA48D) + (ucs-range->char-set #xAC00 #xD7A4) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #xFA30 #xFA6B) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFB13 #xFB18) + (char-set (ucs->char #xFB1D)) + (ucs-range->char-set #xFB1F #xFB29) + (ucs-range->char-set #xFB2A #xFB37) + (ucs-range->char-set #xFB38 #xFB3D) + (char-set (ucs->char #xFB3E)) + (ucs-range->char-set #xFB40 #xFB42) + (ucs-range->char-set #xFB43 #xFB45) + (ucs-range->char-set #xFB46 #xFBB2) + (ucs-range->char-set #xFBD3 #xFD3E) + (ucs-range->char-set #xFD50 #xFD90) + (ucs-range->char-set #xFD92 #xFDC8) + (ucs-range->char-set #xFDF0 #xFDFC) + (ucs-range->char-set #xFE70 #xFE75) + (ucs-range->char-set #xFE76 #xFEFD) + (ucs-range->char-set #xFF21 #xFF3B) + (ucs-range->char-set #xFF41 #xFF5B) + (ucs-range->char-set #xFF66 #xFF70) + (char-set (ucs->char #xFF70)) + (ucs-range->char-set #xFF71 #xFF9E) + (ucs-range->char-set #xFF9E #xFFA0) + (ucs-range->char-set #xFFA0 #xFFBF) + (ucs-range->char-set #xFFC2 #xFFC8) + (ucs-range->char-set #xFFCA #xFFD0) + (ucs-range->char-set #xFFD2 #xFFD8) + (ucs-range->char-set #xFFDA #xFFDD) + (ucs-range->char-set #x10000 #x1000C) + (ucs-range->char-set #x1000D #x10027) + (ucs-range->char-set #x10028 #x1003B) + (ucs-range->char-set #x1003C #x1003E) + (ucs-range->char-set #x1003F #x1004E) + (ucs-range->char-set #x10050 #x1005E) + (ucs-range->char-set #x10080 #x100FB) + (ucs-range->char-set #x10300 #x1031F) + (ucs-range->char-set #x10330 #x1034A) + (char-set (ucs->char #x1034A)) + (ucs-range->char-set #x10380 #x1039E) + (ucs-range->char-set #x10400 #x10450) + (ucs-range->char-set #x10450 #x1049E) + (ucs-range->char-set #x10800 #x10806) + (char-set (ucs->char #x10808)) + (ucs-range->char-set #x1080A #x10836) + (ucs-range->char-set #x10837 #x10839) + (char-set (ucs->char #x1083C)) + (char-set (ucs->char #x1083F)) + (ucs-range->char-set #x1D400 #x1D455) + (ucs-range->char-set #x1D456 #x1D49D) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D51E #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D552 #x1D6A4) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (ucs-range->char-set #x1D6DC #x1D6FB) + (ucs-range->char-set #x1D6FC #x1D715) + (ucs-range->char-set #x1D716 #x1D735) + (ucs-range->char-set #x1D736 #x1D74F) + (ucs-range->char-set #x1D750 #x1D76F) + (ucs-range->char-set #x1D770 #x1D789) + (ucs-range->char-set #x1D78A #x1D7A9) + (ucs-range->char-set #x1D7AA #x1D7C3) + (ucs-range->char-set #x1D7C4 #x1D7CA) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + )) + +(define char-set:lowercase + (char-set-union + char-set:other-lowercase + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xB5)) + (char-set (ucs->char #xBA)) + (ucs-range->char-set #xDF #xF7) + (ucs-range->char-set #xF8 #x100) + (char-set (ucs->char #x101)) + (char-set (ucs->char #x103)) + (char-set (ucs->char #x105)) + (char-set (ucs->char #x107)) + (char-set (ucs->char #x109)) + (char-set (ucs->char #x10B)) + (char-set (ucs->char #x10D)) + (char-set (ucs->char #x10F)) + (char-set (ucs->char #x111)) + (char-set (ucs->char #x113)) + (char-set (ucs->char #x115)) + (char-set (ucs->char #x117)) + (char-set (ucs->char #x119)) + (char-set (ucs->char #x11B)) + (char-set (ucs->char #x11D)) + (char-set (ucs->char #x11F)) + (char-set (ucs->char #x121)) + (char-set (ucs->char #x123)) + (char-set (ucs->char #x125)) + (char-set (ucs->char #x127)) + (char-set (ucs->char #x129)) + (char-set (ucs->char #x12B)) + (char-set (ucs->char #x12D)) + (char-set (ucs->char #x12F)) + (char-set (ucs->char #x131)) + (char-set (ucs->char #x133)) + (char-set (ucs->char #x135)) + (ucs-range->char-set #x137 #x139) + (char-set (ucs->char #x13A)) + (char-set (ucs->char #x13C)) + (char-set (ucs->char #x13E)) + (char-set (ucs->char #x140)) + (char-set (ucs->char #x142)) + (char-set (ucs->char #x144)) + (char-set (ucs->char #x146)) + (ucs-range->char-set #x148 #x14A) + (char-set (ucs->char #x14B)) + (char-set (ucs->char #x14D)) + (char-set (ucs->char #x14F)) + (char-set (ucs->char #x151)) + (char-set (ucs->char #x153)) + (char-set (ucs->char #x155)) + (char-set (ucs->char #x157)) + (char-set (ucs->char #x159)) + (char-set (ucs->char #x15B)) + (char-set (ucs->char #x15D)) + (char-set (ucs->char #x15F)) + (char-set (ucs->char #x161)) + (char-set (ucs->char #x163)) + (char-set (ucs->char #x165)) + (char-set (ucs->char #x167)) + (char-set (ucs->char #x169)) + (char-set (ucs->char #x16B)) + (char-set (ucs->char #x16D)) + (char-set (ucs->char #x16F)) + (char-set (ucs->char #x171)) + (char-set (ucs->char #x173)) + (char-set (ucs->char #x175)) + (char-set (ucs->char #x177)) + (char-set (ucs->char #x17A)) + (char-set (ucs->char #x17C)) + (ucs-range->char-set #x17E #x181) + (char-set (ucs->char #x183)) + (char-set (ucs->char #x185)) + (char-set (ucs->char #x188)) + (ucs-range->char-set #x18C #x18E) + (char-set (ucs->char #x192)) + (char-set (ucs->char #x195)) + (ucs-range->char-set #x199 #x19C) + (char-set (ucs->char #x19E)) + (char-set (ucs->char #x1A1)) + (char-set (ucs->char #x1A3)) + (char-set (ucs->char #x1A5)) + (char-set (ucs->char #x1A8)) + (ucs-range->char-set #x1AA #x1AC) + (char-set (ucs->char #x1AD)) + (char-set (ucs->char #x1B0)) + (char-set (ucs->char #x1B4)) + (char-set (ucs->char #x1B6)) + (ucs-range->char-set #x1B9 #x1BB) + (ucs-range->char-set #x1BD #x1C0) + (char-set (ucs->char #x1C6)) + (char-set (ucs->char #x1C9)) + (char-set (ucs->char #x1CC)) + (char-set (ucs->char #x1CE)) + (char-set (ucs->char #x1D0)) + (char-set (ucs->char #x1D2)) + (char-set (ucs->char #x1D4)) + (char-set (ucs->char #x1D6)) + (char-set (ucs->char #x1D8)) + (char-set (ucs->char #x1DA)) + (ucs-range->char-set #x1DC #x1DE) + (char-set (ucs->char #x1DF)) + (char-set (ucs->char #x1E1)) + (char-set (ucs->char #x1E3)) + (char-set (ucs->char #x1E5)) + (char-set (ucs->char #x1E7)) + (char-set (ucs->char #x1E9)) + (char-set (ucs->char #x1EB)) + (char-set (ucs->char #x1ED)) + (ucs-range->char-set #x1EF #x1F1) + (char-set (ucs->char #x1F3)) + (char-set (ucs->char #x1F5)) + (char-set (ucs->char #x1F9)) + (char-set (ucs->char #x1FB)) + (char-set (ucs->char #x1FD)) + (char-set (ucs->char #x1FF)) + (char-set (ucs->char #x201)) + (char-set (ucs->char #x203)) + (char-set (ucs->char #x205)) + (char-set (ucs->char #x207)) + (char-set (ucs->char #x209)) + (char-set (ucs->char #x20B)) + (char-set (ucs->char #x20D)) + (char-set (ucs->char #x20F)) + (char-set (ucs->char #x211)) + (char-set (ucs->char #x213)) + (char-set (ucs->char #x215)) + (char-set (ucs->char #x217)) + (char-set (ucs->char #x219)) + (char-set (ucs->char #x21B)) + (char-set (ucs->char #x21D)) + (char-set (ucs->char #x21F)) + (char-set (ucs->char #x221)) + (char-set (ucs->char #x223)) + (char-set (ucs->char #x225)) + (char-set (ucs->char #x227)) + (char-set (ucs->char #x229)) + (char-set (ucs->char #x22B)) + (char-set (ucs->char #x22D)) + (char-set (ucs->char #x22F)) + (char-set (ucs->char #x231)) + (ucs-range->char-set #x233 #x237) + (ucs-range->char-set #x250 #x2B0) + (char-set (ucs->char #x390)) + (ucs-range->char-set #x3AC #x3CF) + (ucs-range->char-set #x3D0 #x3D2) + (ucs-range->char-set #x3D5 #x3D8) + (char-set (ucs->char #x3D9)) + (char-set (ucs->char #x3DB)) + (char-set (ucs->char #x3DD)) + (char-set (ucs->char #x3DF)) + (char-set (ucs->char #x3E1)) + (char-set (ucs->char #x3E3)) + (char-set (ucs->char #x3E5)) + (char-set (ucs->char #x3E7)) + (char-set (ucs->char #x3E9)) + (char-set (ucs->char #x3EB)) + (char-set (ucs->char #x3ED)) + (ucs-range->char-set #x3EF #x3F4) + (char-set (ucs->char #x3F5)) + (char-set (ucs->char #x3F8)) + (char-set (ucs->char #x3FB)) + (ucs-range->char-set #x430 #x460) + (char-set (ucs->char #x461)) + (char-set (ucs->char #x463)) + (char-set (ucs->char #x465)) + (char-set (ucs->char #x467)) + (char-set (ucs->char #x469)) + (char-set (ucs->char #x46B)) + (char-set (ucs->char #x46D)) + (char-set (ucs->char #x46F)) + (char-set (ucs->char #x471)) + (char-set (ucs->char #x473)) + (char-set (ucs->char #x475)) + (char-set (ucs->char #x477)) + (char-set (ucs->char #x479)) + (char-set (ucs->char #x47B)) + (char-set (ucs->char #x47D)) + (char-set (ucs->char #x47F)) + (char-set (ucs->char #x481)) + (char-set (ucs->char #x48B)) + (char-set (ucs->char #x48D)) + (char-set (ucs->char #x48F)) + (char-set (ucs->char #x491)) + (char-set (ucs->char #x493)) + (char-set (ucs->char #x495)) + (char-set (ucs->char #x497)) + (char-set (ucs->char #x499)) + (char-set (ucs->char #x49B)) + (char-set (ucs->char #x49D)) + (char-set (ucs->char #x49F)) + (char-set (ucs->char #x4A1)) + (char-set (ucs->char #x4A3)) + (char-set (ucs->char #x4A5)) + (char-set (ucs->char #x4A7)) + (char-set (ucs->char #x4A9)) + (char-set (ucs->char #x4AB)) + (char-set (ucs->char #x4AD)) + (char-set (ucs->char #x4AF)) + (char-set (ucs->char #x4B1)) + (char-set (ucs->char #x4B3)) + (char-set (ucs->char #x4B5)) + (char-set (ucs->char #x4B7)) + (char-set (ucs->char #x4B9)) + (char-set (ucs->char #x4BB)) + (char-set (ucs->char #x4BD)) + (char-set (ucs->char #x4BF)) + (char-set (ucs->char #x4C2)) + (char-set (ucs->char #x4C4)) + (char-set (ucs->char #x4C6)) + (char-set (ucs->char #x4C8)) + (char-set (ucs->char #x4CA)) + (char-set (ucs->char #x4CC)) + (char-set (ucs->char #x4CE)) + (char-set (ucs->char #x4D1)) + (char-set (ucs->char #x4D3)) + (char-set (ucs->char #x4D5)) + (char-set (ucs->char #x4D7)) + (char-set (ucs->char #x4D9)) + (char-set (ucs->char #x4DB)) + (char-set (ucs->char #x4DD)) + (char-set (ucs->char #x4DF)) + (char-set (ucs->char #x4E1)) + (char-set (ucs->char #x4E3)) + (char-set (ucs->char #x4E5)) + (char-set (ucs->char #x4E7)) + (char-set (ucs->char #x4E9)) + (char-set (ucs->char #x4EB)) + (char-set (ucs->char #x4ED)) + (char-set (ucs->char #x4EF)) + (char-set (ucs->char #x4F1)) + (char-set (ucs->char #x4F3)) + (char-set (ucs->char #x4F5)) + (char-set (ucs->char #x4F9)) + (char-set (ucs->char #x501)) + (char-set (ucs->char #x503)) + (char-set (ucs->char #x505)) + (char-set (ucs->char #x507)) + (char-set (ucs->char #x509)) + (char-set (ucs->char #x50B)) + (char-set (ucs->char #x50D)) + (char-set (ucs->char #x50F)) + (ucs-range->char-set #x561 #x588) + (ucs-range->char-set #x1D00 #x1D2C) + (ucs-range->char-set #x1D62 #x1D6C) + (char-set (ucs->char #x1E01)) + (char-set (ucs->char #x1E03)) + (char-set (ucs->char #x1E05)) + (char-set (ucs->char #x1E07)) + (char-set (ucs->char #x1E09)) + (char-set (ucs->char #x1E0B)) + (char-set (ucs->char #x1E0D)) + (char-set (ucs->char #x1E0F)) + (char-set (ucs->char #x1E11)) + (char-set (ucs->char #x1E13)) + (char-set (ucs->char #x1E15)) + (char-set (ucs->char #x1E17)) + (char-set (ucs->char #x1E19)) + (char-set (ucs->char #x1E1B)) + (char-set (ucs->char #x1E1D)) + (char-set (ucs->char #x1E1F)) + (char-set (ucs->char #x1E21)) + (char-set (ucs->char #x1E23)) + (char-set (ucs->char #x1E25)) + (char-set (ucs->char #x1E27)) + (char-set (ucs->char #x1E29)) + (char-set (ucs->char #x1E2B)) + (char-set (ucs->char #x1E2D)) + (char-set (ucs->char #x1E2F)) + (char-set (ucs->char #x1E31)) + (char-set (ucs->char #x1E33)) + (char-set (ucs->char #x1E35)) + (char-set (ucs->char #x1E37)) + (char-set (ucs->char #x1E39)) + (char-set (ucs->char #x1E3B)) + (char-set (ucs->char #x1E3D)) + (char-set (ucs->char #x1E3F)) + (char-set (ucs->char #x1E41)) + (char-set (ucs->char #x1E43)) + (char-set (ucs->char #x1E45)) + (char-set (ucs->char #x1E47)) + (char-set (ucs->char #x1E49)) + (char-set (ucs->char #x1E4B)) + (char-set (ucs->char #x1E4D)) + (char-set (ucs->char #x1E4F)) + (char-set (ucs->char #x1E51)) + (char-set (ucs->char #x1E53)) + (char-set (ucs->char #x1E55)) + (char-set (ucs->char #x1E57)) + (char-set (ucs->char #x1E59)) + (char-set (ucs->char #x1E5B)) + (char-set (ucs->char #x1E5D)) + (char-set (ucs->char #x1E5F)) + (char-set (ucs->char #x1E61)) + (char-set (ucs->char #x1E63)) + (char-set (ucs->char #x1E65)) + (char-set (ucs->char #x1E67)) + (char-set (ucs->char #x1E69)) + (char-set (ucs->char #x1E6B)) + (char-set (ucs->char #x1E6D)) + (char-set (ucs->char #x1E6F)) + (char-set (ucs->char #x1E71)) + (char-set (ucs->char #x1E73)) + (char-set (ucs->char #x1E75)) + (char-set (ucs->char #x1E77)) + (char-set (ucs->char #x1E79)) + (char-set (ucs->char #x1E7B)) + (char-set (ucs->char #x1E7D)) + (char-set (ucs->char #x1E7F)) + (char-set (ucs->char #x1E81)) + (char-set (ucs->char #x1E83)) + (char-set (ucs->char #x1E85)) + (char-set (ucs->char #x1E87)) + (char-set (ucs->char #x1E89)) + (char-set (ucs->char #x1E8B)) + (char-set (ucs->char #x1E8D)) + (char-set (ucs->char #x1E8F)) + (char-set (ucs->char #x1E91)) + (char-set (ucs->char #x1E93)) + (ucs-range->char-set #x1E95 #x1E9C) + (char-set (ucs->char #x1EA1)) + (char-set (ucs->char #x1EA3)) + (char-set (ucs->char #x1EA5)) + (char-set (ucs->char #x1EA7)) + (char-set (ucs->char #x1EA9)) + (char-set (ucs->char #x1EAB)) + (char-set (ucs->char #x1EAD)) + (char-set (ucs->char #x1EAF)) + (char-set (ucs->char #x1EB1)) + (char-set (ucs->char #x1EB3)) + (char-set (ucs->char #x1EB5)) + (char-set (ucs->char #x1EB7)) + (char-set (ucs->char #x1EB9)) + (char-set (ucs->char #x1EBB)) + (char-set (ucs->char #x1EBD)) + (char-set (ucs->char #x1EBF)) + (char-set (ucs->char #x1EC1)) + (char-set (ucs->char #x1EC3)) + (char-set (ucs->char #x1EC5)) + (char-set (ucs->char #x1EC7)) + (char-set (ucs->char #x1EC9)) + (char-set (ucs->char #x1ECB)) + (char-set (ucs->char #x1ECD)) + (char-set (ucs->char #x1ECF)) + (char-set (ucs->char #x1ED1)) + (char-set (ucs->char #x1ED3)) + (char-set (ucs->char #x1ED5)) + (char-set (ucs->char #x1ED7)) + (char-set (ucs->char #x1ED9)) + (char-set (ucs->char #x1EDB)) + (char-set (ucs->char #x1EDD)) + (char-set (ucs->char #x1EDF)) + (char-set (ucs->char #x1EE1)) + (char-set (ucs->char #x1EE3)) + (char-set (ucs->char #x1EE5)) + (char-set (ucs->char #x1EE7)) + (char-set (ucs->char #x1EE9)) + (char-set (ucs->char #x1EEB)) + (char-set (ucs->char #x1EED)) + (char-set (ucs->char #x1EEF)) + (char-set (ucs->char #x1EF1)) + (char-set (ucs->char #x1EF3)) + (char-set (ucs->char #x1EF5)) + (char-set (ucs->char #x1EF7)) + (char-set (ucs->char #x1EF9)) + (ucs-range->char-set #x1F00 #x1F08) + (ucs-range->char-set #x1F10 #x1F16) + (ucs-range->char-set #x1F20 #x1F28) + (ucs-range->char-set #x1F30 #x1F38) + (ucs-range->char-set #x1F40 #x1F46) + (ucs-range->char-set #x1F50 #x1F58) + (ucs-range->char-set #x1F60 #x1F68) + (ucs-range->char-set #x1F70 #x1F7E) + (ucs-range->char-set #x1F80 #x1F88) + (ucs-range->char-set #x1F90 #x1F98) + (ucs-range->char-set #x1FA0 #x1FA8) + (ucs-range->char-set #x1FB0 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FB8) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FC8) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FD8) + (ucs-range->char-set #x1FE0 #x1FE8) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FF8) + (char-set (ucs->char #x2071)) + (char-set (ucs->char #x207F)) + (char-set (ucs->char #x210A)) + (ucs-range->char-set #x210E #x2110) + (char-set (ucs->char #x2113)) + (char-set (ucs->char #x212F)) + (char-set (ucs->char #x2134)) + (char-set (ucs->char #x2139)) + (char-set (ucs->char #x213D)) + (ucs-range->char-set #x2146 #x214A) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFB13 #xFB18) + (ucs-range->char-set #xFF41 #xFF5B) + (ucs-range->char-set #x10428 #x10450) + (ucs-range->char-set #x1D41A #x1D434) + (ucs-range->char-set #x1D44E #x1D455) + (ucs-range->char-set #x1D456 #x1D468) + (ucs-range->char-set #x1D482 #x1D49C) + (ucs-range->char-set #x1D4B6 #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D4D0) + (ucs-range->char-set #x1D4EA #x1D504) + (ucs-range->char-set #x1D51E #x1D538) + (ucs-range->char-set #x1D552 #x1D56C) + (ucs-range->char-set #x1D586 #x1D5A0) + (ucs-range->char-set #x1D5BA #x1D5D4) + (ucs-range->char-set #x1D5EE #x1D608) + (ucs-range->char-set #x1D622 #x1D63C) + (ucs-range->char-set #x1D656 #x1D670) + (ucs-range->char-set #x1D68A #x1D6A4) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (ucs-range->char-set #x1D6DC #x1D6E2) + (ucs-range->char-set #x1D6FC #x1D715) + (ucs-range->char-set #x1D716 #x1D71C) + (ucs-range->char-set #x1D736 #x1D74F) + (ucs-range->char-set #x1D750 #x1D756) + (ucs-range->char-set #x1D770 #x1D789) + (ucs-range->char-set #x1D78A #x1D790) + (ucs-range->char-set #x1D7AA #x1D7C3) + (ucs-range->char-set #x1D7C4 #x1D7CA) + )) + +(define char-set:math + (char-set-union + char-set:other-math + (char-set (ucs->char #x2B)) + (ucs-range->char-set #x3C #x3F) + (char-set (ucs->char #x7C)) + (char-set (ucs->char #x7E)) + (char-set (ucs->char #xAC)) + (char-set (ucs->char #xB1)) + (char-set (ucs->char #xD7)) + (char-set (ucs->char #xF7)) + (char-set (ucs->char #x3F6)) + (char-set (ucs->char #x2044)) + (char-set (ucs->char #x2052)) + (ucs-range->char-set #x207A #x207D) + (ucs-range->char-set #x208A #x208D) + (ucs-range->char-set #x2140 #x2145) + (char-set (ucs->char #x214B)) + (ucs-range->char-set #x2190 #x2195) + (ucs-range->char-set #x219A #x219C) + (char-set (ucs->char #x21A0)) + (char-set (ucs->char #x21A3)) + (char-set (ucs->char #x21A6)) + (char-set (ucs->char #x21AE)) + (ucs-range->char-set #x21CE #x21D0) + (char-set (ucs->char #x21D2)) + (char-set (ucs->char #x21D4)) + (ucs-range->char-set #x21F4 #x2300) + (ucs-range->char-set #x2308 #x230C) + (ucs-range->char-set #x2320 #x2322) + (char-set (ucs->char #x237C)) + (ucs-range->char-set #x239B #x23B4) + (char-set (ucs->char #x25B7)) + (char-set (ucs->char #x25C1)) + (ucs-range->char-set #x25F8 #x2600) + (char-set (ucs->char #x266F)) + (ucs-range->char-set #x27D0 #x27E6) + (ucs-range->char-set #x27F0 #x2800) + (ucs-range->char-set #x2900 #x2983) + (ucs-range->char-set #x2999 #x29D8) + (ucs-range->char-set #x29DC #x29FC) + (ucs-range->char-set #x29FE #x2B00) + (char-set (ucs->char #xFB29)) + (char-set (ucs->char #xFE62)) + (ucs-range->char-set #xFE64 #xFE67) + (char-set (ucs->char #xFF0B)) + (ucs-range->char-set #xFF1C #xFF1F) + (char-set (ucs->char #xFF5C)) + (char-set (ucs->char #xFF5E)) + (char-set (ucs->char #xFFE2)) + (ucs-range->char-set #xFFE9 #xFFED) + (char-set (ucs->char #x1D6C1)) + (char-set (ucs->char #x1D6DB)) + (char-set (ucs->char #x1D6FB)) + (char-set (ucs->char #x1D715)) + (char-set (ucs->char #x1D735)) + (char-set (ucs->char #x1D74F)) + (char-set (ucs->char #x1D76F)) + (char-set (ucs->char #x1D789)) + (char-set (ucs->char #x1D7A9)) + (char-set (ucs->char #x1D7C3)) + )) + +(define char-set:uppercase + (char-set-union + char-set:other-uppercase + (ucs-range->char-set #x41 #x5B) + (ucs-range->char-set #xC0 #xD7) + (ucs-range->char-set #xD8 #xDF) + (char-set (ucs->char #x100)) + (char-set (ucs->char #x102)) + (char-set (ucs->char #x104)) + (char-set (ucs->char #x106)) + (char-set (ucs->char #x108)) + (char-set (ucs->char #x10A)) + (char-set (ucs->char #x10C)) + (char-set (ucs->char #x10E)) + (char-set (ucs->char #x110)) + (char-set (ucs->char #x112)) + (char-set (ucs->char #x114)) + (char-set (ucs->char #x116)) + (char-set (ucs->char #x118)) + (char-set (ucs->char #x11A)) + (char-set (ucs->char #x11C)) + (char-set (ucs->char #x11E)) + (char-set (ucs->char #x120)) + (char-set (ucs->char #x122)) + (char-set (ucs->char #x124)) + (char-set (ucs->char #x126)) + (char-set (ucs->char #x128)) + (char-set (ucs->char #x12A)) + (char-set (ucs->char #x12C)) + (char-set (ucs->char #x12E)) + (char-set (ucs->char #x130)) + (char-set (ucs->char #x132)) + (char-set (ucs->char #x134)) + (char-set (ucs->char #x136)) + (char-set (ucs->char #x139)) + (char-set (ucs->char #x13B)) + (char-set (ucs->char #x13D)) + (char-set (ucs->char #x13F)) + (char-set (ucs->char #x141)) + (char-set (ucs->char #x143)) + (char-set (ucs->char #x145)) + (char-set (ucs->char #x147)) + (char-set (ucs->char #x14A)) + (char-set (ucs->char #x14C)) + (char-set (ucs->char #x14E)) + (char-set (ucs->char #x150)) + (char-set (ucs->char #x152)) + (char-set (ucs->char #x154)) + (char-set (ucs->char #x156)) + (char-set (ucs->char #x158)) + (char-set (ucs->char #x15A)) + (char-set (ucs->char #x15C)) + (char-set (ucs->char #x15E)) + (char-set (ucs->char #x160)) + (char-set (ucs->char #x162)) + (char-set (ucs->char #x164)) + (char-set (ucs->char #x166)) + (char-set (ucs->char #x168)) + (char-set (ucs->char #x16A)) + (char-set (ucs->char #x16C)) + (char-set (ucs->char #x16E)) + (char-set (ucs->char #x170)) + (char-set (ucs->char #x172)) + (char-set (ucs->char #x174)) + (char-set (ucs->char #x176)) + (ucs-range->char-set #x178 #x17A) + (char-set (ucs->char #x17B)) + (char-set (ucs->char #x17D)) + (ucs-range->char-set #x181 #x183) + (char-set (ucs->char #x184)) + (ucs-range->char-set #x186 #x188) + (ucs-range->char-set #x189 #x18C) + (ucs-range->char-set #x18E #x192) + (ucs-range->char-set #x193 #x195) + (ucs-range->char-set #x196 #x199) + (ucs-range->char-set #x19C #x19E) + (ucs-range->char-set #x19F #x1A1) + (char-set (ucs->char #x1A2)) + (char-set (ucs->char #x1A4)) + (ucs-range->char-set #x1A6 #x1A8) + (char-set (ucs->char #x1A9)) + (char-set (ucs->char #x1AC)) + (ucs-range->char-set #x1AE #x1B0) + (ucs-range->char-set #x1B1 #x1B4) + (char-set (ucs->char #x1B5)) + (ucs-range->char-set #x1B7 #x1B9) + (char-set (ucs->char #x1BC)) + (char-set (ucs->char #x1C4)) + (char-set (ucs->char #x1C7)) + (char-set (ucs->char #x1CA)) + (char-set (ucs->char #x1CD)) + (char-set (ucs->char #x1CF)) + (char-set (ucs->char #x1D1)) + (char-set (ucs->char #x1D3)) + (char-set (ucs->char #x1D5)) + (char-set (ucs->char #x1D7)) + (char-set (ucs->char #x1D9)) + (char-set (ucs->char #x1DB)) + (char-set (ucs->char #x1DE)) + (char-set (ucs->char #x1E0)) + (char-set (ucs->char #x1E2)) + (char-set (ucs->char #x1E4)) + (char-set (ucs->char #x1E6)) + (char-set (ucs->char #x1E8)) + (char-set (ucs->char #x1EA)) + (char-set (ucs->char #x1EC)) + (char-set (ucs->char #x1EE)) + (char-set (ucs->char #x1F1)) + (char-set (ucs->char #x1F4)) + (ucs-range->char-set #x1F6 #x1F9) + (char-set (ucs->char #x1FA)) + (char-set (ucs->char #x1FC)) + (char-set (ucs->char #x1FE)) + (char-set (ucs->char #x200)) + (char-set (ucs->char #x202)) + (char-set (ucs->char #x204)) + (char-set (ucs->char #x206)) + (char-set (ucs->char #x208)) + (char-set (ucs->char #x20A)) + (char-set (ucs->char #x20C)) + (char-set (ucs->char #x20E)) + (char-set (ucs->char #x210)) + (char-set (ucs->char #x212)) + (char-set (ucs->char #x214)) + (char-set (ucs->char #x216)) + (char-set (ucs->char #x218)) + (char-set (ucs->char #x21A)) + (char-set (ucs->char #x21C)) + (char-set (ucs->char #x21E)) + (char-set (ucs->char #x220)) + (char-set (ucs->char #x222)) + (char-set (ucs->char #x224)) + (char-set (ucs->char #x226)) + (char-set (ucs->char #x228)) + (char-set (ucs->char #x22A)) + (char-set (ucs->char #x22C)) + (char-set (ucs->char #x22E)) + (char-set (ucs->char #x230)) + (char-set (ucs->char #x232)) + (char-set (ucs->char #x386)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x390) + (ucs-range->char-set #x391 #x3A2) + (ucs-range->char-set #x3A3 #x3AC) + (ucs-range->char-set #x3D2 #x3D5) + (char-set (ucs->char #x3D8)) + (char-set (ucs->char #x3DA)) + (char-set (ucs->char #x3DC)) + (char-set (ucs->char #x3DE)) + (char-set (ucs->char #x3E0)) + (char-set (ucs->char #x3E2)) + (char-set (ucs->char #x3E4)) + (char-set (ucs->char #x3E6)) + (char-set (ucs->char #x3E8)) + (char-set (ucs->char #x3EA)) + (char-set (ucs->char #x3EC)) + (char-set (ucs->char #x3EE)) + (char-set (ucs->char #x3F4)) + (char-set (ucs->char #x3F7)) + (ucs-range->char-set #x3F9 #x3FB) + (ucs-range->char-set #x400 #x430) + (char-set (ucs->char #x460)) + (char-set (ucs->char #x462)) + (char-set (ucs->char #x464)) + (char-set (ucs->char #x466)) + (char-set (ucs->char #x468)) + (char-set (ucs->char #x46A)) + (char-set (ucs->char #x46C)) + (char-set (ucs->char #x46E)) + (char-set (ucs->char #x470)) + (char-set (ucs->char #x472)) + (char-set (ucs->char #x474)) + (char-set (ucs->char #x476)) + (char-set (ucs->char #x478)) + (char-set (ucs->char #x47A)) + (char-set (ucs->char #x47C)) + (char-set (ucs->char #x47E)) + (char-set (ucs->char #x480)) + (char-set (ucs->char #x48A)) + (char-set (ucs->char #x48C)) + (char-set (ucs->char #x48E)) + (char-set (ucs->char #x490)) + (char-set (ucs->char #x492)) + (char-set (ucs->char #x494)) + (char-set (ucs->char #x496)) + (char-set (ucs->char #x498)) + (char-set (ucs->char #x49A)) + (char-set (ucs->char #x49C)) + (char-set (ucs->char #x49E)) + (char-set (ucs->char #x4A0)) + (char-set (ucs->char #x4A2)) + (char-set (ucs->char #x4A4)) + (char-set (ucs->char #x4A6)) + (char-set (ucs->char #x4A8)) + (char-set (ucs->char #x4AA)) + (char-set (ucs->char #x4AC)) + (char-set (ucs->char #x4AE)) + (char-set (ucs->char #x4B0)) + (char-set (ucs->char #x4B2)) + (char-set (ucs->char #x4B4)) + (char-set (ucs->char #x4B6)) + (char-set (ucs->char #x4B8)) + (char-set (ucs->char #x4BA)) + (char-set (ucs->char #x4BC)) + (char-set (ucs->char #x4BE)) + (ucs-range->char-set #x4C0 #x4C2) + (char-set (ucs->char #x4C3)) + (char-set (ucs->char #x4C5)) + (char-set (ucs->char #x4C7)) + (char-set (ucs->char #x4C9)) + (char-set (ucs->char #x4CB)) + (char-set (ucs->char #x4CD)) + (char-set (ucs->char #x4D0)) + (char-set (ucs->char #x4D2)) + (char-set (ucs->char #x4D4)) + (char-set (ucs->char #x4D6)) + (char-set (ucs->char #x4D8)) + (char-set (ucs->char #x4DA)) + (char-set (ucs->char #x4DC)) + (char-set (ucs->char #x4DE)) + (char-set (ucs->char #x4E0)) + (char-set (ucs->char #x4E2)) + (char-set (ucs->char #x4E4)) + (char-set (ucs->char #x4E6)) + (char-set (ucs->char #x4E8)) + (char-set (ucs->char #x4EA)) + (char-set (ucs->char #x4EC)) + (char-set (ucs->char #x4EE)) + (char-set (ucs->char #x4F0)) + (char-set (ucs->char #x4F2)) + (char-set (ucs->char #x4F4)) + (char-set (ucs->char #x4F8)) + (char-set (ucs->char #x500)) + (char-set (ucs->char #x502)) + (char-set (ucs->char #x504)) + (char-set (ucs->char #x506)) + (char-set (ucs->char #x508)) + (char-set (ucs->char #x50A)) + (char-set (ucs->char #x50C)) + (char-set (ucs->char #x50E)) + (ucs-range->char-set #x531 #x557) + (ucs-range->char-set #x10A0 #x10C6) + (char-set (ucs->char #x1E00)) + (char-set (ucs->char #x1E02)) + (char-set (ucs->char #x1E04)) + (char-set (ucs->char #x1E06)) + (char-set (ucs->char #x1E08)) + (char-set (ucs->char #x1E0A)) + (char-set (ucs->char #x1E0C)) + (char-set (ucs->char #x1E0E)) + (char-set (ucs->char #x1E10)) + (char-set (ucs->char #x1E12)) + (char-set (ucs->char #x1E14)) + (char-set (ucs->char #x1E16)) + (char-set (ucs->char #x1E18)) + (char-set (ucs->char #x1E1A)) + (char-set (ucs->char #x1E1C)) + (char-set (ucs->char #x1E1E)) + (char-set (ucs->char #x1E20)) + (char-set (ucs->char #x1E22)) + (char-set (ucs->char #x1E24)) + (char-set (ucs->char #x1E26)) + (char-set (ucs->char #x1E28)) + (char-set (ucs->char #x1E2A)) + (char-set (ucs->char #x1E2C)) + (char-set (ucs->char #x1E2E)) + (char-set (ucs->char #x1E30)) + (char-set (ucs->char #x1E32)) + (char-set (ucs->char #x1E34)) + (char-set (ucs->char #x1E36)) + (char-set (ucs->char #x1E38)) + (char-set (ucs->char #x1E3A)) + (char-set (ucs->char #x1E3C)) + (char-set (ucs->char #x1E3E)) + (char-set (ucs->char #x1E40)) + (char-set (ucs->char #x1E42)) + (char-set (ucs->char #x1E44)) + (char-set (ucs->char #x1E46)) + (char-set (ucs->char #x1E48)) + (char-set (ucs->char #x1E4A)) + (char-set (ucs->char #x1E4C)) + (char-set (ucs->char #x1E4E)) + (char-set (ucs->char #x1E50)) + (char-set (ucs->char #x1E52)) + (char-set (ucs->char #x1E54)) + (char-set (ucs->char #x1E56)) + (char-set (ucs->char #x1E58)) + (char-set (ucs->char #x1E5A)) + (char-set (ucs->char #x1E5C)) + (char-set (ucs->char #x1E5E)) + (char-set (ucs->char #x1E60)) + (char-set (ucs->char #x1E62)) + (char-set (ucs->char #x1E64)) + (char-set (ucs->char #x1E66)) + (char-set (ucs->char #x1E68)) + (char-set (ucs->char #x1E6A)) + (char-set (ucs->char #x1E6C)) + (char-set (ucs->char #x1E6E)) + (char-set (ucs->char #x1E70)) + (char-set (ucs->char #x1E72)) + (char-set (ucs->char #x1E74)) + (char-set (ucs->char #x1E76)) + (char-set (ucs->char #x1E78)) + (char-set (ucs->char #x1E7A)) + (char-set (ucs->char #x1E7C)) + (char-set (ucs->char #x1E7E)) + (char-set (ucs->char #x1E80)) + (char-set (ucs->char #x1E82)) + (char-set (ucs->char #x1E84)) + (char-set (ucs->char #x1E86)) + (char-set (ucs->char #x1E88)) + (char-set (ucs->char #x1E8A)) + (char-set (ucs->char #x1E8C)) + (char-set (ucs->char #x1E8E)) + (char-set (ucs->char #x1E90)) + (char-set (ucs->char #x1E92)) + (char-set (ucs->char #x1E94)) + (char-set (ucs->char #x1EA0)) + (char-set (ucs->char #x1EA2)) + (char-set (ucs->char #x1EA4)) + (char-set (ucs->char #x1EA6)) + (char-set (ucs->char #x1EA8)) + (char-set (ucs->char #x1EAA)) + (char-set (ucs->char #x1EAC)) + (char-set (ucs->char #x1EAE)) + (char-set (ucs->char #x1EB0)) + (char-set (ucs->char #x1EB2)) + (char-set (ucs->char #x1EB4)) + (char-set (ucs->char #x1EB6)) + (char-set (ucs->char #x1EB8)) + (char-set (ucs->char #x1EBA)) + (char-set (ucs->char #x1EBC)) + (char-set (ucs->char #x1EBE)) + (char-set (ucs->char #x1EC0)) + (char-set (ucs->char #x1EC2)) + (char-set (ucs->char #x1EC4)) + (char-set (ucs->char #x1EC6)) + (char-set (ucs->char #x1EC8)) + (char-set (ucs->char #x1ECA)) + (char-set (ucs->char #x1ECC)) + (char-set (ucs->char #x1ECE)) + (char-set (ucs->char #x1ED0)) + (char-set (ucs->char #x1ED2)) + (char-set (ucs->char #x1ED4)) + (char-set (ucs->char #x1ED6)) + (char-set (ucs->char #x1ED8)) + (char-set (ucs->char #x1EDA)) + (char-set (ucs->char #x1EDC)) + (char-set (ucs->char #x1EDE)) + (char-set (ucs->char #x1EE0)) + (char-set (ucs->char #x1EE2)) + (char-set (ucs->char #x1EE4)) + (char-set (ucs->char #x1EE6)) + (char-set (ucs->char #x1EE8)) + (char-set (ucs->char #x1EEA)) + (char-set (ucs->char #x1EEC)) + (char-set (ucs->char #x1EEE)) + (char-set (ucs->char #x1EF0)) + (char-set (ucs->char #x1EF2)) + (char-set (ucs->char #x1EF4)) + (char-set (ucs->char #x1EF6)) + (char-set (ucs->char #x1EF8)) + (ucs-range->char-set #x1F08 #x1F10) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F28 #x1F30) + (ucs-range->char-set #x1F38 #x1F40) + (ucs-range->char-set #x1F48 #x1F4E) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (char-set (ucs->char #x1F5F)) + (ucs-range->char-set #x1F68 #x1F70) + (ucs-range->char-set #x1FB8 #x1FBC) + (ucs-range->char-set #x1FC8 #x1FCC) + (ucs-range->char-set #x1FD8 #x1FDC) + (ucs-range->char-set #x1FE8 #x1FED) + (ucs-range->char-set #x1FF8 #x1FFC) + (char-set (ucs->char #x2102)) + (char-set (ucs->char #x2107)) + (ucs-range->char-set #x210B #x210E) + (ucs-range->char-set #x2110 #x2113) + (char-set (ucs->char #x2115)) + (ucs-range->char-set #x2119 #x211E) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2126)) + (char-set (ucs->char #x2128)) + (ucs-range->char-set #x212A #x212E) + (ucs-range->char-set #x2130 #x2132) + (char-set (ucs->char #x2133)) + (ucs-range->char-set #x213E #x2140) + (char-set (ucs->char #x2145)) + (ucs-range->char-set #xFF21 #xFF3B) + (ucs-range->char-set #x10400 #x10428) + (ucs-range->char-set #x1D400 #x1D41A) + (ucs-range->char-set #x1D434 #x1D44E) + (ucs-range->char-set #x1D468 #x1D482) + (char-set (ucs->char #x1D49C)) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4B6) + (ucs-range->char-set #x1D4D0 #x1D4EA) + (ucs-range->char-set #x1D504 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D538 #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D56C #x1D586) + (ucs-range->char-set #x1D5A0 #x1D5BA) + (ucs-range->char-set #x1D5D4 #x1D5EE) + (ucs-range->char-set #x1D608 #x1D622) + (ucs-range->char-set #x1D63C #x1D656) + (ucs-range->char-set #x1D670 #x1D68A) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (ucs-range->char-set #x1D6E2 #x1D6FB) + (ucs-range->char-set #x1D71C #x1D735) + (ucs-range->char-set #x1D756 #x1D76F) + (ucs-range->char-set #x1D790 #x1D7A9) + )) + +(define char-set:xid-continue + (char-set-union + (ucs-range->char-set #x30 #x3A) + (ucs-range->char-set #x41 #x5B) + (char-set (ucs->char #x5F)) + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xB5)) + (char-set (ucs->char #xB7)) + (char-set (ucs->char #xBA)) + (ucs-range->char-set #xC0 #xD7) + (ucs-range->char-set #xD8 #xF7) + (ucs-range->char-set #xF8 #x1BB) + (char-set (ucs->char #x1BB)) + (ucs-range->char-set #x1BC #x1C0) + (ucs-range->char-set #x1C0 #x1C4) + (ucs-range->char-set #x1C4 #x237) + (ucs-range->char-set #x250 #x2B0) + (ucs-range->char-set #x2B0 #x2C2) + (ucs-range->char-set #x2C6 #x2D2) + (ucs-range->char-set #x2E0 #x2E5) + (char-set (ucs->char #x2EE)) + (ucs-range->char-set #x300 #x358) + (ucs-range->char-set #x35D #x370) + (char-set (ucs->char #x386)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x3A2) + (ucs-range->char-set #x3A3 #x3CF) + (ucs-range->char-set #x3D0 #x3F6) + (ucs-range->char-set #x3F7 #x3FC) + (ucs-range->char-set #x400 #x482) + (ucs-range->char-set #x483 #x487) + (ucs-range->char-set #x48A #x4CF) + (ucs-range->char-set #x4D0 #x4F6) + (ucs-range->char-set #x4F8 #x4FA) + (ucs-range->char-set #x500 #x510) + (ucs-range->char-set #x531 #x557) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x561 #x588) + (ucs-range->char-set #x591 #x5A2) + (ucs-range->char-set #x5A3 #x5BA) + (ucs-range->char-set #x5BB #x5BE) + (char-set (ucs->char #x5BF)) + (ucs-range->char-set #x5C1 #x5C3) + (char-set (ucs->char #x5C4)) + (ucs-range->char-set #x5D0 #x5EB) + (ucs-range->char-set #x5F0 #x5F3) + (ucs-range->char-set #x610 #x616) + (ucs-range->char-set #x621 #x63B) + (char-set (ucs->char #x640)) + (ucs-range->char-set #x641 #x64B) + (ucs-range->char-set #x64B #x659) + (ucs-range->char-set #x660 #x66A) + (ucs-range->char-set #x66E #x670) + (char-set (ucs->char #x670)) + (ucs-range->char-set #x671 #x6D4) + (char-set (ucs->char #x6D5)) + (ucs-range->char-set #x6D6 #x6DD) + (ucs-range->char-set #x6DF #x6E5) + (ucs-range->char-set #x6E5 #x6E7) + (ucs-range->char-set #x6E7 #x6E9) + (ucs-range->char-set #x6EA #x6EE) + (ucs-range->char-set #x6EE #x6F0) + (ucs-range->char-set #x6F0 #x6FA) + (ucs-range->char-set #x6FA #x6FD) + (char-set (ucs->char #x6FF)) + (char-set (ucs->char #x710)) + (char-set (ucs->char #x711)) + (ucs-range->char-set #x712 #x730) + (ucs-range->char-set #x730 #x74B) + (ucs-range->char-set #x74D #x750) + (ucs-range->char-set #x780 #x7A6) + (ucs-range->char-set #x7A6 #x7B1) + (char-set (ucs->char #x7B1)) + (ucs-range->char-set #x901 #x903) + (char-set (ucs->char #x903)) + (ucs-range->char-set #x904 #x93A) + (char-set (ucs->char #x93C)) + (char-set (ucs->char #x93D)) + (ucs-range->char-set #x93E #x941) + (ucs-range->char-set #x941 #x949) + (ucs-range->char-set #x949 #x94D) + (char-set (ucs->char #x94D)) + (char-set (ucs->char #x950)) + (ucs-range->char-set #x951 #x955) + (ucs-range->char-set #x958 #x962) + (ucs-range->char-set #x962 #x964) + (ucs-range->char-set #x966 #x970) + (char-set (ucs->char #x981)) + (ucs-range->char-set #x982 #x984) + (ucs-range->char-set #x985 #x98D) + (ucs-range->char-set #x98F #x991) + (ucs-range->char-set #x993 #x9A9) + (ucs-range->char-set #x9AA #x9B1) + (char-set (ucs->char #x9B2)) + (ucs-range->char-set #x9B6 #x9BA) + (char-set (ucs->char #x9BC)) + (char-set (ucs->char #x9BD)) + (ucs-range->char-set #x9BE #x9C1) + (ucs-range->char-set #x9C1 #x9C5) + (ucs-range->char-set #x9C7 #x9C9) + (ucs-range->char-set #x9CB #x9CD) + (char-set (ucs->char #x9CD)) + (char-set (ucs->char #x9D7)) + (ucs-range->char-set #x9DC #x9DE) + (ucs-range->char-set #x9DF #x9E2) + (ucs-range->char-set #x9E2 #x9E4) + (ucs-range->char-set #x9E6 #x9F0) + (ucs-range->char-set #x9F0 #x9F2) + (ucs-range->char-set #xA01 #xA03) + (char-set (ucs->char #xA03)) + (ucs-range->char-set #xA05 #xA0B) + (ucs-range->char-set #xA0F #xA11) + (ucs-range->char-set #xA13 #xA29) + (ucs-range->char-set #xA2A #xA31) + (ucs-range->char-set #xA32 #xA34) + (ucs-range->char-set #xA35 #xA37) + (ucs-range->char-set #xA38 #xA3A) + (char-set (ucs->char #xA3C)) + (ucs-range->char-set #xA3E #xA41) + (ucs-range->char-set #xA41 #xA43) + (ucs-range->char-set #xA47 #xA49) + (ucs-range->char-set #xA4B #xA4E) + (ucs-range->char-set #xA59 #xA5D) + (char-set (ucs->char #xA5E)) + (ucs-range->char-set #xA66 #xA70) + (ucs-range->char-set #xA70 #xA72) + (ucs-range->char-set #xA72 #xA75) + (ucs-range->char-set #xA81 #xA83) + (char-set (ucs->char #xA83)) + (ucs-range->char-set #xA85 #xA8E) + (ucs-range->char-set #xA8F #xA92) + (ucs-range->char-set #xA93 #xAA9) + (ucs-range->char-set #xAAA #xAB1) + (ucs-range->char-set #xAB2 #xAB4) + (ucs-range->char-set #xAB5 #xABA) + (char-set (ucs->char #xABC)) + (char-set (ucs->char #xABD)) + (ucs-range->char-set #xABE #xAC1) + (ucs-range->char-set #xAC1 #xAC6) + (ucs-range->char-set #xAC7 #xAC9) + (char-set (ucs->char #xAC9)) + (ucs-range->char-set #xACB #xACD) + (char-set (ucs->char #xACD)) + (char-set (ucs->char #xAD0)) + (ucs-range->char-set #xAE0 #xAE2) + (ucs-range->char-set #xAE2 #xAE4) + (ucs-range->char-set #xAE6 #xAF0) + (char-set (ucs->char #xB01)) + (ucs-range->char-set #xB02 #xB04) + (ucs-range->char-set #xB05 #xB0D) + (ucs-range->char-set #xB0F #xB11) + (ucs-range->char-set #xB13 #xB29) + (ucs-range->char-set #xB2A #xB31) + (ucs-range->char-set #xB32 #xB34) + (ucs-range->char-set #xB35 #xB3A) + (char-set (ucs->char #xB3C)) + (char-set (ucs->char #xB3D)) + (char-set (ucs->char #xB3E)) + (char-set (ucs->char #xB3F)) + (char-set (ucs->char #xB40)) + (ucs-range->char-set #xB41 #xB44) + (ucs-range->char-set #xB47 #xB49) + (ucs-range->char-set #xB4B #xB4D) + (char-set (ucs->char #xB4D)) + (char-set (ucs->char #xB56)) + (char-set (ucs->char #xB57)) + (ucs-range->char-set #xB5C #xB5E) + (ucs-range->char-set #xB5F #xB62) + (ucs-range->char-set #xB66 #xB70) + (char-set (ucs->char #xB71)) + (char-set (ucs->char #xB82)) + (char-set (ucs->char #xB83)) + (ucs-range->char-set #xB85 #xB8B) + (ucs-range->char-set #xB8E #xB91) + (ucs-range->char-set #xB92 #xB96) + (ucs-range->char-set #xB99 #xB9B) + (char-set (ucs->char #xB9C)) + (ucs-range->char-set #xB9E #xBA0) + (ucs-range->char-set #xBA3 #xBA5) + (ucs-range->char-set #xBA8 #xBAB) + (ucs-range->char-set #xBAE #xBB6) + (ucs-range->char-set #xBB7 #xBBA) + (ucs-range->char-set #xBBE #xBC0) + (char-set (ucs->char #xBC0)) + (ucs-range->char-set #xBC1 #xBC3) + (ucs-range->char-set #xBC6 #xBC9) + (ucs-range->char-set #xBCA #xBCD) + (char-set (ucs->char #xBCD)) + (char-set (ucs->char #xBD7)) + (ucs-range->char-set #xBE7 #xBF0) + (ucs-range->char-set #xC01 #xC04) + (ucs-range->char-set #xC05 #xC0D) + (ucs-range->char-set #xC0E #xC11) + (ucs-range->char-set #xC12 #xC29) + (ucs-range->char-set #xC2A #xC34) + (ucs-range->char-set #xC35 #xC3A) + (ucs-range->char-set #xC3E #xC41) + (ucs-range->char-set #xC41 #xC45) + (ucs-range->char-set #xC46 #xC49) + (ucs-range->char-set #xC4A #xC4E) + (ucs-range->char-set #xC55 #xC57) + (ucs-range->char-set #xC60 #xC62) + (ucs-range->char-set #xC66 #xC70) + (ucs-range->char-set #xC82 #xC84) + (ucs-range->char-set #xC85 #xC8D) + (ucs-range->char-set #xC8E #xC91) + (ucs-range->char-set #xC92 #xCA9) + (ucs-range->char-set #xCAA #xCB4) + (ucs-range->char-set #xCB5 #xCBA) + (char-set (ucs->char #xCBC)) + (char-set (ucs->char #xCBD)) + (char-set (ucs->char #xCBE)) + (char-set (ucs->char #xCBF)) + (ucs-range->char-set #xCC0 #xCC5) + (char-set (ucs->char #xCC6)) + (ucs-range->char-set #xCC7 #xCC9) + (ucs-range->char-set #xCCA #xCCC) + (ucs-range->char-set #xCCC #xCCE) + (ucs-range->char-set #xCD5 #xCD7) + (char-set (ucs->char #xCDE)) + (ucs-range->char-set #xCE0 #xCE2) + (ucs-range->char-set #xCE6 #xCF0) + (ucs-range->char-set #xD02 #xD04) + (ucs-range->char-set #xD05 #xD0D) + (ucs-range->char-set #xD0E #xD11) + (ucs-range->char-set #xD12 #xD29) + (ucs-range->char-set #xD2A #xD3A) + (ucs-range->char-set #xD3E #xD41) + (ucs-range->char-set #xD41 #xD44) + (ucs-range->char-set #xD46 #xD49) + (ucs-range->char-set #xD4A #xD4D) + (char-set (ucs->char #xD4D)) + (char-set (ucs->char #xD57)) + (ucs-range->char-set #xD60 #xD62) + (ucs-range->char-set #xD66 #xD70) + (ucs-range->char-set #xD82 #xD84) + (ucs-range->char-set #xD85 #xD97) + (ucs-range->char-set #xD9A #xDB2) + (ucs-range->char-set #xDB3 #xDBC) + (char-set (ucs->char #xDBD)) + (ucs-range->char-set #xDC0 #xDC7) + (char-set (ucs->char #xDCA)) + (ucs-range->char-set #xDCF #xDD2) + (ucs-range->char-set #xDD2 #xDD5) + (char-set (ucs->char #xDD6)) + (ucs-range->char-set #xDD8 #xDE0) + (ucs-range->char-set #xDF2 #xDF4) + (ucs-range->char-set #xE01 #xE31) + (char-set (ucs->char #xE31)) + (ucs-range->char-set #xE32 #xE34) + (ucs-range->char-set #xE34 #xE3B) + (ucs-range->char-set #xE40 #xE46) + (char-set (ucs->char #xE46)) + (ucs-range->char-set #xE47 #xE4F) + (ucs-range->char-set #xE50 #xE5A) + (ucs-range->char-set #xE81 #xE83) + (char-set (ucs->char #xE84)) + (ucs-range->char-set #xE87 #xE89) + (char-set (ucs->char #xE8A)) + (char-set (ucs->char #xE8D)) + (ucs-range->char-set #xE94 #xE98) + (ucs-range->char-set #xE99 #xEA0) + (ucs-range->char-set #xEA1 #xEA4) + (char-set (ucs->char #xEA5)) + (char-set (ucs->char #xEA7)) + (ucs-range->char-set #xEAA #xEAC) + (ucs-range->char-set #xEAD #xEB1) + (char-set (ucs->char #xEB1)) + (ucs-range->char-set #xEB2 #xEB4) + (ucs-range->char-set #xEB4 #xEBA) + (ucs-range->char-set #xEBB #xEBD) + (char-set (ucs->char #xEBD)) + (ucs-range->char-set #xEC0 #xEC5) + (char-set (ucs->char #xEC6)) + (ucs-range->char-set #xEC8 #xECE) + (ucs-range->char-set #xED0 #xEDA) + (ucs-range->char-set #xEDC #xEDE) + (char-set (ucs->char #xF00)) + (ucs-range->char-set #xF18 #xF1A) + (ucs-range->char-set #xF20 #xF2A) + (char-set (ucs->char #xF35)) + (char-set (ucs->char #xF37)) + (char-set (ucs->char #xF39)) + (ucs-range->char-set #xF3E #xF40) + (ucs-range->char-set #xF40 #xF48) + (ucs-range->char-set #xF49 #xF6B) + (ucs-range->char-set #xF71 #xF7F) + (char-set (ucs->char #xF7F)) + (ucs-range->char-set #xF80 #xF85) + (ucs-range->char-set #xF86 #xF88) + (ucs-range->char-set #xF88 #xF8C) + (ucs-range->char-set #xF90 #xF98) + (ucs-range->char-set #xF99 #xFBD) + (char-set (ucs->char #xFC6)) + (ucs-range->char-set #x1000 #x1022) + (ucs-range->char-set #x1023 #x1028) + (ucs-range->char-set #x1029 #x102B) + (char-set (ucs->char #x102C)) + (ucs-range->char-set #x102D #x1031) + (char-set (ucs->char #x1031)) + (char-set (ucs->char #x1032)) + (ucs-range->char-set #x1036 #x1038) + (char-set (ucs->char #x1038)) + (char-set (ucs->char #x1039)) + (ucs-range->char-set #x1040 #x104A) + (ucs-range->char-set #x1050 #x1056) + (ucs-range->char-set #x1056 #x1058) + (ucs-range->char-set #x1058 #x105A) + (ucs-range->char-set #x10A0 #x10C6) + (ucs-range->char-set #x10D0 #x10F9) + (ucs-range->char-set #x1100 #x115A) + (ucs-range->char-set #x115F #x11A3) + (ucs-range->char-set #x11A8 #x11FA) + (ucs-range->char-set #x1200 #x1207) + (ucs-range->char-set #x1208 #x1247) + (char-set (ucs->char #x1248)) + (ucs-range->char-set #x124A #x124E) + (ucs-range->char-set #x1250 #x1257) + (char-set (ucs->char #x1258)) + (ucs-range->char-set #x125A #x125E) + (ucs-range->char-set #x1260 #x1287) + (char-set (ucs->char #x1288)) + (ucs-range->char-set #x128A #x128E) + (ucs-range->char-set #x1290 #x12AF) + (char-set (ucs->char #x12B0)) + (ucs-range->char-set #x12B2 #x12B6) + (ucs-range->char-set #x12B8 #x12BF) + (char-set (ucs->char #x12C0)) + (ucs-range->char-set #x12C2 #x12C6) + (ucs-range->char-set #x12C8 #x12CF) + (ucs-range->char-set #x12D0 #x12D7) + (ucs-range->char-set #x12D8 #x12EF) + (ucs-range->char-set #x12F0 #x130F) + (char-set (ucs->char #x1310)) + (ucs-range->char-set #x1312 #x1316) + (ucs-range->char-set #x1318 #x131F) + (ucs-range->char-set #x1320 #x1347) + (ucs-range->char-set #x1348 #x135B) + (ucs-range->char-set #x1369 #x1372) + (ucs-range->char-set #x13A0 #x13F5) + (ucs-range->char-set #x1401 #x166D) + (ucs-range->char-set #x166F #x1677) + (ucs-range->char-set #x1681 #x169B) + (ucs-range->char-set #x16A0 #x16EB) + (ucs-range->char-set #x16EE #x16F1) + (ucs-range->char-set #x1700 #x170D) + (ucs-range->char-set #x170E #x1712) + (ucs-range->char-set #x1712 #x1715) + (ucs-range->char-set #x1720 #x1732) + (ucs-range->char-set #x1732 #x1735) + (ucs-range->char-set #x1740 #x1752) + (ucs-range->char-set #x1752 #x1754) + (ucs-range->char-set #x1760 #x176D) + (ucs-range->char-set #x176E #x1771) + (ucs-range->char-set #x1772 #x1774) + (ucs-range->char-set #x1780 #x17B4) + (char-set (ucs->char #x17B6)) + (ucs-range->char-set #x17B7 #x17BE) + (ucs-range->char-set #x17BE #x17C6) + (char-set (ucs->char #x17C6)) + (ucs-range->char-set #x17C7 #x17C9) + (ucs-range->char-set #x17C9 #x17D4) + (char-set (ucs->char #x17D7)) + (char-set (ucs->char #x17DC)) + (char-set (ucs->char #x17DD)) + (ucs-range->char-set #x17E0 #x17EA) + (ucs-range->char-set #x180B #x180E) + (ucs-range->char-set #x1810 #x181A) + (ucs-range->char-set #x1820 #x1843) + (char-set (ucs->char #x1843)) + (ucs-range->char-set #x1844 #x1878) + (ucs-range->char-set #x1880 #x18A9) + (char-set (ucs->char #x18A9)) + (ucs-range->char-set #x1900 #x191D) + (ucs-range->char-set #x1920 #x1923) + (ucs-range->char-set #x1923 #x1927) + (ucs-range->char-set #x1927 #x1929) + (ucs-range->char-set #x1929 #x192C) + (ucs-range->char-set #x1930 #x1932) + (char-set (ucs->char #x1932)) + (ucs-range->char-set #x1933 #x1939) + (ucs-range->char-set #x1939 #x193C) + (ucs-range->char-set #x1946 #x1950) + (ucs-range->char-set #x1950 #x196E) + (ucs-range->char-set #x1970 #x1975) + (ucs-range->char-set #x1D00 #x1D2C) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x1D62 #x1D6C) + (ucs-range->char-set #x1E00 #x1E9C) + (ucs-range->char-set #x1EA0 #x1EFA) + (ucs-range->char-set #x1F00 #x1F16) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F20 #x1F46) + (ucs-range->char-set #x1F48 #x1F4E) + (ucs-range->char-set #x1F50 #x1F58) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (ucs-range->char-set #x1F5F #x1F7E) + (ucs-range->char-set #x1F80 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FBD) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FCD) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FDC) + (ucs-range->char-set #x1FE0 #x1FED) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FFD) + (ucs-range->char-set #x203F #x2041) + (char-set (ucs->char #x2054)) + (char-set (ucs->char #x2071)) + (char-set (ucs->char #x207F)) + (ucs-range->char-set #x20D0 #x20DD) + (char-set (ucs->char #x20E1)) + (ucs-range->char-set #x20E5 #x20EB) + (char-set (ucs->char #x2102)) + (char-set (ucs->char #x2107)) + (ucs-range->char-set #x210A #x2114) + (char-set (ucs->char #x2115)) + (char-set (ucs->char #x2118)) + (ucs-range->char-set #x2119 #x211E) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2126)) + (char-set (ucs->char #x2128)) + (ucs-range->char-set #x212A #x212E) + (char-set (ucs->char #x212E)) + (ucs-range->char-set #x212F #x2132) + (ucs-range->char-set #x2133 #x2135) + (ucs-range->char-set #x2135 #x2139) + (char-set (ucs->char #x2139)) + (ucs-range->char-set #x213D #x2140) + (ucs-range->char-set #x2145 #x214A) + (ucs-range->char-set #x2160 #x2184) + (char-set (ucs->char #x3005)) + (char-set (ucs->char #x3006)) + (char-set (ucs->char #x3007)) + (ucs-range->char-set #x3021 #x302A) + (ucs-range->char-set #x302A #x3030) + (ucs-range->char-set #x3031 #x3036) + (ucs-range->char-set #x3038 #x303B) + (char-set (ucs->char #x303B)) + (char-set (ucs->char #x303C)) + (ucs-range->char-set #x3041 #x3097) + (ucs-range->char-set #x3099 #x309B) + (ucs-range->char-set #x309D #x309F) + (char-set (ucs->char #x309F)) + (ucs-range->char-set #x30A1 #x30FB) + (char-set (ucs->char #x30FB)) + (ucs-range->char-set #x30FC #x30FF) + (char-set (ucs->char #x30FF)) + (ucs-range->char-set #x3105 #x312D) + (ucs-range->char-set #x3131 #x318F) + (ucs-range->char-set #x31A0 #x31B8) + (ucs-range->char-set #x31F0 #x3200) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xA000 #xA48D) + (ucs-range->char-set #xAC00 #xD7A4) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #xFA30 #xFA6B) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFB13 #xFB18) + (char-set (ucs->char #xFB1D)) + (char-set (ucs->char #xFB1E)) + (ucs-range->char-set #xFB1F #xFB29) + (ucs-range->char-set #xFB2A #xFB37) + (ucs-range->char-set #xFB38 #xFB3D) + (char-set (ucs->char #xFB3E)) + (ucs-range->char-set #xFB40 #xFB42) + (ucs-range->char-set #xFB43 #xFB45) + (ucs-range->char-set #xFB46 #xFBB2) + (ucs-range->char-set #xFBD3 #xFC5E) + (ucs-range->char-set #xFC64 #xFD3E) + (ucs-range->char-set #xFD50 #xFD90) + (ucs-range->char-set #xFD92 #xFDC8) + (ucs-range->char-set #xFDF0 #xFDFA) + (ucs-range->char-set #xFE00 #xFE10) + (ucs-range->char-set #xFE20 #xFE24) + (ucs-range->char-set #xFE33 #xFE35) + (ucs-range->char-set #xFE4D #xFE50) + (char-set (ucs->char #xFE71)) + (char-set (ucs->char #xFE73)) + (char-set (ucs->char #xFE77)) + (char-set (ucs->char #xFE79)) + (char-set (ucs->char #xFE7B)) + (char-set (ucs->char #xFE7D)) + (ucs-range->char-set #xFE7F #xFEFD) + (ucs-range->char-set #xFF10 #xFF1A) + (ucs-range->char-set #xFF21 #xFF3B) + (char-set (ucs->char #xFF3F)) + (ucs-range->char-set #xFF41 #xFF5B) + (char-set (ucs->char #xFF65)) + (ucs-range->char-set #xFF66 #xFF70) + (char-set (ucs->char #xFF70)) + (ucs-range->char-set #xFF71 #xFF9E) + (ucs-range->char-set #xFF9E #xFFA0) + (ucs-range->char-set #xFFA0 #xFFBF) + (ucs-range->char-set #xFFC2 #xFFC8) + (ucs-range->char-set #xFFCA #xFFD0) + (ucs-range->char-set #xFFD2 #xFFD8) + (ucs-range->char-set #xFFDA #xFFDD) + (ucs-range->char-set #x10000 #x1000C) + (ucs-range->char-set #x1000D #x10027) + (ucs-range->char-set #x10028 #x1003B) + (ucs-range->char-set #x1003C #x1003E) + (ucs-range->char-set #x1003F #x1004E) + (ucs-range->char-set #x10050 #x1005E) + (ucs-range->char-set #x10080 #x100FB) + (ucs-range->char-set #x10300 #x1031F) + (ucs-range->char-set #x10330 #x1034A) + (char-set (ucs->char #x1034A)) + (ucs-range->char-set #x10380 #x1039E) + (ucs-range->char-set #x10400 #x10450) + (ucs-range->char-set #x10450 #x1049E) + (ucs-range->char-set #x104A0 #x104AA) + (ucs-range->char-set #x10800 #x10806) + (char-set (ucs->char #x10808)) + (ucs-range->char-set #x1080A #x10836) + (ucs-range->char-set #x10837 #x10839) + (char-set (ucs->char #x1083C)) + (char-set (ucs->char #x1083F)) + (ucs-range->char-set #x1D165 #x1D167) + (ucs-range->char-set #x1D167 #x1D16A) + (ucs-range->char-set #x1D16D #x1D173) + (ucs-range->char-set #x1D17B #x1D183) + (ucs-range->char-set #x1D185 #x1D18C) + (ucs-range->char-set #x1D1AA #x1D1AE) + (ucs-range->char-set #x1D400 #x1D455) + (ucs-range->char-set #x1D456 #x1D49D) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D51E #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D552 #x1D6A4) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (ucs-range->char-set #x1D6DC #x1D6FB) + (ucs-range->char-set #x1D6FC #x1D715) + (ucs-range->char-set #x1D716 #x1D735) + (ucs-range->char-set #x1D736 #x1D74F) + (ucs-range->char-set #x1D750 #x1D76F) + (ucs-range->char-set #x1D770 #x1D789) + (ucs-range->char-set #x1D78A #x1D7A9) + (ucs-range->char-set #x1D7AA #x1D7C3) + (ucs-range->char-set #x1D7C4 #x1D7CA) + (ucs-range->char-set #x1D7CE #x1D800) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + (ucs-range->char-set #xE0100 #xE01F0) + )) + +(define char-set:xid-start + (char-set-union + (ucs-range->char-set #x41 #x5B) + (ucs-range->char-set #x61 #x7B) + (char-set (ucs->char #xAA)) + (char-set (ucs->char #xB5)) + (char-set (ucs->char #xBA)) + (ucs-range->char-set #xC0 #xD7) + (ucs-range->char-set #xD8 #xF7) + (ucs-range->char-set #xF8 #x1BB) + (char-set (ucs->char #x1BB)) + (ucs-range->char-set #x1BC #x1C0) + (ucs-range->char-set #x1C0 #x1C4) + (ucs-range->char-set #x1C4 #x237) + (ucs-range->char-set #x250 #x2B0) + (ucs-range->char-set #x2B0 #x2C2) + (ucs-range->char-set #x2C6 #x2D2) + (ucs-range->char-set #x2E0 #x2E5) + (char-set (ucs->char #x2EE)) + (char-set (ucs->char #x386)) + (ucs-range->char-set #x388 #x38B) + (char-set (ucs->char #x38C)) + (ucs-range->char-set #x38E #x3A2) + (ucs-range->char-set #x3A3 #x3CF) + (ucs-range->char-set #x3D0 #x3F6) + (ucs-range->char-set #x3F7 #x3FC) + (ucs-range->char-set #x400 #x482) + (ucs-range->char-set #x48A #x4CF) + (ucs-range->char-set #x4D0 #x4F6) + (ucs-range->char-set #x4F8 #x4FA) + (ucs-range->char-set #x500 #x510) + (ucs-range->char-set #x531 #x557) + (char-set (ucs->char #x559)) + (ucs-range->char-set #x561 #x588) + (ucs-range->char-set #x5D0 #x5EB) + (ucs-range->char-set #x5F0 #x5F3) + (ucs-range->char-set #x621 #x63B) + (char-set (ucs->char #x640)) + (ucs-range->char-set #x641 #x64B) + (ucs-range->char-set #x66E #x670) + (ucs-range->char-set #x671 #x6D4) + (char-set (ucs->char #x6D5)) + (ucs-range->char-set #x6E5 #x6E7) + (ucs-range->char-set #x6EE #x6F0) + (ucs-range->char-set #x6FA #x6FD) + (char-set (ucs->char #x6FF)) + (char-set (ucs->char #x710)) + (ucs-range->char-set #x712 #x730) + (ucs-range->char-set #x74D #x750) + (ucs-range->char-set #x780 #x7A6) + (char-set (ucs->char #x7B1)) + (ucs-range->char-set #x904 #x93A) + (char-set (ucs->char #x93D)) + (char-set (ucs->char #x950)) + (ucs-range->char-set #x958 #x962) + (ucs-range->char-set #x985 #x98D) + (ucs-range->char-set #x98F #x991) + (ucs-range->char-set #x993 #x9A9) + (ucs-range->char-set #x9AA #x9B1) + (char-set (ucs->char #x9B2)) + (ucs-range->char-set #x9B6 #x9BA) + (char-set (ucs->char #x9BD)) + (ucs-range->char-set #x9DC #x9DE) + (ucs-range->char-set #x9DF #x9E2) + (ucs-range->char-set #x9F0 #x9F2) + (ucs-range->char-set #xA05 #xA0B) + (ucs-range->char-set #xA0F #xA11) + (ucs-range->char-set #xA13 #xA29) + (ucs-range->char-set #xA2A #xA31) + (ucs-range->char-set #xA32 #xA34) + (ucs-range->char-set #xA35 #xA37) + (ucs-range->char-set #xA38 #xA3A) + (ucs-range->char-set #xA59 #xA5D) + (char-set (ucs->char #xA5E)) + (ucs-range->char-set #xA72 #xA75) + (ucs-range->char-set #xA85 #xA8E) + (ucs-range->char-set #xA8F #xA92) + (ucs-range->char-set #xA93 #xAA9) + (ucs-range->char-set #xAAA #xAB1) + (ucs-range->char-set #xAB2 #xAB4) + (ucs-range->char-set #xAB5 #xABA) + (char-set (ucs->char #xABD)) + (char-set (ucs->char #xAD0)) + (ucs-range->char-set #xAE0 #xAE2) + (ucs-range->char-set #xB05 #xB0D) + (ucs-range->char-set #xB0F #xB11) + (ucs-range->char-set #xB13 #xB29) + (ucs-range->char-set #xB2A #xB31) + (ucs-range->char-set #xB32 #xB34) + (ucs-range->char-set #xB35 #xB3A) + (char-set (ucs->char #xB3D)) + (ucs-range->char-set #xB5C #xB5E) + (ucs-range->char-set #xB5F #xB62) + (char-set (ucs->char #xB71)) + (char-set (ucs->char #xB83)) + (ucs-range->char-set #xB85 #xB8B) + (ucs-range->char-set #xB8E #xB91) + (ucs-range->char-set #xB92 #xB96) + (ucs-range->char-set #xB99 #xB9B) + (char-set (ucs->char #xB9C)) + (ucs-range->char-set #xB9E #xBA0) + (ucs-range->char-set #xBA3 #xBA5) + (ucs-range->char-set #xBA8 #xBAB) + (ucs-range->char-set #xBAE #xBB6) + (ucs-range->char-set #xBB7 #xBBA) + (ucs-range->char-set #xC05 #xC0D) + (ucs-range->char-set #xC0E #xC11) + (ucs-range->char-set #xC12 #xC29) + (ucs-range->char-set #xC2A #xC34) + (ucs-range->char-set #xC35 #xC3A) + (ucs-range->char-set #xC60 #xC62) + (ucs-range->char-set #xC85 #xC8D) + (ucs-range->char-set #xC8E #xC91) + (ucs-range->char-set #xC92 #xCA9) + (ucs-range->char-set #xCAA #xCB4) + (ucs-range->char-set #xCB5 #xCBA) + (char-set (ucs->char #xCBD)) + (char-set (ucs->char #xCDE)) + (ucs-range->char-set #xCE0 #xCE2) + (ucs-range->char-set #xD05 #xD0D) + (ucs-range->char-set #xD0E #xD11) + (ucs-range->char-set #xD12 #xD29) + (ucs-range->char-set #xD2A #xD3A) + (ucs-range->char-set #xD60 #xD62) + (ucs-range->char-set #xD85 #xD97) + (ucs-range->char-set #xD9A #xDB2) + (ucs-range->char-set #xDB3 #xDBC) + (char-set (ucs->char #xDBD)) + (ucs-range->char-set #xDC0 #xDC7) + (ucs-range->char-set #xE01 #xE31) + (char-set (ucs->char #xE32)) + (ucs-range->char-set #xE40 #xE46) + (char-set (ucs->char #xE46)) + (ucs-range->char-set #xE81 #xE83) + (char-set (ucs->char #xE84)) + (ucs-range->char-set #xE87 #xE89) + (char-set (ucs->char #xE8A)) + (char-set (ucs->char #xE8D)) + (ucs-range->char-set #xE94 #xE98) + (ucs-range->char-set #xE99 #xEA0) + (ucs-range->char-set #xEA1 #xEA4) + (char-set (ucs->char #xEA5)) + (char-set (ucs->char #xEA7)) + (ucs-range->char-set #xEAA #xEAC) + (ucs-range->char-set #xEAD #xEB1) + (char-set (ucs->char #xEB2)) + (char-set (ucs->char #xEBD)) + (ucs-range->char-set #xEC0 #xEC5) + (char-set (ucs->char #xEC6)) + (ucs-range->char-set #xEDC #xEDE) + (char-set (ucs->char #xF00)) + (ucs-range->char-set #xF40 #xF48) + (ucs-range->char-set #xF49 #xF6B) + (ucs-range->char-set #xF88 #xF8C) + (ucs-range->char-set #x1000 #x1022) + (ucs-range->char-set #x1023 #x1028) + (ucs-range->char-set #x1029 #x102B) + (ucs-range->char-set #x1050 #x1056) + (ucs-range->char-set #x10A0 #x10C6) + (ucs-range->char-set #x10D0 #x10F9) + (ucs-range->char-set #x1100 #x115A) + (ucs-range->char-set #x115F #x11A3) + (ucs-range->char-set #x11A8 #x11FA) + (ucs-range->char-set #x1200 #x1207) + (ucs-range->char-set #x1208 #x1247) + (char-set (ucs->char #x1248)) + (ucs-range->char-set #x124A #x124E) + (ucs-range->char-set #x1250 #x1257) + (char-set (ucs->char #x1258)) + (ucs-range->char-set #x125A #x125E) + (ucs-range->char-set #x1260 #x1287) + (char-set (ucs->char #x1288)) + (ucs-range->char-set #x128A #x128E) + (ucs-range->char-set #x1290 #x12AF) + (char-set (ucs->char #x12B0)) + (ucs-range->char-set #x12B2 #x12B6) + (ucs-range->char-set #x12B8 #x12BF) + (char-set (ucs->char #x12C0)) + (ucs-range->char-set #x12C2 #x12C6) + (ucs-range->char-set #x12C8 #x12CF) + (ucs-range->char-set #x12D0 #x12D7) + (ucs-range->char-set #x12D8 #x12EF) + (ucs-range->char-set #x12F0 #x130F) + (char-set (ucs->char #x1310)) + (ucs-range->char-set #x1312 #x1316) + (ucs-range->char-set #x1318 #x131F) + (ucs-range->char-set #x1320 #x1347) + (ucs-range->char-set #x1348 #x135B) + (ucs-range->char-set #x13A0 #x13F5) + (ucs-range->char-set #x1401 #x166D) + (ucs-range->char-set #x166F #x1677) + (ucs-range->char-set #x1681 #x169B) + (ucs-range->char-set #x16A0 #x16EB) + (ucs-range->char-set #x16EE #x16F1) + (ucs-range->char-set #x1700 #x170D) + (ucs-range->char-set #x170E #x1712) + (ucs-range->char-set #x1720 #x1732) + (ucs-range->char-set #x1740 #x1752) + (ucs-range->char-set #x1760 #x176D) + (ucs-range->char-set #x176E #x1771) + (ucs-range->char-set #x1780 #x17B4) + (char-set (ucs->char #x17D7)) + (char-set (ucs->char #x17DC)) + (ucs-range->char-set #x1820 #x1843) + (char-set (ucs->char #x1843)) + (ucs-range->char-set #x1844 #x1878) + (ucs-range->char-set #x1880 #x18A9) + (ucs-range->char-set #x1900 #x191D) + (ucs-range->char-set #x1950 #x196E) + (ucs-range->char-set #x1970 #x1975) + (ucs-range->char-set #x1D00 #x1D2C) + (ucs-range->char-set #x1D2C #x1D62) + (ucs-range->char-set #x1D62 #x1D6C) + (ucs-range->char-set #x1E00 #x1E9C) + (ucs-range->char-set #x1EA0 #x1EFA) + (ucs-range->char-set #x1F00 #x1F16) + (ucs-range->char-set #x1F18 #x1F1E) + (ucs-range->char-set #x1F20 #x1F46) + (ucs-range->char-set #x1F48 #x1F4E) + (ucs-range->char-set #x1F50 #x1F58) + (char-set (ucs->char #x1F59)) + (char-set (ucs->char #x1F5B)) + (char-set (ucs->char #x1F5D)) + (ucs-range->char-set #x1F5F #x1F7E) + (ucs-range->char-set #x1F80 #x1FB5) + (ucs-range->char-set #x1FB6 #x1FBD) + (char-set (ucs->char #x1FBE)) + (ucs-range->char-set #x1FC2 #x1FC5) + (ucs-range->char-set #x1FC6 #x1FCD) + (ucs-range->char-set #x1FD0 #x1FD4) + (ucs-range->char-set #x1FD6 #x1FDC) + (ucs-range->char-set #x1FE0 #x1FED) + (ucs-range->char-set #x1FF2 #x1FF5) + (ucs-range->char-set #x1FF6 #x1FFD) + (char-set (ucs->char #x2071)) + (char-set (ucs->char #x207F)) + (char-set (ucs->char #x2102)) + (char-set (ucs->char #x2107)) + (ucs-range->char-set #x210A #x2114) + (char-set (ucs->char #x2115)) + (char-set (ucs->char #x2118)) + (ucs-range->char-set #x2119 #x211E) + (char-set (ucs->char #x2124)) + (char-set (ucs->char #x2126)) + (char-set (ucs->char #x2128)) + (ucs-range->char-set #x212A #x212E) + (char-set (ucs->char #x212E)) + (ucs-range->char-set #x212F #x2132) + (ucs-range->char-set #x2133 #x2135) + (ucs-range->char-set #x2135 #x2139) + (char-set (ucs->char #x2139)) + (ucs-range->char-set #x213D #x2140) + (ucs-range->char-set #x2145 #x214A) + (ucs-range->char-set #x2160 #x2184) + (char-set (ucs->char #x3005)) + (char-set (ucs->char #x3006)) + (char-set (ucs->char #x3007)) + (ucs-range->char-set #x3021 #x302A) + (ucs-range->char-set #x3031 #x3036) + (ucs-range->char-set #x3038 #x303B) + (char-set (ucs->char #x303B)) + (char-set (ucs->char #x303C)) + (ucs-range->char-set #x3041 #x3097) + (ucs-range->char-set #x309D #x309F) + (char-set (ucs->char #x309F)) + (ucs-range->char-set #x30A1 #x30FB) + (ucs-range->char-set #x30FC #x30FF) + (char-set (ucs->char #x30FF)) + (ucs-range->char-set #x3105 #x312D) + (ucs-range->char-set #x3131 #x318F) + (ucs-range->char-set #x31A0 #x31B8) + (ucs-range->char-set #x31F0 #x3200) + (ucs-range->char-set #x3400 #x4DB6) + (ucs-range->char-set #x4E00 #x9FA6) + (ucs-range->char-set #xA000 #xA48D) + (ucs-range->char-set #xAC00 #xD7A4) + (ucs-range->char-set #xF900 #xFA2E) + (ucs-range->char-set #xFA30 #xFA6B) + (ucs-range->char-set #xFB00 #xFB07) + (ucs-range->char-set #xFB13 #xFB18) + (char-set (ucs->char #xFB1D)) + (ucs-range->char-set #xFB1F #xFB29) + (ucs-range->char-set #xFB2A #xFB37) + (ucs-range->char-set #xFB38 #xFB3D) + (char-set (ucs->char #xFB3E)) + (ucs-range->char-set #xFB40 #xFB42) + (ucs-range->char-set #xFB43 #xFB45) + (ucs-range->char-set #xFB46 #xFBB2) + (ucs-range->char-set #xFBD3 #xFC5E) + (ucs-range->char-set #xFC64 #xFD3E) + (ucs-range->char-set #xFD50 #xFD90) + (ucs-range->char-set #xFD92 #xFDC8) + (ucs-range->char-set #xFDF0 #xFDFA) + (char-set (ucs->char #xFE71)) + (char-set (ucs->char #xFE73)) + (char-set (ucs->char #xFE77)) + (char-set (ucs->char #xFE79)) + (char-set (ucs->char #xFE7B)) + (char-set (ucs->char #xFE7D)) + (ucs-range->char-set #xFE7F #xFEFD) + (ucs-range->char-set #xFF21 #xFF3B) + (ucs-range->char-set #xFF41 #xFF5B) + (ucs-range->char-set #xFF66 #xFF70) + (char-set (ucs->char #xFF70)) + (ucs-range->char-set #xFF71 #xFF9E) + (ucs-range->char-set #xFFA0 #xFFBF) + (ucs-range->char-set #xFFC2 #xFFC8) + (ucs-range->char-set #xFFCA #xFFD0) + (ucs-range->char-set #xFFD2 #xFFD8) + (ucs-range->char-set #xFFDA #xFFDD) + (ucs-range->char-set #x10000 #x1000C) + (ucs-range->char-set #x1000D #x10027) + (ucs-range->char-set #x10028 #x1003B) + (ucs-range->char-set #x1003C #x1003E) + (ucs-range->char-set #x1003F #x1004E) + (ucs-range->char-set #x10050 #x1005E) + (ucs-range->char-set #x10080 #x100FB) + (ucs-range->char-set #x10300 #x1031F) + (ucs-range->char-set #x10330 #x1034A) + (char-set (ucs->char #x1034A)) + (ucs-range->char-set #x10380 #x1039E) + (ucs-range->char-set #x10400 #x10450) + (ucs-range->char-set #x10450 #x1049E) + (ucs-range->char-set #x10800 #x10806) + (char-set (ucs->char #x10808)) + (ucs-range->char-set #x1080A #x10836) + (ucs-range->char-set #x10837 #x10839) + (char-set (ucs->char #x1083C)) + (char-set (ucs->char #x1083F)) + (ucs-range->char-set #x1D400 #x1D455) + (ucs-range->char-set #x1D456 #x1D49D) + (ucs-range->char-set #x1D49E #x1D4A0) + (char-set (ucs->char #x1D4A2)) + (ucs-range->char-set #x1D4A5 #x1D4A7) + (ucs-range->char-set #x1D4A9 #x1D4AD) + (ucs-range->char-set #x1D4AE #x1D4BA) + (char-set (ucs->char #x1D4BB)) + (ucs-range->char-set #x1D4BD #x1D4C4) + (ucs-range->char-set #x1D4C5 #x1D506) + (ucs-range->char-set #x1D507 #x1D50B) + (ucs-range->char-set #x1D50D #x1D515) + (ucs-range->char-set #x1D516 #x1D51D) + (ucs-range->char-set #x1D51E #x1D53A) + (ucs-range->char-set #x1D53B #x1D53F) + (ucs-range->char-set #x1D540 #x1D545) + (char-set (ucs->char #x1D546)) + (ucs-range->char-set #x1D54A #x1D551) + (ucs-range->char-set #x1D552 #x1D6A4) + (ucs-range->char-set #x1D6A8 #x1D6C1) + (ucs-range->char-set #x1D6C2 #x1D6DB) + (ucs-range->char-set #x1D6DC #x1D6FB) + (ucs-range->char-set #x1D6FC #x1D715) + (ucs-range->char-set #x1D716 #x1D735) + (ucs-range->char-set #x1D736 #x1D74F) + (ucs-range->char-set #x1D750 #x1D76F) + (ucs-range->char-set #x1D770 #x1D789) + (ucs-range->char-set #x1D78A #x1D7A9) + (ucs-range->char-set #x1D7AA #x1D7C3) + (ucs-range->char-set #x1D7C4 #x1D7CA) + (ucs-range->char-set #x20000 #x2A6D7) + (ucs-range->char-set #x2F800 #x2FA1E) + )) + diff -urN wiliki-0.5/scheme-unicode/Makefile wiliki-0.5-case-insensitive/scheme-unicode/Makefile --- wiliki-0.5/scheme-unicode/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/Makefile 2004-09-13 16:22:37.000000000 +0200 @@ -0,0 +1,81 @@ + +.PHONY: test clean distclean dist install + +GOSH = gosh +GOSH_EUC = gosh-euc +GAUCHE_CONFIG = gauche-config +INSTALL = /usr/bin/install -c +INSTALL_TYPE = site +SCM_INSTALL_DIR = $(DESTDIR)`$(GAUCHE_CONFIG) --$(INSTALL_TYPE)libdir` +SCM_PATCH_DIR = $(DESTDIR)`$(GAUCHE_CONFIG) --syslibdir` +UNICODEURL = "http://www.unicode.org/Public/UNIDATA" +VERSION=`cat VERSION` +TESTENV= + +# data from unicode.org not included, so nothing builds by default +#all: case-maps char-sets +all: + +install: all + for f in `cd lib && find . -name \*.scm`; do \ + $(INSTALL) -D -m 644 lib/$$f $(SCM_INSTALL_DIR)/$$f; \ + done + cp data/case-map-*.dat $(SCM_INSTALL_DIR) + +srfi-14-patch: + cp srfi-14.scm.diff $(SCM_PATCH_DIR) + cd $(SCM_PATCH_DIR) && patch -p 0 < srfi-14.scm.diff && rm -f srfi-14.scm.diff + $(INSTALL) -D -m 644 data/ranges.dat $(SCM_PATCH_DIR)/srfi-14/ranges.dat + +test: all + cd test; \ + for f in t-*.scm; do \ + $(TESTENV) $(GOSH) $$f; \ + done + +clean: + rm -f `find . -name \*~` + +distclean: clean + rm -rf debian/tmp + +# build from Unicode data (not included) + +ranges: + if type $(GOSH_EUC) 2>/dev/null; then \ + $(GOSH_EUC) ./tools/gen-ranges >data/ranges.dat; \ + else \ + $(GOSH) ./tools/gen-ranges >data/ranges.dat; \ + fi + +case-maps: case-map-1 case-map-2 + +case-map-1: UnicodeData.txt + ./tools/extract-case-1.scm < $< > data/case-map-1.dat + +case-map-2: SpecialCasing.txt + ./tools/extract-case-2.scm < $< > data/case-map-2.dat + +# chained autoload is causing problems +#char-sets: Scripts.txt PropList.txt DerivedCoreProperties.txt +# ./tools/extract-prop.scm -g -m lang.char-set.other -o lib/lang/char-set/other.scm -i "other" PropList.txt +# ./tools/extract-prop.scm -g -m lang.char-set.derived -o lib/lang/char-set/derived.scm -f PropList.txt -A lib/lang/char-set/other.scm DerivedCoreProperties.txt +# ./tools/extract-prop.scm -g -m lang.char-set -o lib/lang/char-set.scm -A lib/lang/char-set/other.scm,lib/lang/char-set/derived.scm Scripts.txt +# ./tools/extract-prop.scm -g -a lib/lang/char-set.scm -x "other" PropList.txt + +char-sets: Scripts.txt PropList.txt DerivedCoreProperties.txt + ./tools/extract-prop.scm -g -m lang.char-set -e -d common -o lib/lang/char-set.scm Scripts.txt + ./tools/extract-prop.scm -g -a lib/lang/char-set.scm PropList.txt + ./tools/extract-prop.scm -g -f PropList.txt -a lib/lang/char-set.scm DerivedCoreProperties.txt + +UnicodeData.txt SpecialCasing.txt Scripts.txt PropList.txt DerivedCoreProperties.txt: + wget $(UNICODEURL)/$@ + +# build distribution tarballs +dist: all distclean + dir=`basename $$PWD` && \ + name=$${dir}-$(VERSION) && \ + cd .. && \ + tar cjvf $$name.tar.bz2 -h --exclude \*.txt $$dir && \ + cd $$dir + diff -urN wiliki-0.5/scheme-unicode/README wiliki-0.5-case-insensitive/scheme-unicode/README --- wiliki-0.5/scheme-unicode/README 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/README 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,65 @@ + + scheme-unicode + -------------- + + Unicode utilities for Scheme + + http://synthcode.com/scheme/ + + version 0.1 + Dec 24, 2003 + + +This directory contains a general library for handling Unicode strings +in Scheme (currently only supports Gauche). The lang.char-set module +provides char-sets for all standard Unicode properties, and the +lang.case-map module provides generalized upcase, downcase and titlecase +procedures which work on strings or ports and take an optional locale +string parameter. The resulting strings may be denormalized - future +versions of this library will include normalization routines and more +general access to the Unicode Character Database (UCB). + +To install run "make install". + +An optional patch to make SRFI-14's ucs-range->char-set faster for +non-Unicode Gauche is also included. This can be installed with "make +srfi-14-patch". This takes advantage of the fact in Unicode a fair +number of consecutive ranges correspond to ranges in JIS, and an even +greater number of ranges are not handled by JIS. The common ranges are +as follows: + + u: 0080-009F => j: 8F8080-8F809F (32) ;; meta chars + u: 00B7-00D6 => j: A9AE-A9CD (32) ;; symbols + u: 00D8-00F6 => j: A9CE-A9EC (31) ;; latin + u: 00F8-0100 => j: A9ED-A9F5 ( 9) ;; latin + u: 02E5-02E9 => j: ABE0-ABE4 ( 5) ;; line-drawing + u: 0391-03A1 => j: A6A1-A6B1 (17) ;; uppercase Greek + u: 03A3-03A9 => j: A6B2-A6B8 ( 7) ;; uppercase Greek + u: 03B1-03C1 => j: A6C1-A6D1 (17) ;; lowercase Greek + u: 03C3-03C9 => j: A6D2-A6D8 ( 7) ;; lowercase Greek + u: 0410-0415 => j: A7A1-A7A6 ( 6) ;; uppercase Cyrillic + u: 0416-042F => j: A7A8-A7C1 (26) ;; uppercase Cyrillic + u: 0430-0435 => j: A7D1-A7D6 ( 6) ;; lowercase Cyrillic + u: 0436-044F => j: A7D8-A7F1 (26) ;; lowercase Cyrillic + u: 2160-216A => j: ADB5-ADBF (11) ;; uppercase roman numerals I..XI + u: 2170-217B => j: ACB5-ACC0 (12) ;; lowercase roman numerals I..XII + u: 23BE-23CC => j: A7C2-A7D0 (15) ;; ???? + u: 2460-2473 => j: ADA1-ADB4 (20) ;; circled numbers + u: 24D0-24E9 => j: ACC1-ACDA (26) ;; circled letters + u: 24EB-24F4 => j: ACAB-ACB4 (10) ;; ???? + u: 24F5-24FE => j: A6DA-A6E3 (10) ;; ???? + u: 2776-277F => j: ACA1-ACAA (10) ;; solid circled numbers + u: 3008-3011 => j: A1D2-A1DB (10) ;; extended brackets + u: 3041-3096 => j: A4A1-A4F6 (86) ;; hiragana + u: 30A1-30F6 => j: A5A1-A5F6 (86) ;; katakana + u: 31F0-31F9 => j: A6EE-A6F7 (10) ;; ???? + u: 31FA-31FF => j: A6F9-A6FE ( 6) ;; ???? + u: 3251-325F => j: A8C1-A8CF (15) ;; ???? + u: 32A4-32A8 => j: ADE5-ADE9 ( 5) ;; circled hi/mid/lo/left/right kanji + u: 32B1-32BF => j: A8D0-A8DE (15) ;; ???? + u: 32D0-32E3 => j: ACDB-ACEE (20) ;; circled katakana + u: FF10-FF19 => j: A3B0-A3B9 (10) ;; wide digits 0-9 + u: FF21-FF3A => j: A3C1-A3DA (26) ;; wide uppercase latin + u: FF41-FF5A => j: A3E1-A3FA (26) ;; wide lowercase latin + u: FF61-FF9F => j: 8EA1-8EDF (63) ;; miscellaneous symbols + diff -urN wiliki-0.5/scheme-unicode/srfi-14.scm.diff wiliki-0.5-case-insensitive/scheme-unicode/srfi-14.scm.diff --- wiliki-0.5/scheme-unicode/srfi-14.scm.diff 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/srfi-14.scm.diff 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,102 @@ +*** srfi-14.scm 20 Nov 2003 16:12:12 -0000 1.12 +--- srfi-14.scm 24 Dec 2003 08:15:25 -0000 +*************** +*** 239,267 **** + (define ucs-range->char-set! + (if (eq? (gauche-character-encoding) 'utf-8) + integer-range->char-set! +! (lambda (low upper error? base) +! (when (< low 0) +! (if error? + (error "argument out of range:" low) + (set! low 0))) +! (if (< upper 128) +! (%char-set-add-range! base low (- upper 1)) +! (begin +! (when (< low 128) +! (%char-set-add-range! base low 128) +! (set! low 128)) +! (do ((i low (+ i 1))) +! ((>= i upper) base) +! (let ((c (ucs->char i))) +! (if c +! (%char-set-add-range! base c c) +! (if error? +! (error "unicode character #\\u~8,'0x is not supported in the native character set (~a)" +! i (gauche-character-encoding))))) +! ))) +! ) +! )) +! + (define (->char-set obj) + (cond ((list? obj) (list->char-set obj)) + ((string? obj) (string->char-set obj)) +--- 239,306 ---- + (define ucs-range->char-set! + (if (eq? (gauche-character-encoding) 'utf-8) + integer-range->char-set! +! (letrec +! ((%common-ranges +! (with-error-handler +! (lambda (err . args) (warn "couldn't load unicode ranges") #f) +! (lambda () +! (with-input-from-file +! (format "~A/srfi-14/ranges.dat" (gauche-library-directory)) +! read)))) +! (%search-range +! (lambda (i) +! (let loop ((tree %common-ranges)) +! (and tree +! (let* ((cur (car tree)) +! (start (car cur))) +! (cond +! ((< i start) +! (loop (cadr tree))) +! ((>= i start) +! (if (<= i (cadr cur)) +! cur +! (loop (caddr tree)))))))))) +! (%out-of-range +! (lambda (i) +! (errorf "unicode character #\\u~8,'0x is not supported in the native character set (~a)" +! i (gauche-character-encoding)))) +! ) +! (lambda (low upper error? base) +! (when (< low 0) +! (if error? + (error "argument out of range:" low) + (set! low 0))) +! (cond +! ((< upper 128) +! (%char-set-add-range! base low (- upper 1))) +! ((%search-range low) +! => (lambda (r) +! (let* ((start (car r)) +! (end (cadr r)) +! (end2 (min end (- upper 1))) +! (val (list-ref r 2 #f))) +! (cond +! (val +! (%char-set-add-range! base val (+ val (- end2 start)))) +! (error? (%out-of-range low))) +! (if (> (- upper 1) end) +! (ucs-range->char-set! (+ end 1) upper error? base) +! base)))) +! ((%search-range (- upper 1)) +! => (lambda (r) +! (ucs-range->char-set! (car r) upper error? base) +! (ucs-range->char-set! low (car r) error? base))) +! (else +! (when (< low 128) +! (%char-set-add-range! base low 128) +! (set! low 128)) +! (do ((i low (+ i 1))) +! ((>= i upper) base) +! (let ((c (ucs->char i))) +! (if c +! (%char-set-add-range! base c c) +! (if error? (%out-of-range i))))))))))) +! + (define (->char-set obj) + (cond ((list? obj) (list->char-set obj)) + ((string? obj) (string->char-set obj)) diff -urN wiliki-0.5/scheme-unicode/test/t-case-map.scm wiliki-0.5-case-insensitive/scheme-unicode/test/t-case-map.scm --- wiliki-0.5/scheme-unicode/test/t-case-map.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/test/t-case-map.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,47 @@ +#! /usr/bin/env gosh + +(use gauche.test) + +(test-start "case-map") + +(add-load-path "..") +(add-load-path "../lib") +(use srfi-13) +(use lang.case-map) + +(define-syntax let-list* + (syntax-rules () + ((_ (var ...) ls . body) (let-optionals* ls ((var #f) ...) . body)))) + +(for-each + (lambda (t) + (let-list* (base down title up locale) t + (test* (format "downcase ~S ~S" base locale) down + (if locale (downcase base locale) (downcase base))) + (test* (format "titlecase ~S ~S" base locale) title + (if locale (titlecase base locale) (titlecase base))) + (test* (format "upcase ~S ~S" base locale) up + (if locale (upcase base locale) (upcase base))) + )) + '(;; Latin + ("aBcI" "abci" "Abci" "ABCI") + ;; Cyrillic + ("яЗи" "язи" "Язи" "ЯЗИ") + ;; Greek, checking final sigma + ("πΣΜΣ" "πσμς" "Πσμς" "ΠΣΜΣ") + ;; wide Latin + ("aBc" "abc" "Abc" "ABC") + ;; Roman Numerals + ("ⅰⅢⅧⅹ" "ⅰⅲⅷⅹ" "Ⅰⅲⅷⅹ" "ⅠⅢⅧⅩ") + ;; using \u, my font doesn't have the uppercase versions :( + ("ⓐ\u24B7ⓒ" "ⓐⓑⓒ" "\u24B6ⓑⓒ" "\u24B6\u24B7\u24B8") + ;; German, with everyone's favorite es-zed + ("ßhöÜ" "ßhöü" "Sshöü" "SSHÖÜ") + ;; Turkish + ("iİıI" "iiıı" "İiıı" "İİII" "tr") + ("iİıI" "i\u0069\u0307ıi" "I\u0069\u0307ıi" "IİII") ;; ick, denormalized + ;;("" "" "" "") + )) + +(test-end) + diff -urN wiliki-0.5/scheme-unicode/tools/extract-case-1.scm wiliki-0.5-case-insensitive/scheme-unicode/tools/extract-case-1.scm --- wiliki-0.5/scheme-unicode/tools/extract-case-1.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/tools/extract-case-1.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,36 @@ +#! /usr/bin/env gosh + +(use gauche.parseopt) +(autoload binary.pack pack) + +(define (main args) + (let-args (cdr args) + ((pretty? "pretty|p") + (output "output|o=s") + . rest) + (define (run) + (do ((line (read-line) (read-line))) + ((eof-object? line)) + (let* ((fields + (map + (lambda (x) (if (equal? x "") #f x)) + (string-split (regexp-replace #/\s*\#.*$/ line "") #\;))) + (uc (list-ref fields 12 #f)) + (lc (list-ref fields 13 #f)) + (tc (list-ref fields 14 #f))) + (when (or uc lc tc) + (let* ((i (string->number (car fields) 16)) + (uci (string->number (or uc (car fields)) 16)) + (lci (string->number (or lc (car fields)) 16)) + (tci (string->number (or tc uc (car fields)) 16))) + (if pretty? + (format #t "~X (~A) ~X (~A) ~X (~A) ~X (~A)\n" + i (ucs->char i) uci (ucs->char uci) + lci (ucs->char lci) tci (ucs->char tci)) + (pack "L4" (list i uci lci tci)))))))) + (define (read-loop) + (if (pair? rest) + (for-each (cut with-input-from-file <> run) rest) + (run))) + (if output (with-output-to-file output read-loop) (read-loop)) + 0)) diff -urN wiliki-0.5/scheme-unicode/tools/extract-case-2.scm wiliki-0.5-case-insensitive/scheme-unicode/tools/extract-case-2.scm --- wiliki-0.5/scheme-unicode/tools/extract-case-2.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/tools/extract-case-2.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,46 @@ +#! /usr/bin/env gosh + +(use util.list) +(use gauche.parseopt) + +(define (main args) + (let-args (cdr args) + ((output "output|o=s") + . rest) + (define (make-entry c lc tc uc) + (define (conv x) + (if x + (let ((chars (map (lambda (s) (ucs->char (string->number s 16))) + (filter (lambda (s) (not (equal? s ""))) + (string-split x #/\s+/))))) + (if (pair? (cdr chars)) + (list->string chars) + (car chars))) + "")) + (vector (string->number c 16) (conv lc) (conv tc) (conv uc))) + (define (run) + (let loop ((line (read-line)) + (entries '())) + (cond + ((eof-object? line) + (write (list->vector (sort entries (lambda (a b) (< (vector-ref a 0) (vector-ref b 0))))))) + (else + (let* ((fields + (map + (lambda (x) (if (equal? x "") #f x)) + (string-split (regexp-replace #/\s*\#.*$/ line "") #\;))) + (c (list-ref fields 0 #f)) + (lc (list-ref fields 1 #f)) + (tc (list-ref fields 2 #f)) + (uc (list-ref fields 3 #f)) + (special (list-ref fields 4 #f))) + ;;(warn "c: ~S lc: ~S tc: ~S uc: ~S" c lc tc uc) + (if (and (or uc lc tc) (not special)) + (loop (read-line) (cons (make-entry c lc tc uc) entries)) + (loop (read-line) entries))))))) + (define (read-loop) + (if (pair? rest) + (for-each (cut with-input-from-file <> run) rest) + (run))) + (if output (with-output-to-file output read-loop) (read-loop)) + 0)) diff -urN wiliki-0.5/scheme-unicode/tools/extract-prop.scm wiliki-0.5-case-insensitive/scheme-unicode/tools/extract-prop.scm --- wiliki-0.5/scheme-unicode/tools/extract-prop.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/tools/extract-prop.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,172 @@ +#! /usr/bin/env gosh + +(use srfi-1) +(use srfi-2) +(use srfi-13) +(use srfi-14) +(use gauche.parseopt) + +(define (main args) + + (let-args (cdr args) + ((output "output|o=s") + (append-file "append|a=s") + (default "default|d=s") + (module "module|m=s") + (no-header? "no-header|n") + (derived "derive-from|derive|f=s") + (gauche? "gauche|g") + (include "include|i=s") + (exclude "exclude|x=s") + (autoload-from "autoload-from|A=s") + (export-all? "export-all|e") + . rest) + + (define tab (make-hash-table 'string=?)) + (define derivations (make-hash-table 'string=?)) + (define inheritance (make-hash-table 'string=?)) + (define current #f) + (define base #f) + (define (prop-name s) + (regexp-replace-all #/_/ (string-downcase s) "-")) + (define (keep? s) + (and (or (not include) (rxmatch include (x->string s))) + (or (not exclude) (not (rxmatch exclude (x->string s)))))) + + ;; return the module name and exported symbols from a file + (define (get-exports f) + (define (find-form sym) + (lambda (x) (and (pair? x) (eq? (car x) sym)))) + (define (defname x) + (let ((rest (cdr x))) + (if (pair? rest) + (let ((form (car rest))) + (if (pair? form) (car form) form)) + (begin (warn "invalid define: ~S" x) #f)))) + (call-with-input-file f + (lambda (p) + (and-let* ((code (port->sexp-list p)) + (def (find (find-form 'define-module) code)) + (modname (cadr def))) + (let ((exports + (if (or (any (find-form 'export-all) (cddr def)) + (any (find-form 'export-all) code)) + (map defname (append (filter (find-form 'define) (cddr def)) + (filter (find-form 'define) code))) + (append-map cdr (append (filter (find-form 'export) (cddr def)) + (filter (find-form 'export) code)))))) + (cons modname exports)))))) + + (define (run) + (do ((line (read-line) (read-line))) + ((eof-object? line)) + (rxmatch-case line + (#/^\s*#\s*derived\s*property\s*:?\s*(\w+)/i (#f prop) + (set! base #f) + (set! current (prop-name prop))) + ;; XXXX we assume the base class is the only one with greater + ;; than 2 characters (currently true) + (#/^\s*#\s*generated\s*from\s*(?:.*\+)?\s*(\w{3,})\s*(?:\+.*)?\s*$/i (#f prop) + (when current (hash-table-put! inheritance current (prop-name prop))) + (set! base (hash-table-get derivations (prop-name prop) #f))) + (else + (and-let* + ((fields + (map + (lambda (x) (if (equal? x "") #f x)) + (map + (cut string-trim-both <> char-set:whitespace) + (string-split + (regexp-replace #/\s*\#.*$/ line "") #\;)))) + (range-str (list-ref fields 0 #f)) + (range-ls (map (cut string->number <> 16) + (string-split range-str ".."))) + (range (list (car range-ls) (+ 1 (list-ref range-ls 1 (car range-ls))))) + (prop (list-ref fields 1 #f))) + (unless (and base + (char-set<= + (ucs-range->char-set (car range) (cadr range)) + base)) + (hash-table-push! tab (prop-name prop) range))))))) + + (define (read-loop) + ;; build table + (if (pair? rest) + (for-each (cut with-input-from-file <> run) rest) + (run)) + ;; header + (unless (or append-file no-header?) + (format #t ";; auto-generated on ~A\n\n" + (sys-strftime "%c" (sys-localtime (sys-time))))) + ;; Gauche module start + (let ((props (sort (filter keep? (hash-table-keys tab))))) + (when module + (format #t "(define-module ~A\n (use srfi-14)\n" module) + (let ((autoloads + (map get-exports + (if autoload-from + (filter (lambda (s) (not (string=? s ""))) + (string-split autoload-from #/,/)) + '())))) + (for-each + (lambda (a) + (format #t " (autoload ~S" (car a)) + (for-each (cut format #t " ~S" <>) (cdr a)) + (display ")\n")) + autoloads) + (cond + (export-all? + (display " (export-all")) + (else + (display " (export") + (for-each (cut format #t " char-set:~A" <>) props) + (for-each (cut format #t " ~A" <>) (append-map cdr autoloads)))) + (format #t "))\n(select-module ~A)\n\n" module) + (format #t "(provide ~S)\n\n" (regexp-replace-all #/\./ module "/")))) + ;; print char-sets + (for-each + (lambda (prop) + (format #t "(define char-set:~A\n (char-set-union\n" prop) + (and-let* ((base (hash-table-get inheritance prop #f))) + (format #t " char-set:~A\n" base)) + (for-each + (lambda (r) + (if (and gauche? (= (+ 1 (car r)) (cadr r))) + (format #t " (char-set (ucs->char #x~X))\n" (car r)) + (format #t " (ucs-range->char-set #x~X #x~X)\n" (car r) (cadr r)))) + (reverse (hash-table-get tab prop))) + (display " ))\n\n")) + props) + ;; print default char-set + (when default + (format #t "(define char-set:~A\n (char-set-complement\n (char-set-union\n" + default) + (for-each + (lambda (prop) (format #t " char-set:~A\n" prop)) + (sort (hash-table-keys tab))) + (display " )))\n\n")) + )) + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; build derived charsets + (when derived + (with-input-from-file derived run) + (hash-table-for-each + tab + (lambda (prop ls) + (hash-table-put! + derivations prop + (apply + char-set-union + (map + (lambda (r) (ucs-range->char-set (car r) (cadr r))) + ls))))) + (set! tab (make-hash-table 'string=?))) + + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; run with appropriate output + (cond (output (with-output-to-file output read-loop)) + (append-file (with-output-to-file append-file read-loop :if-exists :append)) + (else (read-loop))) + + 0)) diff -urN wiliki-0.5/scheme-unicode/tools/gen-ranges.scm wiliki-0.5-case-insensitive/scheme-unicode/tools/gen-ranges.scm --- wiliki-0.5/scheme-unicode/tools/gen-ranges.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/tools/gen-ranges.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,58 @@ +#! /usr/bin/env gosh-euc + +(use gauche.parseopt) + +;; make a balanced binary tree from a sorted list +(define (make-binary-tree ls) + (if (null? ls) + #f + (let loop ((hare ls) (tortoise ls) (res '())) + (if (or (null? hare) (null? (cdr hare))) + (list (car tortoise) + (make-binary-tree (reverse res)) + (make-binary-tree (cdr tortoise))) + (loop (cddr hare) (cdr tortoise) (cons (car tortoise) res)))))) + +(define (main args) + (define geta (char->integer (ucs->char 41646))) + (define ranges '()) + (let-args (cdr args) ((pretty? "p|pretty") + (inclusive? "i|inclusive|inclusive-only") + (exclusive? "e|exclusive|exclusive-only") + . rest) + (if (eq? (gauche-character-encoding) 'utf-8) + (errorf "~A: cannot be run in a utf-8 Gauche" (car args))) + (if (or inclusive? (not exclusive?)) + (let loop ((i 128) (e -2) (k 0)) + (when (< i #xFFFF) + (let* ((c (ucs->char i)) + (e2 (char->integer c))) + (cond + ((= 1 (- e2 e)) + (loop (+ i 1) e2 (+ k 1))) + (else + (when (> k 3) + (if pretty? + (format #t " u: ~4,'0X-~4,'0X => j: ~4,'0X-~4,'0X (~2D)\n" + (- i k 1) (- i 1) (- e k) e (+ k 1)) + (push! ranges (list (- i k 1) (- i 1) (- e k))))) + (loop (+ i 1) e2 0))))))) + (if (or exclusive? (not inclusive?)) + (let loop ((i 128) (k 0)) + (when (< i #xFFFF) + (let* ((c (ucs->char i)) + (e (char->integer c))) + (cond + ((= e geta) + (loop (+ i 1) (+ k 1))) + (else + (when (> k 9) + (if pretty? + (format #t " u: ~4,'0X-~4,'0X != j (~2D)\n" + (- i k 1) (- i 1) (+ k 1)) + (push! ranges (list (- i k 1) (- i 1))))) + (loop (+ i 1) 0))))))) + (unless pretty? + (write (make-binary-tree (sort ranges (lambda (a b) (< (car a) (car b)))))) + (newline)) + 0)) diff -urN wiliki-0.5/scheme-unicode/VERSION wiliki-0.5-case-insensitive/scheme-unicode/VERSION --- wiliki-0.5/scheme-unicode/VERSION 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/scheme-unicode/VERSION 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1 @@ +0.1 diff -urN wiliki-0.5/src/dbm/gdbm-ci.scm wiliki-0.5-case-insensitive/src/dbm/gdbm-ci.scm --- wiliki-0.5/src/dbm/gdbm-ci.scm 1970-01-01 01:00:00.000000000 +0100 +++ wiliki-0.5-case-insensitive/src/dbm/gdbm-ci.scm 2004-09-13 16:20:08.000000000 +0200 @@ -0,0 +1,64 @@ +;;; Copyright (c) 2004 by Jorgen Schaefer +;;; This code is in the public domain. +(define-module dbm.gdbm-ci + (extend dbm.gdbm) + (export <gdbm-ci>) + ;(use srfi-13) + (use lang.case-map) ;; use this lib for real case-insensitivity + ) +(select-module dbm.gdbm-ci) + +(define-class <gdbm-ci-meta> (<dbm-meta>) + ()) + +(define-class <gdbm-ci> (<dbm>) + ((gdbm :accessor gdbm-ci-gdbm + :init-keyword :gdbm + :init-form #f) + (sync :init-keyword :sync :initform #f) + (nolock :init-keyword :nolock :initform #f) + (bsize :init-keyword :bsize :initform 0)) + :metaclass <gdbm-ci-meta>) + +(define-method dbm-open ((self <gdbm-ci>)) + (next-method) + (let ((gdbm (make <gdbm>))) + (for-each (lambda (field) + (slot-set! gdbm + field + (slot-ref self field))) + '(path rw-mode sync nolock bsize file-mode)) + (slot-set! self 'gdbm gdbm) + (dbm-open gdbm)) + self) + +(define-method dbm-close ((self <gdbm-ci>)) + (next-method) + (dbm-close (gdbm-ci-gdbm self))) + +(define-method dbm-closed? ((self <gdbm-ci>)) + (next-method) + (dbm-closed? (gdbm-ci-gdbm self))) + +(define-method dbm-put! ((self <gdbm-ci>) key value) + (next-method) + (dbm-put! (gdbm-ci-gdbm self) (downcase key) value)) + +(define-method dbm-get ((self <gdbm-ci>) key . args) + (next-method) + (apply dbm-get (gdbm-ci-gdbm self) (downcase key) args)) + +(define-method dbm-exists? ((self <gdbm-ci>) key) + (next-method) + (dbm-exists? (gdbm-ci-gdbm self) (downcase key))) + +(define-method dbm-db-exists? ((class <gdbm-ci-meta>) name) + (file-exists? name)) + +(define-method dbm-delete! ((self <gdbm-ci>) key) + (next-method) + (dbm-delete! (gdbm-ci-gdbm self) (downcase key))) + +(define-method dbm-fold ((self <gdbm-ci>) proc knil) + (next-method) + (dbm-fold (gdbm-ci-gdbm self) proc knil)) diff -urN wiliki-0.5/src/Makefile wiliki-0.5-case-insensitive/src/Makefile --- wiliki-0.5/src/Makefile 2004-05-24 01:03:53.000000000 +0200 +++ wiliki-0.5-case-insensitive/src/Makefile 2004-09-13 16:20:08.000000000 +0200 @@ -17,7 +17,7 @@ wiliki/pasttime.scm \ wiliki/version.scm -TARGET = $(SCMFILES) wiliki/msgs.jp +TARGET = $(SCMFILES) wiliki/msgs.jp dbm/gdbm-ci.scm GENERATED = wiliki/msgs.jp wiliki/version.scm