diff options
Diffstat (limited to 'tex/context/base/char-ini.lua')
-rw-r--r-- | tex/context/base/char-ini.lua | 186 |
1 files changed, 2 insertions, 184 deletions
diff --git a/tex/context/base/char-ini.lua b/tex/context/base/char-ini.lua index 0f26d8f5b..6b6900ecd 100644 --- a/tex/context/base/char-ini.lua +++ b/tex/context/base/char-ini.lua @@ -92,190 +92,8 @@ local private = { description = "PRIVATE SLOT", } --- Hangul Syllable - ---~ local hangul_syllable_metatable = { ---~ __index = { ---~ category = "lo", ---~ cjkwd = "w", ---~ description = "<Hangul Syllable>", ---~ direction = "l", ---~ linebreak = "h2", ---~ } ---~ } - ---~ local hangul_syllable_extender = function(k,v) ---~ local fscode = -- firstsplitcode ---~ k < 0xAC00 and k -- original ---~ or k > 0xD7AF and k -- original ---~ or k >= 0xD558 and 0x314E -- 하 => ㅎ ---~ or k >= 0xD30C and 0x314D -- 파 => ㅍ ---~ or k >= 0xD0C0 and 0x314C -- 타 => ㅌ ---~ or k >= 0xCE74 and 0x314B -- 카 => ㅋ ---~ or k >= 0xCC28 and 0x314A -- 차 => ㅊ ---~ or k >= 0xC790 and 0x3148 -- 자 => ㅈ ---~ or k >= 0xC544 and 0x3147 -- 아 => ㅇ ---~ or k >= 0xC0AC and 0x3145 -- 사 => ㅅ ---~ or k >= 0xBC14 and 0x3142 -- 바 => ㅂ ---~ or k >= 0xB9C8 and 0x3141 -- 마 => ㅁ ---~ or k >= 0xB77C and 0x3139 -- 라 => ㄹ ---~ or k >= 0xB2E4 and 0x3137 -- 다 => ㄷ ---~ or k >= 0xB098 and 0x3134 -- 나 => ㄴ ---~ or k >= 0xAC00 and 0x3131 -- 가 => ㄱ -- was 0xAC20 ---~ or k -- can't happen ---~ local t = { ---~ fscode = fscode, ---~ unicodeslot = k, ---~ } ---~ setmetatable(t,hangul_syllable_metatable) ---~ return t ---~ end - -local hangul_syllable_basetable = { - category = "lo", - cjkwd = "w", - description = "<Hangul Syllable>", - direction = "l", - linebreak = "h2", -} - -local hangul_syllable_metatable = { - __index = function(t,k) - if k == "fscode" then - local u = t.unicodeslot - local fscode = -- firstsplitcode - u < 0xAC00 and nil -- original - or u > 0xD7AF and nil -- original - or u >= 0xD558 and 0x314E -- 하 => ㅎ - or u >= 0xD30C and 0x314D -- 파 => ㅍ - or u >= 0xD0C0 and 0x314C -- 타 => ㅌ - or u >= 0xCE74 and 0x314B -- 카 => ㅋ - or u >= 0xCC28 and 0x314A -- 차 => ㅊ - or u >= 0xC790 and 0x3148 -- 자 => ㅈ - or u >= 0xC544 and 0x3147 -- 아 => ㅇ - or u >= 0xC0AC and 0x3145 -- 사 => ㅅ - or u >= 0xBC14 and 0x3142 -- 바 => ㅂ - or u >= 0xB9C8 and 0x3141 -- 마 => ㅁ - or u >= 0xB77C and 0x3139 -- 라 => ㄹ - or u >= 0xB2E4 and 0x3137 -- 다 => ㄷ - or u >= 0xB098 and 0x3134 -- 나 => ㄴ - or u >= 0xAC00 and 0x3131 -- 가 => ㄱ -- was 0xAC20 - or nil -- can't happen - t[k] = fscode - return fscode - else - return hangul_syllable_basetable[k]-- no store - end - end -} - -local hangul_syllable_extender = function(k,v) - local t = { - unicodeslot = k, - } - setmetatable(t,hangul_syllable_metatable) - return t -end - -local hangul_syllable_range = { - first = 0xAC00, - last = 0xD7A3, - extender = hangul_syllable_extender, -} - -setmetatable(hangul_syllable_range, hangul_syllable_metatable) - --- CJK Ideograph - -local cjk_ideograph_metatable = { - __index = { - category = "lo", - cjkwd = "w", - description = "<CJK Ideograph>", - direction = "l", - linebreak = "id", - } -} - -local cjk_ideograph_extender = function(k,v) - local t = { - -- shcode = shcode, - unicodeslot = k, - } - setmetatable(t,cjk_ideograph_metatable) - return t -end - -local cjk_ideograph_range = { - first = 0x4E00, - last = 0x9FBB, - extender = cjk_ideograph_extender, -} - --- CJK Ideograph Extension A - -local cjk_ideograph_extension_a_metatable = { - __index = { - category = "lo", - cjkwd = "w", - description = "<CJK Ideograph Extension A>", - direction = "l", - linebreak = "id", - } -} - -local cjk_ideograph_extension_a_extender = function(k,v) - local t = { - -- shcode = shcode, - unicodeslot = k, - } - setmetatable(t,cjk_ideograph_extension_a_metatable) - return t -end - -local cjk_ideograph_extension_a_range = { - first = 0x3400, - last = 0x4DB5, - extender = cjk_ideograph_extension_a_extender, -} - --- CJK Ideograph Extension B - -local cjk_ideograph_extension_b_metatable = { - __index = { - category = "lo", - cjkwd = "w", - description = "<CJK Ideograph Extension B>", - direction = "l", - linebreak = "id", - } -} - -local cjk_ideograph_extension_b_extender = function(k,v) - local t = { - -- shcode = shcode, - unicodeslot = k, - } - setmetatable(t,cjk_ideograph_extension_b_metatable) - return t -end - -local cjk_ideograph_extension_b_range = { - first = 0x20000, - last = 0x2A6D6, - extender = cjk_ideograph_extension_b_extender, -} - --- Ranges - -local ranges = { - hangul_syllable_range, - cjk_ideograph_range, - cjk_ideograph_extension_a_range, - cjk_ideograph_extension_b_range, -} - --- +local ranges = allocate() +characters.ranges = ranges setmetatablekey(data, "__index", function(t,k) if type(k) == "string" then |