local range = {}
range.kanji =
'一-鿿' .. -- CJK Unified Ideographs
'⺀-' .. -- CJK Radicals Supplement + Kangxi Radicals
'㐀-䶿' .. -- CJK Unified Ideographs Extension A
'豈-' .. -- CJK Compatibility Ideographs
'𠀀-' .. -- CJK Unified Ideographs Extension B-F + CJK Compatibility Ideographs Supplement
'𰀀-𲎯' -- CJK Unified Ideographs Extension G-H
range.kana_overlap =
'゙-゜' .. -- Hiragana
'ー' -- Katakana
local hiragana_exclusive =
'ぁ-ゖゝゞ' .. -- Hiragana
'𛀁𛀆𛄟' .. -- Kana Supplement + Kana Extended-A
'𛄲𛅐-𛅒' -- Small Kana Extension
range.hiragana = range.kana_overlap .. hiragana_exclusive
local katakana_exclusive =
'ァ-ヺヽヾ' .. -- Katakana
'ㇰ-ㇿ' .. -- Katakana Phonetic Extensions
'ヲ-゚' .. -- Halfwidth and Fullwidth Forms
'𚿰-𚿾' .. -- Kana Extended-B
'𛀀𛄠-𛄢' .. -- Kana Supplement + Kana Extended-A
'𛅕𛅤-𛅧' -- Small Kana Extension
range.katakana = range.kana_overlap .. katakana_exclusive
range.hentaigana =
'𛀑-𛄞' -- Kana Supplement + Kana Extended-A
range.kana = range.kana_overlap .. hiragana_exclusive .. katakana_exclusive .. range.hentaigana
range.ideograph =
'〃々-〇〱-〵〻〼' .. -- CJK Symbols and Punctuation
'㈠-㉟㊀-㋿' .. -- Enclosed CJK Letters and Months
'㍘-㏿' .. -- CJK Compatibility
'🈂-' -- Enclosed Ideographic Supplement
range.kana_graph =
'ゟヿ' .. -- Hiragana + Katakana
'㌀-㍗' .. -- CJK Compatibility
'🈀🈁' -- Enclosed Ideographic Supplement
range.punctuation =
' -。〈-】〔-〟〽' .. -- CJK Symbols and Punctuation
'゠・' .. -- Katakana
'!-/:-@[-`{-・¢-○' -- Halfwidth and Fullwidth Forms
range.latin = require("Module:scripts").getByCode("Latnx"):getCharacters()
range.numbers =
'0-9' .. -- Basic Latin
'0-9' -- Halfwidth and Fullwidth Forms
return range