foreign-c-libraries/.tmp/system/chibi/.akku/lib/srfi/%3a129/titlemaps.scm

117 lines
7.2 KiB
Scheme

;;;; Alists for titlecase functions
;;; Assumes that char->integer and integer->char are a subset of Unicode
;;; codepoint mappings rather than some random codes, as R5RS allows
;;; but R[67]RS do not. It may be necessary to remove some lines if
;;; the codepoints referred to don't correspond to characters present
;;; in the implementation.
;;; These maps are valid from Unicode 5.0 to at least Unicode 8.0
;;; and are expected to be stable for the foreseeable future.
;; Alist mapping titlecase characters to themselves
(define titlecase-chars '(
(#x01C5 #x01C5) ; LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
(#x01C8 #x01C8) ; LATIN CAPITAL LETTER L WITH SMALL LETTER J
(#x01CB #x01CB) ; LATIN CAPITAL LETTER N WITH SMALL LETTER J
(#x01F2 #x01F2) ; LATIN CAPITAL LETTER D WITH SMALL LETTER Z
(#x1F88 #x1F88) ; GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
(#x1F89 #x1F89) ; GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
(#x1F8A #x1F8A) ; GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
(#x1F8B #x1F8B) ; GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
(#x1F8C #x1F8C) ; GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
(#x1F8D #x1F8D) ; GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
(#x1F8E #x1F8E) ; GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
(#x1F8F #x1F8F) ; GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
(#x1F98 #x1F98) ; GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
(#x1F99 #x1F99) ; GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
(#x1F9A #x1F9A) ; GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
(#x1F9B #x1F9B) ; GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
(#x1F9C #x1F9C) ; GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
(#x1F9D #x1F9D) ; GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
(#x1F9E #x1F9E) ; GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
(#x1F9F #x1F9F) ; GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
(#x1FA8 #x1FA8) ; GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
(#x1FA9 #x1FA9) ; GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
(#x1FAA #x1FAA) ; GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
(#x1FAB #x1FAB) ; GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
(#x1FAC #x1FAC) ; GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
(#x1FAD #x1FAD) ; GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
(#x1FAE #x1FAE) ; GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
(#x1FAF #x1FAF) ; GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
(#x1FBC #x1FBC) ; GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
(#x1FCC #x1FCC) ; GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
(#x1FFC #x1FFC) ; GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
))
;; Alist mapping characters to their single-letter titlecase equivalents
;; when those are distinct from their uppercase equivalents
(define title-single-map (append titlecase-chars '(
(#x01C4 #x01C5) ; LATIN CAPITAL LETTER DZ WITH CARON
(#x01C6 #x01C5) ; LATIN SMALL LETTER DZ WITH CARON
(#x01C7 #x01C8) ; LATIN CAPITAL LETTER LJ
(#x01C9 #x01C8) ; LATIN SMALL LETTER LJ
(#x01CA #x01CB) ; LATIN CAPITAL LETTER NJ
(#x01CC #x01CB) ; LATIN SMALL LETTER NJ
(#x01F1 #x01F2) ; LATIN CAPITAL LETTER DZ
(#x01F3 #x01F2) ; LATIN SMALL LETTER DZ
)))
;; Alist mapping characters to their multiple-letter titlecase equivalents
(define title-multiple-map (append title-single-map '(
(#x00DF #x0053 #x0073) ; LATIN SMALL LETTER SHARP S
(#xFB00 #x0046 #x0066) ; LATIN SMALL LIGATURE FF
(#xFB01 #x0046 #x0069) ; LATIN SMALL LIGATURE FI
(#xFB02 #x0046 #x006C) ; LATIN SMALL LIGATURE FL
(#xFB03 #x0046 #x0066 #x0069) ; LATIN SMALL LIGATURE FFI
(#xFB04 #x0046 #x0066 #x006C) ; LATIN SMALL LIGATURE FFL
(#xFB05 #x0053 #x0074) ; LATIN SMALL LIGATURE LONG S T
(#xFB06 #x0053 #x0074) ; LATIN SMALL LIGATURE ST
(#x0587 #x0535 #x0582) ; ARMENIAN SMALL LIGATURE ECH YIWN
(#xFB13 #x0544 #x0576) ; ARMENIAN SMALL LIGATURE MEN NOW
(#xFB14 #x0544 #x0565) ; ARMENIAN SMALL LIGATURE MEN ECH
(#xFB15 #x0544 #x056B) ; ARMENIAN SMALL LIGATURE MEN INI
(#xFB16 #x054E #x0576) ; ARMENIAN SMALL LIGATURE VEW NOW
(#xFB17 #x0544 #x056D) ; ARMENIAN SMALL LIGATURE MEN XEH
(#x0149 #x02BC #x004E) ; LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
(#x0390 #x0399 #x0308 #x0301) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
(#x03B0 #x03A5 #x0308 #x0301) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
(#x01F0 #x004A #x030C) ; LATIN SMALL LETTER J WITH CARON
(#x1E96 #x0048 #x0331) ; LATIN SMALL LETTER H WITH LINE BELOW
(#x1E97 #x0054 #x0308) ; LATIN SMALL LETTER T WITH DIAERESIS
(#x1E98 #x0057 #x030A) ; LATIN SMALL LETTER W WITH RING ABOVE
(#x1E99 #x0059 #x030A) ; LATIN SMALL LETTER Y WITH RING ABOVE
(#x1E9A #x0041 #x02BE) ; LATIN SMALL LETTER A WITH RIGHT HALF RING
(#x1F50 #x03A5 #x0313) ; GREEK SMALL LETTER UPSILON WITH PSILI
(#x1F52 #x03A5 #x0313 #x0300) ; GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
(#x1F54 #x03A5 #x0313 #x0301) ; GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
(#x1F56 #x03A5 #x0313 #x0342) ; GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
(#x1FB6 #x0391 #x0342) ; GREEK SMALL LETTER ALPHA WITH PERISPOMENI
(#x1FC6 #x0397 #x0342) ; GREEK SMALL LETTER ETA WITH PERISPOMENI
(#x1FD2 #x0399 #x0308 #x0300) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
(#x1FD3 #x0399 #x0308 #x0301) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
(#x1FD6 #x0399 #x0342) ; GREEK SMALL LETTER IOTA WITH PERISPOMENI
(#x1FD7 #x0399 #x0308 #x0342) ; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
(#x1FE2 #x03A5 #x0308 #x0300) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
(#x1FE3 #x03A5 #x0308 #x0301) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
(#x1FE4 #x03A1 #x0313) ; GREEK SMALL LETTER RHO WITH PSILI
(#x1FE6 #x03A5 #x0342) ; GREEK SMALL LETTER UPSILON WITH PERISPOMENI
(#x1FE7 #x03A5 #x0308 #x0342) ; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
(#x1FF6 #x03A9 #x0342) ; GREEK SMALL LETTER OMEGA WITH PERISPOMENI
(#x1FB2 #x1FBA #x0345) ; GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
(#x1FB4 #x0386 #x0345) ; GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
(#x1FC2 #x1FCA #x0345) ; GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
(#x1FC4 #x0389 #x0345) ; GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
(#x1FF2 #x1FFA #x0345) ; GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
(#x1FF4 #x038F #x0345) ; GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
(#x1FB7 #x0391 #x0342 #x0345) ; GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
(#x1FC7 #x0397 #x0342 #x0345) ; GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
(#x1FF7 #x03A9 #x0342 #x0345) ; GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
)))
;; Alist mapping characters to their multiple-character lowercase equivalents
(define lower-multiple-map '(
(#x0130 #x0069 #x0307) ; LATIN CAPITAL LETTER I WITH DOT ABOVE
))