scuffed-code/icu4c/data/ljamo.txt
2000-05-20 04:40:29 +00:00

748 lines
30 KiB
Plaintext

//--------------------------------------------------------------------
// Copyright (c) 1999-2000, International Business Machines
// Corporation and others. All Rights Reserved.
//--------------------------------------------------------------------
// THIS IS A MACHINE-GENERATED FILE
// Tool: src\com\ibm\tools\translit\dumpICUrules.bat
// Source: src\com\ibm\text\resources/TransliterationRule_Latin_Jamo.java
// Date: Fri May 19 15:50:22 2000
//--------------------------------------------------------------------
// Latin-Jamo
ljamo {
Rule {
// VARIABLES
"$initial=[\u1100-\u115F];"
"$INITIAL=[bcdghjklmnpst];"
"$medial=[\u1160-\u11A7];"
"$MEDIAL=[aeiou];" // as a left context
"$comp_med=[\u1160\u1176-\u11A7];" // compound medials and filler
"$final=[\u11A8-\u11F9];" // added - aliu
"$vowel=[aeiouwy$medial];"
// following line used to read "..$medial$final]"
// assume this was a typo - liu
"$consonant=[bcdfghjklmnpqrstvxz$initial$final];"
"$ye_=[yeYE];"
"$ywe_=[yweYWE];"
"$yw_=[ywYW];"
"$nl_=[nlNL];"
"$gnl_=[gnlGNL];"
"$lsgb_=[lsgbLSGB];"
"$ywao_=[ywaoYWAO];"
"$bl_=[blBL];"
"$ieung = \u110b;"
// RULES
// Hangul structure is IMF or IM
// So you can have, because of adjacent sequences
// IM, but not II or IF
// MF or MI, but not MM
// FI, but not FF or FM
// For English, we just have C or V.
// To generate valid Hangul:
// Vowels:
// We insert IEUNG between VV, and otherwise map V to M
// We also insert IEUNG if there is no
// Consonants:
// We don't break doubles
// Cases like lmgg, we have to break at lm
// So to guess whether a consonant is I or F
// we map all C's to F, except when followed by a vowel, e.g.
// X[{vowel}>CHOSEONG (initial)
// X>JONGSEONG (final)
// Below, insert an empty consonant in front of a vowel, if there is no Initial in front.
// General strategy.
//
// 1. We support both the normal Jamo block, 1100 - 117F, and the
// compatibility block, 3130 - 318F. The former uses lowercase latin;
// the latter uses uppercase. See notes below for details of the
// compatibility block. Remaining items in this list pertain to the
// normal Jamo block.
//
// 2. Canonical syllables should transliterate without special
// characters. Canonical syllables are either IMF or IM.
//
// 3. We want to support round-trip integrity from jamo to latin and back
// to Jamo. To do this we have to mark the jamo with special characters
// when they occur in non-canonical positions.
//
// 4. When initial jamo occur in a non-canonical position, they are
// marked with a leading '['.
//
// 5. When final jamo occur in a non-canonical position, they are marked
// with a trailing ']'.
//
// 6. When medial jamo occur in a non-canonical position, they are marked
// with a leading '~'.
//
// 7. Compound jamo characters are handled by enclosing them in
// parentheses. Initials are '((x)', medials are '(x)', and finals are
// '(x))'.
//
// 8. Disambiguation of 'g' + 'g' vs. 'gg' is accomplished by inserting a
// '' character between them.
//
// 9. IEUNG is used to mark medials not occuring after initials.
// Isolated IEUNG is transliterated as a back tick.
//
// 10. Some old special case and completeness rules have been commented
// out. These can be reintroduced (and the existing rules modified as
// needed) so long as round-trip integrity is maintained.
// We use the uppercase latin letters for the compatibility Jamo
// U+3130 - U+318F. The following rules are generated
// programmatically by a perl script that analyzes the Unicode
// database. These rules are much simpler because there are no
// separate code points for initial vs. final consonants, so no
// contextual rules are needed. The one wrinkle is, as usual, the
// need to distinguish doubles from two singles, that is, GG vs G G.
// The perl script finds these special cases by exhaustive search and
// adds only the minimal rules needed to resolve these cases. The one
// modification that is made by hand is to replace '' with '/' so as
// not to conflict with the normal IEUNG in the standard Jamo range. -
// liu
"A '' <> {\u314F} [\u3153\u3161\u3154];"
"B '' <> {\u3142} [\u3142\u3143];"
"D '' <> {\u3137} [\u3137\u3138];"
"E '' <> {\u3154} [\u315A\u3157\u315C];"
"G '' <> {\u3131} [\u3132\u3133\u3131\u3146\u3145];"
"J '' <> {\u3148} [\u3149\u3148];"
"L '' <> {\u3139} [\u3132\u3133\u3131\u3141\u3142\u3143\u3146\u3145\u314C\u314D];"
"N '' <> {\u3134} [\u3149\u3148\u314E];"
"O '' <> {\u3157} [\u3153\u3161\u3154];"
"S '' <> {\u3145} [\u3146\u3145];"
"WA '' <> {\u3158} [\u3153\u3161\u3154];"
"WE '' <> {\u315E} [\u315A\u3157];"
"YA '' <> {\u3151} [\u3153\u3161\u3154];"
"YE '' <> {\u3156} [\u315A\u3157];"
"YU <> \u3160;"
"YO <> \u315B;"
"YI <> \u3162;"
"YEO <> \u3155;"
"YE <> \u3156;"
"YAE <> \u3152;"
"YA <> \u3151;"
"WI <> \u315F;"
"WEO <> \u315D;"
"WE <> \u315E;"
"WAE <> \u3159;"
"WA <> \u3158;"
"U <> \u315C;"
"T <> \u314C;"
"S S <> \u3146;"
"S <> \u3145;"
"P <> \u314D;"
"OE <> \u315A;"
"O <> \u3157;"
"N J <> \u3135;"
"N H <> \u3136;"
"N <> \u3134;"
"M <> \u3141;"
"L T <> \u313E;"
"L S <> \u313D;"
"L P <> \u313F;"
"L M <> \u313B;"
"L G <> \u313A;"
"L B <> \u313C;"
"L <> \u3139;"
"K <> \u314B;"
"J J <> \u3149;"
"J <> \u3148;"
"I <> \u3163;"
"H <> \u314E;"
"G S <> \u3133;"
"G G <> \u3132;"
"G <> \u3131;"
"EU <> \u3161;"
"EO <> \u3153;"
"E <> \u3154;"
"D D <> \u3138;"
"D <> \u3137;"
"C <> \u314A;"
"B B <> \u3143;"
"B <> \u3142;"
"AE <> \u3150;"
"A <> \u314F;"
"'/' <> \u3147;"
"'(' YU YEO ')' <> \u318A;"
"'(' YU YE ')' <> \u318B;"
"'(' YU I ')' <> \u318C;"
"'(' YR ')' <> \u3186;"
"'(' YO YAE ')' <> \u3188;"
"'(' YO YA ')' <> \u3187;"
"'(' YO I ')' <> \u3189;"
"'(' YES S ')' <> \u3182;"
"'(' YES PAN ')' <> \u3183;"
"'(' YES ')' <> \u3181;"
"'(' S N ')' <> \u317B;"
"'(' S J ')' <> \u317E;"
"'(' S G ')' <> \u317A;"
"'(' S D ')' <> \u317C;"
"'(' S B ')' <> \u317D;"
"'(' PAN ')' <> \u317F;"
"'(' P '' ')' <> \u3184;"
"'(' N S ')' <> \u3167;"
"'(' N PAN ')' <> \u3168;"
"'(' N N ')' <> \u3165;"
"'(' N D ')' <> \u3166;"
"'(' M S ')' <> \u316F;"
"'(' M PAN ')' <> \u3170;"
"'(' M B ')' <> \u316E;"
"'(' M '' ')' <> \u3171;"
"'(' L YR ')' <> \u316D;"
"'(' L PAN ')' <> \u316C;"
"'(' L H ')' <> \u3140;"
"'(' L G S ')' <> \u3169;"
"'(' L D ')' <> \u316A;"
"'(' L B S ')' <> \u316B;"
"'(' HJF ')' <> \u3164;"
"'(' H H ')' <> \u3185;"
"'(' B T ')' <> \u3177;"
"'(' B S G ')' <> \u3174;"
"'(' B S D ')' <> \u3175;"
"'(' B S ')' <> \u3144;"
"'(' B J ')' <> \u3176;"
"'(' B G ')' <> \u3172;"
"'(' B D ')' <> \u3173;"
"'(' B B '' ')' <> \u3179;"
"'(' B '' ')' <> \u3178;"
"'(' AR I ')' <> \u318E;"
"'(' AR ')' <> \u318D;"
"'(' '' '' ')' <> \u3180;"
// APOSTROPHE
// As always, an apostrophe is used to separate digraphs into
// singles. That is, if you really wanted [KAN][GGAN], instead
// of [KANG][GAN] you would write "kan'ggan".
// Rules for inserting ' when mapping separated digraphs back
// from Hangul to Latin. Catch every letter that can be the
// LAST of a digraph (or multigraph) AND first of an initial
// special insertion for funny sequences of vowels, and for empty consonant
// + "'' < l{ }\u11c0;" // hangul jongseong thieuth
// + "'' < $lsgb_{}\u11ba;" // hangul jongseong sios
// + "'' < l{ }\u11c1;" // hangul jongseong phieuph
// + "'' < l{ }\u11b7;" // hangul jongseong mieum
// + "'' < n{ }\u11bd;" // hangul jongseong cieuc
// + "'' < $nl_{}\u11c2;" // hangul jongseong hieuh
// + "'' < $gnl_{}\u11a9;" // hangul jongseong ssangkiyeok
// + "'' < $bl_{}\u11b8;" // hangul jongseong pieup
// + "'' < d{ }\u11ae;" // hangul jongseong tikeut
//
// + "'' < $ye_{}\u116e;" // hangul jungseong u
// + "'' < $ywe_{}\u1169;" // hangul jungseong o
// + "'' < $yw_{}\u1175;" // hangul jungseong i
// + "'' < $ywao_{}\u1166;" // hangul jungseong e
// + "'' < $yw_{}\u1161;" // hangul jungseong a
//
// + "'' < l{ }\u1110;" // hangul choseong thieuth
// + "'' < $lsgb_{}\u110a;" // hangul choseong ssangsios
// + "'' < $lsgb_{}\u1109;" // hangul choseong sios
// + "'' < l{ }\u1111;" // hangul choseong phieuph
// + "'' < l{ }\u1106;" // hangul choseong mieum
// + "'' < n{ }\u110c;" // hangul choseong cieuc
// + "'' < n{ }\u110d;"
// + "'' < $nl_{}\u1112;" // hangul choseong hieuh
// + "'' < $gnl_{}\u1101;" // hangul choseong ssangkiyeok
// + "'' < $gnl_{}\u1100;" // hangul choseong kiyeok
// + "'' < d{ }\u1103;" // hangul choseong tikeut
// + "'' < d{ }\u1104;"
// + "'' < $bl_{}\u1107;" // hangul choseong pieup
// + "'' < $bl_{}\u1108;"
// We transliterate the compound Jamo code points using ((x) for
// initials, (x) for medials, and (x)) for finals. - liu
" '((' n g ')' <> \u1113;"
" '((' n n ')' <> \u1114;"
" '((' n d ')' <> \u1115;"
" '((' n b ')' <> \u1116;"
" '((' d g ')' <> \u1117;"
" '((' l n ')' <> \u1118;"
" '((' l l ')' <> \u1119;"
" '((' l h ')' <> \u111A;"
" '((' l '' ')' <> \u111B;"
" '((' m b ')' <> \u111C;"
" '((' m '' ')' <> \u111D;"
" '((' b g ')' <> \u111E;"
" '((' b n ')' <> \u111F;"
" '((' b d ')' <> \u1120;"
" '((' b s ')' <> \u1121;"
" '((' b s g ')' <> \u1122;"
" '((' b s d ')' <> \u1123;"
" '((' b s b ')' <> \u1124;"
" '((' b s s ')' <> \u1125;"
" '((' b s j ')' <> \u1126;"
" '((' b j ')' <> \u1127;"
" '((' b c ')' <> \u1128;"
" '((' b t ')' <> \u1129;"
" '((' b p ')' <> \u112A;"
" '((' b '' ')' <> \u112B;"
" '((' b b '' ')' <> \u112C;"
" '((' s g ')' <> \u112D;"
" '((' s n ')' <> \u112E;"
" '((' s d ')' <> \u112F;"
" '((' s l ')' <> \u1130;"
" '((' s m ')' <> \u1131;"
" '((' s b ')' <> \u1132;"
" '((' s b g ')' <> \u1133;"
" '((' s s s ')' <> \u1134;"
" '((' s '' ')' <> \u1135;"
" '((' s j ')' <> \u1136;"
" '((' s c ')' <> \u1137;"
" '((' s k ')' <> \u1138;"
" '((' s t ')' <> \u1139;"
" '((' s p ')' <> \u113A;"
" '((' s h ')' <> \u113B;"
" '((' chs ')' <> \u113C;"
" '((' chs chs ')' <> \u113D;"
" '((' ces ')' <> \u113E;"
" '((' ces ces ')' <> \u113F;"
" '((' pan ')' <> \u1140;"
" '((' '' g ')' <> \u1141;"
" '((' '' d ')' <> \u1142;"
" '((' '' m ')' <> \u1143;"
" '((' '' b ')' <> \u1144;"
" '((' '' s ')' <> \u1145;"
" '((' '' pan ')' <> \u1146;"
" '((' '' '' ')' <> \u1147;"
" '((' '' j ')' <> \u1148;"
" '((' '' c ')' <> \u1149;"
" '((' '' t ')' <> \u114A;"
" '((' '' p ')' <> \u114B;"
" '((' yes ')' <> \u114C;"
" '((' j '' ')' <> \u114D;"
" '((' chc ')' <> \u114E;"
" '((' chc chc ')' <> \u114F;"
" '((' cec ')' <> \u1150;"
" '((' cec cec ')' <> \u1151;"
" '((' c k ')' <> \u1152;"
" '((' c h ')' <> \u1153;"
" '((' cch ')' <> \u1154;"
" '((' ceh ')' <> \u1155;"
" '((' p b ')' <> \u1156;"
" '((' p '' ')' <> \u1157;"
" '((' h h ')' <> \u1158;"
" '((' yr ')' <> \u1159;"
" '((' hcf ')' <> \u115F;"
" '(' ahjf ')' <> \u1160;" // must start with vowel, hence 'a' + hjf
" '(' a o ')' <> \u1176;"
" '(' a u ')' <> \u1177;"
" '(' ya o ')' <> \u1178;"
" '(' ya yo ')' <> \u1179;"
" '(' eo o ')' <> \u117A;"
" '(' eo u ')' <> \u117B;"
" '(' eo eu ')' <> \u117C;"
" '(' yeo o ')' <> \u117D;"
" '(' yeo u ')' <> \u117E;"
" '(' o eo ')' <> \u117F;"
" '(' o e ')' <> \u1180;"
" '(' o ye ')' <> \u1181;"
" '(' o o ')' <> \u1182;"
" '(' o u ')' <> \u1183;"
" '(' yo ya ')' <> \u1184;"
" '(' yo yae ')' <> \u1185;"
" '(' yo yeo ')' <> \u1186;"
" '(' yo o ')' <> \u1187;"
" '(' yo i ')' <> \u1188;"
" '(' u a ')' <> \u1189;"
" '(' u ae ')' <> \u118A;"
" '(' u eo eu ')' <> \u118B;"
" '(' u ye ')' <> \u118C;"
" '(' u u ')' <> \u118D;"
" '(' yu a ')' <> \u118E;"
" '(' yu eo ')' <> \u118F;"
" '(' yu e ')' <> \u1190;"
" '(' yu yeo ')' <> \u1191;"
" '(' yu ye ')' <> \u1192;"
" '(' yu u ')' <> \u1193;"
" '(' yu i ')' <> \u1194;"
" '(' eu u ')' <> \u1195;"
" '(' eu eu ')' <> \u1196;"
" '(' yi u ')' <> \u1197;"
" '(' i a ')' <> \u1198;"
" '(' i ya ')' <> \u1199;"
" '(' i o ')' <> \u119A;"
" '(' i u ')' <> \u119B;"
" '(' i eu ')' <> \u119C;"
" '(' i ar ')' <> \u119D;"
" '(' ar ')' <> \u119E;"
" '(' ar eo ')' <> \u119F;"
" '(' ar u ')' <> \u11A0;"
" '(' ar i ')' <> \u11A1;"
" '(' ar ar ')' <> \u11A2;"
" '(' g l '))' <> \u11C3;"
" '(' g s g '))' <> \u11C4;"
" '(' n g '))' <> \u11C5;"
" '(' n d '))' <> \u11C6;"
" '(' n s '))' <> \u11C7;"
" '(' n pan '))' <> \u11C8;"
" '(' n t '))' <> \u11C9;"
" '(' d g '))' <> \u11CA;"
" '(' d l '))' <> \u11CB;"
" '(' l g s '))' <> \u11CC;"
" '(' l n '))' <> \u11CD;"
" '(' l d '))' <> \u11CE;"
" '(' l d h '))' <> \u11CF;"
" '(' l l '))' <> \u11D0;"
" '(' l m g '))' <> \u11D1;"
" '(' l m s '))' <> \u11D2;"
" '(' l b s '))' <> \u11D3;"
" '(' l b h '))' <> \u11D4;"
" '(' l b ng '))' <> \u11D5;"
" '(' l s s '))' <> \u11D6;"
" '(' l pan '))' <> \u11D7;"
" '(' l k '))' <> \u11D8;"
" '(' l yr '))' <> \u11D9;"
" '(' m g '))' <> \u11DA;"
" '(' m l '))' <> \u11DB;"
" '(' m b '))' <> \u11DC;"
" '(' m s '))' <> \u11DD;"
" '(' m s s '))' <> \u11DE;"
" '(' m pan '))' <> \u11DF;"
" '(' m c '))' <> \u11E0;"
" '(' m h '))' <> \u11E1;"
" '(' m ng '))' <> \u11E2;"
" '(' b l '))' <> \u11E3;"
" '(' b p '))' <> \u11E4;"
" '(' b h '))' <> \u11E5;"
" '(' b ng '))' <> \u11E6;"
" '(' s g '))' <> \u11E7;"
" '(' s d '))' <> \u11E8;"
" '(' s l '))' <> \u11E9;"
" '(' s b '))' <> \u11EA;"
" '(' pan '))' <> \u11EB;"
" '(' ng g '))' <> \u11EC;"
" '(' ng g g '))' <> \u11ED;"
" '(' ng ng '))' <> \u11EE;"
" '(' ng k '))' <> \u11EF;"
" '(' yes '))' <> \u11F0;"
" '(' yes s '))' <> \u11F1;"
" '(' yes pan '))' <> \u11F2;"
" '(' p b '))' <> \u11F3;"
" '(' p ng '))' <> \u11F4;"
" '(' h n '))' <> \u11F5;"
" '(' h l '))' <> \u11F6;"
" '(' h m '))' <> \u11F7;"
" '(' h b '))' <> \u11F8;"
" '(' yr '))' <> \u11F9;"
// INITIALS
// Added }$vowel post context - liu
"bb}$vowel<>\u1108 } $vowel;"
"jj}$vowel<>\u110d } $vowel;"
"dd}$vowel<>\u1104 } $vowel;"
"t }$vowel<>\u1110 } $vowel;" // hangul choseong thieuth
"ss}$vowel<>\u110a } $vowel;" // hangul choseong ssangsios
"s }$vowel<>\u1109 } $vowel;" // hangul choseong sios
"p }$vowel<>\u1111 } $vowel;" // hangul choseong phieuph
"n }$vowel<>\u1102 } $vowel;" // hangul choseong nieun
"m }$vowel<>\u1106 } $vowel;" // hangul choseong mieum
"l }$vowel<>\u1105 } $vowel;" // hangul choseong rieul
"k }$vowel<>\u110f } $vowel;" // hangul choseong khieukh
"j }$vowel<>\u110c } $vowel;" // hangul choseong cieuc
"h }$vowel<>\u1112 } $vowel;" // hangul choseong hieuh
"gg}$vowel<>\u1101 } $vowel;" // hangul choseong ssangkiyeok
"g }$vowel<>\u1100 } $vowel;" // hangul choseong kiyeok
"d }$vowel<>\u1103 } $vowel;" // hangul choseong tikeut
"c }$vowel<>\u110e } $vowel;" // hangul choseong chieuch
"b }$vowel<>\u1107 } $vowel;" // hangul choseong pieup
// Take care of initial-compound medial - '(' $vowel - liu
"bb} '(' $vowel <> \u1108 } $comp_med;"
"jj} '(' $vowel <> \u110d } $comp_med;"
"dd} '(' $vowel <> \u1104 } $comp_med;"
"t } '(' $vowel <> \u1110 } $comp_med;" // hangul choseong thieuth
"ss} '(' $vowel <> \u110a } $comp_med;" // hangul choseong ssangsios
"s } '(' $vowel <> \u1109 } $comp_med;" // hangul choseong sios
"p } '(' $vowel <> \u1111 } $comp_med;" // hangul choseong phieuph
"n } '(' $vowel <> \u1102 } $comp_med;" // hangul choseong nieun
"m } '(' $vowel <> \u1106 } $comp_med;" // hangul choseong mieum
"l } '(' $vowel <> \u1105 } $comp_med;" // hangul choseong rieul
"k } '(' $vowel <> \u110f } $comp_med;" // hangul choseong khieukh
"j } '(' $vowel <> \u110c } $comp_med;" // hangul choseong cieuc
"h } '(' $vowel <> \u1112 } $comp_med;" // hangul choseong hieuh
"gg} '(' $vowel <> \u1101 } $comp_med;" // hangul choseong ssangkiyeok
"g } '(' $vowel <> \u1100 } $comp_med;" // hangul choseong kiyeok
"d } '(' $vowel <> \u1103 } $comp_med;" // hangul choseong tikeut
"c } '(' $vowel <> \u110e } $comp_med;" // hangul choseong chieuch
"b } '(' $vowel <> \u1107 } $comp_med;" // hangul choseong pieup
// Mark non-canonical initials with '[' - liu
"'[' bb <> \u1108;"
"'[' jj <> \u110d;"
"'[' dd <> \u1104;"
"'[' t <> \u1110;" // hangul choseong thieuth
"'[' ss <> \u110a;" // hangul choseong ssangsios
"'[' s <> \u1109;" // hangul choseong sios
"'[' p <> \u1111;" // hangul choseong phieuph
"'[' n <> \u1102;" // hangul choseong nieun
"'[' m <> \u1106;" // hangul choseong mieum
"'[' l <> \u1105;" // hangul choseong rieul
"'[' k <> \u110f;" // hangul choseong khieukh
"'[' j <> \u110c;" // hangul choseong cieuc
"'[' h <> \u1112;" // hangul choseong hieuh
"'[' gg <> \u1101;" // hangul choseong ssangkiyeok
"'[' g <> \u1100;" // hangul choseong kiyeok
"'[' d <> \u1103;" // hangul choseong tikeut
"'[' c <> \u110e;" // hangul choseong chieuch
"'[' b <> \u1107;" // hangul choseong pieup
// If we have gotten through to these rules, and we start with
// a consonant, then the remaining mappings would be to F,
// because must have CC (or C<non-letter>), not CV.
// If we have F before us, then
// we would end up with FF, which is wrong. The simplest fix is
// to still make it an initial, but also insert an "u",
// so we end up with F, I, u, and then continue with the C
// special, only initial
// + "bb > \u1108\u116e;" // bb u hangul choseong ssangpieup
// + "jj > \u110d\u116e;" // jj u hangul choseong ssangcieuc
// + "dd > \u1104\u116e;" // dd u hangul choseong ssangtikeut
// + "$final{ t > \u1110\u116e;" // hangul choseong thieuth
// + "$final{ ss> \u110a\u116e;" // hangul choseong ssangsios
// + "$final{ s > \u1109\u116e;" // hangul choseong sios
// + "$final{ p > \u1111\u116e;" // hangul choseong phieuph
// + "$final{ n > \u1102\u116e;" // hangul choseong nieun
// + "$final{ m > \u1106\u116e;" // hangul choseong mieum
// + "$final{ l > \u1105\u116e;" // hangul choseong rieul
// + "$final{ k > \u110f\u116e;" // hangul choseong khieukh
// + "$final{ j > \u110c\u116e;" // hangul choseong cieuc
// + "$final{ h > \u1112\u116e;" // hangul choseong hieuh
// + "$final{ gg> \u1101\u116e;" // hangul choseong ssangkiyeok
// + "$final{ g > \u1100\u116e;" // hangul choseong kiyeok
// + "$final{ d > \u1103\u116e;" // hangul choseong tikeut
// + "$final{ c > \u110e\u116e;" // hangul choseong chieuch
// + "$final{ b > \u1107\u116e;" // hangul choseong pieup
// MEDIALS after INITIALS
// MEDIALS (vowels) not after INITIALs
// Added left $initial context - liu
"$initial{ yu <> $INITIAL{ \u1172;" // hangul jungseong yu
"$initial{ yo <> $INITIAL{ \u116d;" // hangul jungseong yo
"$initial{ yi <> $INITIAL{ \u1174;" // hangul jungseong yi
"$initial{ yeo<> $INITIAL{ \u1167;" // hangul jungseong yeo
"$initial{ ye <> $INITIAL{ \u1168;" // hangul jungseong ye
"$initial{ yae<> $INITIAL{ \u1164;" // hangul jungseong yae
"$initial{ ya <> $INITIAL{ \u1163;" // hangul jungseong ya
"$initial{ wi <> $INITIAL{ \u1171;" // hangul jungseong wi
"$initial{ weo<> $INITIAL{ \u116f;" // hangul jungseong weo
"$initial{ we <> $INITIAL{ \u1170;" // hangul jungseong we
"$initial{ wae<> $INITIAL{ \u116b;" // hangul jungseong wae
"$initial{ wa <> $INITIAL{ \u116a;" // hangul jungseong wa
"$initial{ u <> $INITIAL{ \u116e;" // hangul jungseong u
"$initial{ oe <> $INITIAL{ \u116c;" // hangul jungseong oe
"$initial{ o <> $INITIAL{ \u1169;" // hangul jungseong o
"$initial{ i <> $INITIAL{ \u1175;" // hangul jungseong i
"$initial{ eu <> $INITIAL{ \u1173;" // hangul jungseong eu
"$initial{ eo <> $INITIAL{ \u1165;" // hangul jungseong eo
"$initial{ e <> $INITIAL{ \u1166;" // hangul jungseong e
"$initial{ ae <> $INITIAL{ \u1162;" // hangul jungseong ae
"$initial{ a <> $INITIAL{ \u1161;" // hangul jungseong a
// Handle non-canonical isolated jungseong - liu
"'~'yu <> \u1172;" // hangul jungseong yu
"'~'yo <> \u116d;" // hangul jungseong yo
"'~'yi <> \u1174;" // hangul jungseong yi
"'~'yeo<> \u1167;" // hangul jungseong yeo
"'~'ye <> \u1168;" // hangul jungseong ye
"'~'yae<> \u1164;" // hangul jungseong yae
"'~'ya <> \u1163;" // hangul jungseong ya
"'~'wi <> \u1171;" // hangul jungseong wi
"'~'weo<> \u116f;" // hangul jungseong weo
"'~'we <> \u1170;" // hangul jungseong we
"'~'wae<> \u116b;" // hangul jungseong wae
"'~'wa <> \u116a;" // hangul jungseong wa
"'~'u <> \u116e;" // hangul jungseong u
"'~'oe <> \u116c;" // hangul jungseong oe
"'~'o <> \u1169;" // hangul jungseong o
"'~'i <> \u1175;" // hangul jungseong i
"'~'eu <> \u1173;" // hangul jungseong eu
"'~'eo <> \u1165;" // hangul jungseong eo
"'~'e <> \u1166;" // hangul jungseong e
"'~'ae <> \u1162;" // hangul jungseong ae
"'~'a <> \u1161;" // hangul jungseong a
// MEDIALS (vowels) not after INITIALs
// Changed from > to <> - liu
"yu <> $ieung \u1172;" // hangul jungseong yu
"yo <> $ieung \u116d;" // hangul jungseong yo
"yi <> $ieung \u1174;" // hangul jungseong yi
"yeo<> $ieung \u1167;" // hangul jungseong yeo
"ye <> $ieung \u1168;" // hangul jungseong ye
"yae<> $ieung \u1164;" // hangul jungseong yae
"ya <> $ieung \u1163;" // hangul jungseong ya
"wi <> $ieung \u1171;" // hangul jungseong wi
"weo<> $ieung \u116f;" // hangul jungseong weo
"we <> $ieung \u1170;" // hangul jungseong we
"wae<> $ieung \u116b;" // hangul jungseong wae
"wa <> $ieung \u116a;" // hangul jungseong wa
"u <> $ieung \u116e;" // hangul jungseong u
"oe <> $ieung \u116c;" // hangul jungseong oe
"o <> $ieung \u1169;" // hangul jungseong o
"i <> $ieung \u1175;" // hangul jungseong i
"eu <> $ieung \u1173;" // hangul jungseong eu
"eo <> $ieung \u1165;" // hangul jungseong eo
"e <> $ieung \u1166;" // hangul jungseong e
"ae <> $ieung \u1162;" // hangul jungseong ae
"a <> $ieung \u1161;" // hangul jungseong a
"\\` <> $ieung;"
// Moved down so as not to mask above rules - liu
// + "'' < $consonant{$ieung;" // insert a break between any consonant and the empty consonant.
// + "$medial{}$vowel<>$ieung;" // HANGUL CHOSEONG IEUNG
// FINALS
" '' t <> $consonant { \u11c0;" // hangul jongseong thieuth
" '' ss <> $consonant { \u11bb;" // hangul jongseong ssangsios
" '' s <> $consonant { \u11ba;" // hangul jongseong sios
" '' p <> $consonant { \u11c1;" // hangul jongseong phieuph
" '' nj <> $consonant { \u11ac;" // hangul jongseong nieun-cieuc
" '' nh <> $consonant { \u11ad;" // hangul jongseong nieun-hieuh
" '' ng <> $consonant { \u11bc;" // hangul jongseong ieung
" '' n <> $consonant { \u11ab;" // hangul jongseong nieun
" '' m <> $consonant { \u11b7;" // hangul jongseong mieum
" '' lt <> $consonant { \u11b4;" // hangul jongseong rieul-thieuth
" '' ls <> $consonant { \u11b3;" // hangul jongseong rieul-sios
" '' lp <> $consonant { \u11b5;" // hangul jongseong rieul-phieuph
" '' lm <> $consonant { \u11b1;" // hangul jongseong rieul-mieum
" '' lh <> $consonant { \u11b6;" // hangul jongseong rieul-hieuh
" '' lg <> $consonant { \u11b0;" // hangul jongseong rieul-kiyeok
" '' lb <> $consonant { \u11b2;" // hangul jongseong rieul-pieup
" '' l <> $consonant { \u11af;" // hangul jongseong rieul
" '' k <> $consonant { \u11bf;" // hangul jongseong khieukh
" '' j <> $consonant { \u11bd;" // hangul jongseong cieuc
" '' h <> $consonant { \u11c2;" // hangul jongseong hieuh
" '' gs <> $consonant { \u11aa;" // hangul jongseong kiyeok-sios
" '' gg <> $consonant { \u11a9;" // hangul jongseong ssangkiyeok
" '' g <> $consonant { \u11a8;" // hangul jongseong kiyeok
" '' d <> $consonant { \u11ae;" // hangul jongseong tikeut
" '' c <> $consonant { \u11be;" // hangul jongseong chieuch
" '' bs <> $consonant { \u11b9;" // hangul jongseong pieup-sios
" '' b <> $consonant { \u11b8;" // hangul jongseong pieup
"t ']'> \u11c0;" // hangul jongseong thieuth
"ss ']'> \u11bb;" // hangul jongseong ssangsios
"s ']'> \u11ba;" // hangul jongseong sios
"p ']'> \u11c1;" // hangul jongseong phieuph
"nj ']'> \u11ac;" // hangul jongseong nieun-cieuc
"nh ']'> \u11ad;" // hangul jongseong nieun-hieuh
"ng ']'> \u11bc;" // hangul jongseong ieung
"n ']'> \u11ab;" // hangul jongseong nieun
"m ']'> \u11b7;" // hangul jongseong mieum
"lt ']'> \u11b4;" // hangul jongseong rieul-thieuth
"ls ']'> \u11b3;" // hangul jongseong rieul-sios
"lp ']'> \u11b5;" // hangul jongseong rieul-phieuph
"lm ']'> \u11b1;" // hangul jongseong rieul-mieum
"lh ']'> \u11b6;" // hangul jongseong rieul-hieuh
"lg ']'> \u11b0;" // hangul jongseong rieul-kiyeok
"lb ']'> \u11b2;" // hangul jongseong rieul-pieup
"l ']'> \u11af;" // hangul jongseong rieul
"k ']'> \u11bf;" // hangul jongseong khieukh
"j ']'> \u11bd;" // hangul jongseong cieuc
"h ']'> \u11c2;" // hangul jongseong hieuh
"gs ']'> \u11aa;" // hangul jongseong kiyeok-sios
"gg ']'> \u11a9;" // hangul jongseong ssangkiyeok
"g ']'> \u11a8;" // hangul jongseong kiyeok
"d ']'> \u11ae;" // hangul jongseong tikeut
"c ']'> \u11be;" // hangul jongseong chieuch
"bs ']'> \u11b9;" // hangul jongseong pieup-sios
"b ']'> \u11b8;" // hangul jongseong pieup
"$medial{ t <> $MEDIAL{ \u11c0;" // hangul jongseong thieuth
"$medial{ ss <> $MEDIAL{ \u11bb;" // hangul jongseong ssangsios
"$medial{ s <> $MEDIAL{ \u11ba;" // hangul jongseong sios
"$medial{ p <> $MEDIAL{ \u11c1;" // hangul jongseong phieuph
"$medial{ nj <> $MEDIAL{ \u11ac;" // hangul jongseong nieun-cieuc
"$medial{ nh <> $MEDIAL{ \u11ad;" // hangul jongseong nieun-hieuh
"$medial{ ng <> $MEDIAL{ \u11bc;" // hangul jongseong ieung
"$medial{ n <> $MEDIAL{ \u11ab;" // hangul jongseong nieun
"$medial{ m <> $MEDIAL{ \u11b7;" // hangul jongseong mieum
"$medial{ lt <> $MEDIAL{ \u11b4;" // hangul jongseong rieul-thieuth
"$medial{ ls <> $MEDIAL{ \u11b3;" // hangul jongseong rieul-sios
"$medial{ lp <> $MEDIAL{ \u11b5;" // hangul jongseong rieul-phieuph
"$medial{ lm <> $MEDIAL{ \u11b1;" // hangul jongseong rieul-mieum
"$medial{ lh <> $MEDIAL{ \u11b6;" // hangul jongseong rieul-hieuh
"$medial{ lg <> $MEDIAL{ \u11b0;" // hangul jongseong rieul-kiyeok
"$medial{ lb <> $MEDIAL{ \u11b2;" // hangul jongseong rieul-pieup
"$medial{ l <> $MEDIAL{ \u11af;" // hangul jongseong rieul
"$medial{ k <> $MEDIAL{ \u11bf;" // hangul jongseong khieukh
"$medial{ j <> $MEDIAL{ \u11bd;" // hangul jongseong cieuc
"$medial{ h <> $MEDIAL{ \u11c2;" // hangul jongseong hieuh
"$medial{ gs <> $MEDIAL{ \u11aa;" // hangul jongseong kiyeok-sios
"$medial{ gg <> $MEDIAL{ \u11a9;" // hangul jongseong ssangkiyeok
"$medial{ g <> $MEDIAL{ \u11a8;" // hangul jongseong kiyeok
"$medial{ d <> $MEDIAL{ \u11ae;" // hangul jongseong tikeut
"$medial{ c <> $MEDIAL{ \u11be;" // hangul jongseong chieuch
"$medial{ bs <> $MEDIAL{ \u11b9;" // hangul jongseong pieup-sios
"$medial{ b <> $MEDIAL{ \u11b8;" // hangul jongseong pieup
"t ']'< \u11c0;" // hangul jongseong thieuth
"ss ']'< \u11bb;" // hangul jongseong ssangsios
"s ']'< \u11ba;" // hangul jongseong sios
"p ']'< \u11c1;" // hangul jongseong phieuph
"nj ']'< \u11ac;" // hangul jongseong nieun-cieuc
"nh ']'< \u11ad;" // hangul jongseong nieun-hieuh
"ng ']'< \u11bc;" // hangul jongseong ieung
"n ']'< \u11ab;" // hangul jongseong nieun
"m ']'< \u11b7;" // hangul jongseong mieum
"lt ']'< \u11b4;" // hangul jongseong rieul-thieuth
"ls ']'< \u11b3;" // hangul jongseong rieul-sios
"lp ']'< \u11b5;" // hangul jongseong rieul-phieuph
"lm ']'< \u11b1;" // hangul jongseong rieul-mieum
"lh ']'< \u11b6;" // hangul jongseong rieul-hieuh
"lg ']'< \u11b0;" // hangul jongseong rieul-kiyeok
"lb ']'< \u11b2;" // hangul jongseong rieul-pieup
"l ']'< \u11af;" // hangul jongseong rieul
"k ']'< \u11bf;" // hangul jongseong khieukh
"j ']'< \u11bd;" // hangul jongseong cieuc
"h ']'< \u11c2;" // hangul jongseong hieuh
"gs ']'< \u11aa;" // hangul jongseong kiyeok-sios
"gg ']'< \u11a9;" // hangul jongseong ssangkiyeok
"g ']'< \u11a8;" // hangul jongseong kiyeok
"d ']'< \u11ae;" // hangul jongseong tikeut
"c ']'< \u11be;" // hangul jongseong chieuch
"bs ']'< \u11b9;" // hangul jongseong pieup-sios
"b ']'< \u11b8;" // hangul jongseong pieup
// extra English letters
// + "z > |s;"
// //{ + "Z > |s;" } masked
// + "x > |ks;"
// + "X > |ks;"
// + "v > |b;"
// + "V > |b;"
// + "r > |l;"
// + "R > |l;"
// + "q > |k;"
// + "Q > |k;"
// + "f > |p;"
// + "F > |p;"
// //{ + "c > |k;" } masked
// + "C > |k;"
// + "y > \u1172;" // hangul jungseong yu
// + "w > \u1171;" // hangul jungseong wi
}
}