(define-module util.char-set-ja (extend srfi-14) (export-all)) (select-module util.char-set-ja) ;; 母音 (define char-set:hiragana-vowel #[あいうえおぁぃぅぇぉ]) (define char-set:katakana-vowel #[アイウエオァィゥェォ]) (define char-set:hankaku-vowel #[アイウエオァィゥェォ]) ;; 清子音 (define char-set:hiragana-voiceless-consonant #[かきくけこさしすせそたちっつてとなにぬねのはひふへほまみむめもゃやゅゆょよらりるれろゎわゐゑをん]) (define char-set:katakana-voiceless-consonant #[カキクケコサシスセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロヮワヰヱヲンヵヶaヴ]) (define char-set:hankaku-consonant #[カキクケコサシスセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロワヲン]) ;; 濁り子音 (define char-set:hiragana-voiced-consonant #[がぎぐげござじずぜぞだぢづでどばぱびぴぶぷべぺぼぽ]) (define char-set:katakana-voiced-consonant #[ガギグゲゴザジズゼゾダヂヅデドバパビピブプベペボポ]) ;; 子音 (define char-set:hiragana-consonant (char-set-union char-set:hiragana-voiceless-consonant char-set:hiragana-voiced-consonant)) (define char-set:katakana-consonant (char-set-union char-set:katakana-voiceless-consonant char-set:katakana-voiced-consonant)) (define char-set:hiragana (char-set-union char-set:hiragana-vowel char-set:hiragana-consonant)) (define char-set:katakana (char-set-union char-set:katakana-vowel char-set:katakana-consonant)) (define char-set:hankaku (char-set-union char-set:hankaku-vowel char-set:hankaku-consonant #[゙゚])) (define char-set:kana (char-set-union char-set:hiragana char-set:katakana char-set:hankaku)) (define char-set:kanji char-set:empty) ; (char-set-union (ucs-range->char-set #xF900 #xFA6A) ;; Compatibility Ideographs ; (ucs-range->char-set #x3400 #x4D85) ;; Ideographs Area ; (ucs-range->char-set #x4E00 #x9FA5))) ;; Unified Ideographs (define char-set:japanese-whitespace #[ ]) ;; zenkaku space (define char-set:japanese-punctuation #[、。「」ー〜…・]) (define char-set:japanese-symbol #[¥£¢ ̄“‘【】‥♀◎♂゜゛∞℃ゞ〈仝ヾ§〉『\』´°〇ゝ〃‐″′〒《ヽ〆※》〔‖〕¨]) (define char-set:closed-shape #[●▼▲■◆★]) (define char-set:open-shape #[○▽△□◇☆]) (define char-set:shape (char-set-union char-set:closed-shape char-set:open-shape)) (define char-set:math-symbol #[+―×÷±〓=<≦≠≧>∴]) (define char-set:arrow #[←↓↑→]) (define char-set:zenkaku-digit #[0123456789]) (define char-set:zenkaku-lower-case #[abcdefghijklmnopqrstuvwxyz]) (define char-set:zenkaku-upper-case #[ABCDEFGHIJKLMNOPQRSTUVWXYZ]) (define char-set:zenkaku-letter (char-set-union char-set:zenkaku-lower-case char-set:zenkaku-upper-case)) (define char-set:zenkaku-symbol #[!?`”’#$%&()*/:;@^_{|}]) (define char-set:zenkaku (char-set-union char-set:zenkaku-letter char-set:zenkaku-digit char-set:zenkaku-symbol)) (define char-set:japanese-word (char-set-union char-set:kana char-set:kanji #[々])) (define char-set:japanese (char-set-union char-set:japanese-word char-set:japanese-whitespace char-set:japanese-punctuation char-set:japanese-symbol char-set:zenkaku)) ;; override srfi-14 names? (define char-set:all-whitespace (char-set-union char-set:whitespace char-set:japanese-whitespace)) (define char-set:all-punctuation (char-set-union char-set:punctuation char-set:japanese-punctuation)) (define char-set:all-digit (char-set-union char-set:letter char-set:zenkaku-letter)) (define char-set:all-letter (char-set-union char-set:digit char-set:zenkaku-digit)) (define char-set:all-symbol (char-set-union char-set:symbol char-set:zenkaku-symbol char-set:japanese-symbol char-set:shape char-set:math-symbol char-set:arrow)) (provide "util/char-set-ja")