//-------------------------------------------------------------------- // 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), 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 } }