//--------------------------------------------------------------------
// 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_Kana.java
// Date: Wed Jul  5 16:11:19 2000
//--------------------------------------------------------------------

// Latin-Kana

lkana {
  Rule {
    
    // Japanese hiragana and katakana to and from latin
    // (romaji).  Lower case latin corresponds to hiragana;
    // upper case latin to katakana.  The handling of
    // Hiragana and Katakana is largely the same.  The bulk
    // of the transliterator consists of two identical sets
    // of rules, differing only in case.
    
    // Because of minor differences between the two blocks
    // (e.g., the existence of small katakana ka and ke, but
    // no corresponding hiragana), some rules exist for only
    // one script.
    
    // Uses modified Hepburn. Small changes to make
    // unambiguous.
    
    //| Kunrei-shiki: Hepburn/MHepburn
    //| ------------------------------
    //| si:     shi
    //| si ~ya: sha
    //| si ~yu: shu
    //| si ~yo: sho
    //| zi:     ji
    //| zi ~ya: ja
    //| zi ~yu: ju
    //| zi ~yo: jo
    //| ti:     chi
    //| ti ~ya: cha
    //| ti ~yu: chu
    //| ti ~yu: cho
    //| tu:     tsu
    //| di:     ji/dji
    //| du:     zu/dzu
    //| hu:     fu
    
    //| For foreign words:
    //| -----------------
    //| se ~i   si
    //| si ~e   she
    //|
    //| ze ~i   zi
    //| zi ~e   je
    //|
    //| te ~i   ti
    //| ti ~e   che
    //| te ~u   tu
    //|
    //| de ~i   di
    //| de ~u   du
    //| de ~i   di
    //|
    //| he ~u:  hu
    //| hu ~a   fa
    //| hu ~i   fi
    //| hu ~e   he
    //| hu ~o   ho
    
    // Most small forms are generated, but if necessary
    // explicit small forms are given with ~a, ~ya, etc.
    
    //------------------------------------------------------
    // Variables
    
    "$vowel=[aeiou];"
    "$QUOTE='';"
    
    // Hiragana block
    
    "$a2=\u3041;"
    "$a=\u3042;"
    "$i2=\u3043;"
    "$i=\u3044;"
    "$u2=\u3045;"
    "$u=\u3046;"
    "$e2=\u3047;"
    "$e=\u3048;"
    "$o2=\u3049;"
    "$o=\u304A;"
    
    "$ka=\u304B;"
    "$ga=\u304C;"
    "$ki=\u304D;"
    "$gi=\u304E;"
    "$ku=\u304F;"
    "$gu=\u3050;"
    "$ke=\u3051;"
    "$ge=\u3052;"
    "$ko=\u3053;"
    "$go=\u3054;"
    
    "$sa=\u3055;"
    "$za=\u3056;"
    "$si=\u3057;"
    "$zi=\u3058;"
    "$su=\u3059;"
    "$zu=\u305A;"
    "$se=\u305B;"
    "$ze=\u305C;"
    "$so=\u305D;"
    "$zo=\u305E;"
    
    "$ta=\u305F;"
    "$da=\u3060;"
    "$ti=\u3061;"
    "$di=\u3062;"
    "$tu2=\u3063;"
    "$tu=\u3064;"
    "$du=\u3065;"
    "$te=\u3066;"
    "$de=\u3067;"
    "$to=\u3068;"
    "$do=\u3069;"
    
    "$na=\u306A;"
    "$ni=\u306B;"
    "$nu=\u306C;"
    "$ne=\u306D;"
    "$no=\u306E;"
    
    "$ha=\u306F;"
    "$ba=\u3070;"
    "$pa=\u3071;"
    "$hi=\u3072;"
    "$bi=\u3073;"
    "$pi=\u3074;"
    "$hu=\u3075;"
    "$bu=\u3076;"
    "$pu=\u3077;"
    "$he=\u3078;"
    "$be=\u3079;"
    "$pe=\u307A;"
    "$ho=\u307B;"
    "$bo=\u307C;"
    "$po=\u307D;"
    
    "$ma=\u307E;"
    "$mi=\u307F;"
    "$mu=\u3080;"
    "$me=\u3081;"
    "$mo=\u3082;"
    
    "$ya2=\u3083;"
    "$ya=\u3084;"
    "$yu2=\u3085;"
    "$yu=\u3086;"
    "$yo2=\u3087;"
    "$yo=\u3088;"
    
    "$ra=\u3089;"
    "$ri=\u308A;"
    "$ru=\u308B;"
    "$re=\u308C;"
    "$ro=\u308D;"
    
    "$wa2=\u308E;"
    "$wa=\u308F;"
    "$wi=\u3090;"
    "$we=\u3091;"
    "$wo=\u3092;"
    
    "$n=\u3093;"
    "$vu=\u3094;"
    
    // Alternates, just to make the rules easier
    "$yi2=\u3043;"
    "$yi=\u3044;"
    "$ye2=\u3047;"
    "$ye=\u3048;"
    "$wu=$u;"
    // End alternates
    
    // Katakana block
    
    "$A2=\u30A1;"
    "$A=\u30A2;"
    "$I2=\u30A3;"
    "$I=\u30A4;"
    "$U2=\u30A5;"
    "$U=\u30A6;"
    "$E2=\u30A7;"
    "$E=\u30A8;"
    "$O2=\u30A9;"
    "$O=\u30AA;"
    
    "$KA=\u30AB;"
    "$GA=\u30AC;"
    "$KI=\u30AD;"
    "$GI=\u30AE;"
    "$KU=\u30AF;"
    "$GU=\u30B0;"
    "$KE=\u30B1;"
    "$GE=\u30B2;"
    "$KO=\u30B3;"
    "$GO=\u30B4;"
    
    "$KA2=\u30F5;" // Small Katakana KA; no Hiragana equiv.
    "$KE2=\u30F6;" // Small Katakana KE; no Hiragana equiv.
    
    "$SA=\u30B5;"
    "$ZA=\u30B6;"
    "$SI=\u30B7;"
    "$ZI=\u30B8;"
    "$SU=\u30B9;"
    "$ZU=\u30BA;"
    "$SE=\u30BB;"
    "$ZE=\u30BC;"
    "$SO=\u30BD;"
    "$ZO=\u30BE;"
    
    "$TA=\u30BF;"
    "$DA=\u30C0;"
    "$TI=\u30C1;"
    "$DI=\u30C2;"
    "$TU2=\u30C3;"
    "$TU=\u30C4;"
    "$DU=\u30C5;"
    "$TE=\u30C6;"
    "$DE=\u30C7;"
    "$TO=\u30C8;"
    "$DO=\u30C9;"
    
    "$NA=\u30CA;"
    "$NI=\u30CB;"
    "$NU=\u30CC;"
    "$NE=\u30CD;"
    "$NO=\u30CE;"
    
    "$HA=\u30CF;"
    "$BA=\u30D0;"
    "$PA=\u30D1;"
    "$HI=\u30D2;"
    "$BI=\u30D3;"
    "$PI=\u30D4;"
    "$HU=\u30D5;"
    "$BU=\u30D6;"
    "$PU=\u30D7;"
    "$HE=\u30D8;"
    "$BE=\u30D9;"
    "$PE=\u30DA;"
    "$HO=\u30DB;"
    "$BO=\u30DC;"
    "$PO=\u30DD;"
    
    "$MA=\u30DE;"
    "$MI=\u30DF;"
    "$MU=\u30E0;"
    "$ME=\u30E1;"
    "$MO=\u30E2;"
    
    "$YA2=\u30E3;"
    "$YA=\u30E4;"
    "$YU2=\u30E5;"
    "$YU=\u30E6;"
    "$YO2=\u30E7;"
    "$YO=\u30E8;"
    "$WA2=\u30EE;"
    
    // Alternates, just to make the rules easier
    "$YI2=\u30A3;"
    "$YI=\u30A4;"
    "$YE2=\u30A7;"
    "$YE=\u30A8;"
    "$WU=$U;"
    // End alternates
    
    "$RA=\u30E9;"
    "$RI=\u30EA;"
    "$RU=\u30EB;"
    "$RE=\u30EC;"
    "$RO=\u30ED;"
    
    "$VA=\u30F7;"
    "$VI=\u30F8;"
    "$VU=\u30F4;"
    "$VE=\u30F9;"
    "$VO=\u30FA;"
    
    "$WA=\u30EF;"
    "$WI=\u30F0;"
    "$WE=\u30F1;"
    "$WO=\u30F2;"
    
    "$N=\u30F3;"
    "$LONG=\u30FC;"
    
    // Variables used for doubled-consonants with tsu
    
    "$K_START=[$KA$KI$KU$KE$KO$ka$ki$ku$ke$ko];"
    "$G_START=[$GA$GI$GU$GE$GO$ga$gi$gu$ge$go];"
    
    "$S_START=[$SA$SI$SU$SE$SO$sa$si$su$se$so];"
    "$Z_START=[$ZA$ZU$ZE$ZO$za$zu$ze$zo];"
    "$J_START=[$ZI$zi];"
    
    "$T_START=[$TA$TI$TU$TE$TO$ta$ti$tu$te$to];"
    "$D_START=[$DA$DI$DU$DE$DO$da$di$du$de$do];"
    
    "$N_START=[$NA$NI$NU$NE$NO$na$ni$nu$ne$no];"
    
    "$H_START=[$HA$HI$HE$HO$ha$hi$he$ho];"
    "$F_START=[$HU$hu];"
    "$B_START=[$BA$BI$BU$BE$BO$ba$bi$bu$be$bo];"
    "$P_START=[$PA$PI$PU$PE$PO$pa$pi$pu$pe$po];"
    
    "$M_START=[$MA$MI$MU$ME$MO$ma$mi$mu$me$mo];"
    
    "$Y_START=[$YA$YU$YO$ya$yu$yo];"
    
    "$R_START=[$RA$RI$RU$RE$RO$ra$ri$ru$re$ro];"
    
    "$W_START=[$WA$WI$WE$WO$wa$wi$we$wo];"
    
    "$V_START=[$VA$VI$VU$VE$VO$vu];"
    
    // If $N is followed by $N_QUOTER, then it needs an
    // apostrophe after its romaji form to disambiguate it.
    // E.g., $N $A != $NA, so represent as "n'a", not "na".
    
    "$N_QUOTER = [$A $I $U $E $O $NA $NI $NU $NE $NO"
    "             $YA $YU $YO $N];"
    
    "$n_quoter = [$a $i $u $e $o $na $ni $nu $ne $no"
    "             $ya $yu $yo $n];"
    
    // Lowercase copies for convenience in making hiragana
    // rule set copy
    
    "$long = $LONG;"
    "$quote = $QUOTE;"
    "$k_start=$K_START;"
    "$g_start=$G_START;"
    "$s_start=$S_START;"
    "$z_start=$Z_START;"
    "$j_start=$J_START;"
    "$t_start=$T_START;"
    "$d_start=$D_START;"
    "$n_start=$N_START;"
    "$h_start=$H_START;"
    "$f_start=$F_START;"
    "$b_start=$B_START;"
    "$p_start=$P_START;"
    "$m_start=$M_START;"
    "$y_start=$Y_START;"
    "$r_start=$R_START;"
    "$w_start=$W_START;"
    "$v_start=$V_START;"
    
    //------------------------------------------------------
    // Katakana rules
    
    // The rules immediately following are not shared.  That
    // is, they exist only for katakana, not for hiragana.
    
    "VA<>$VA;"
    "VI<>$VI;"
    "VE<>$VE;"
    "VO<>$VO;"
    "'~KA'<>$KA2;"
    "'~KE'<>$KE2;"
    
    // ~~~ BEGIN shared rules ~~~
    
    // The shared rules are copied from katakana to hiragana
    // and then mechanically lowercased.
    
    "A<>$A;"
    
    "BA<>$BA;"
    "BYA<$BI$YA2;"
    "BYI<$BI$I2;"
    "BYU<$BI$YU2;"
    "BYE<$BI$E2;"
    "BYO<$BI$YO2;"
    "BI<>$BI;"
    "BU<>$BU;"
    "BE<>$BE;"
    "BO<>$BO;"
    "BY>$BI|'~Y';"
    
    "CHA<$TI$YA2;"
    "CHI'~I'<$TI$I2;" // Liu
    "CHU<$TI$YU2;"
    "CHE<$TI$E2;"
    "CHO<$TI$YO2;"
    "CHI<>$TI;"
    "CH>$TI|'~Y';"
    
    "C}I>|S;"
    "C}E>|S;"
    
    "DA<>$DA;"
    "DI<>$DE$I2;"
    "DU<>$DE$U2;"
    "DE<>$DE;"
    "DO<>$DO;"
    "DZU<>$DU;"
    "DJA<$DI$YA2;"
    "DJI'~I'<$DI$I2;" // Liu
    "DJU<$DI$YU2;"
    "DJE<$DI$E2;"
    "DJO<$DI$YO2;"
    "DJI<>$DI;"
    "DJ>$DI|'~Y';"
    
    "E<>$E;"
    
    "FA<$HU$A2;"
    "FI<$HU$I2;"
    "FE<$HU$E2;"
    "FO<$HU$O2;"
    "FU<>$HU;"
    
    "GA<>$GA;"
    "GYA<$GI$YA2;"
    "GYI<$GI$I2;"
    "GYU<$GI$YU2;"
    "GYE<$GI$E2;"
    "GYO<$GI$YO2;"
    "GI<>$GI;"
    "GU<>$GU;"
    "GE<>$GE;"
    "GO<>$GO;"
    "GY>$GI|'~Y';"
    
    "HA<>$HA;"
    "HI<>$HI;"
    "HU<>$HE$U2;"
    "HE<>$HE;"
    "HO<>$HO;"
    
    "I<>$I;"
    
    "JA<$ZI$YA2;"
    "JI'~I'<$ZI$I2;" // Liu
    "JU<$ZI$YU2;"
    "JE<$ZI$E2;"
    "JO<$ZI$YO2;"
    "JI<>$ZI;"
    
    "KA<>$KA;"
    "KYA<$KI$YA2;"
    "KYI<$KI$I2;"
    "KYU<$KI$YU2;"
    "KYE<$KI$E2;"
    "KYO<$KI$YO2;"
    "KI<>$KI;"
    "KU<>$KU;"
    "KE<>$KE;"
    "KO<>$KO;"
    "KY>$KI|'~Y';"
    
    "MA<>$MA;"
    "MYA<$MI$YA2;"
    "MYI<$MI$I2;"
    "MYU<$MI$YU2;"
    "MYE<$MI$E2;"
    "MYO<$MI$YO2;"
    "MI<>$MI;"
    "MU<>$MU;"
    "ME<>$ME;"
    "MO<>$MO;"
    "MY>$MI|'~Y';"
    
    "M}P>$N;"
    "M}B>$N;"
    "M}F>$N;"
    "M}V>$N;"
    
    "NA<>$NA;"
    "NYA<$NI$YA2;"
    "NYI<$NI$I2;"
    "NYU<$NI$YU2;"
    "NYE<$NI$E2;"
    "NYO<$NI$YO2;"
    "NI<>$NI;"
    "NU<>$NU;"
    "NE<>$NE;"
    "NO<>$NO;"
    "NY>$NI|'~Y';"
    
    "O<>$O;"
    
    "PA<>$PA;"
    "PYA<$PI$YA2;"
    "PYI<$PI$I2;"
    "PYU<$PI$YU2;"
    "PYE<$PI$E2;"
    "PYO<$PI$YO2;"
    "PI<>$PI;"
    "PU<>$PU;"
    "PE<>$PE;"
    "PO<>$PO;"
    "PY>$PI|'~Y';"
    
    "RA<>$RA;"
    "RYA<$RI$YA2;"
    "RYI<$RI$I2;"
    "RYU<$RI$YU2;"
    "RYE<$RI$E2;"
    "RYO<$RI$YO2;"
    "RI<>$RI;"
    "RU<>$RU;"
    "RE<>$RE;"
    "RO<>$RO;"
    "RY>$RI|'~Y';"
    
    "SA<>$SA;"
    "SI<>$SE$I2;"
    "SU<>$SU;"
    "SE<>$SE;"
    "SO<>$SO;"
    
    "SHA<$SI$YA2;"
    "SHI'~I'<$SI$I2;" // Liu
    "SHU<$SI$YU2;"
    "SHE<$SI$E2;"
    "SHO<$SI$YO2;"
    "SHI<>$SI;"
    "SH>$SI|'~Y';"
    
    "TA<>$TA;"
    "TI<>$TE$I2;"
    "TU<>$TE$U2;"
    "TE<>$TE;"
    "TO<>$TO;"
    
    // Double consonants
    
    "B}B<>$TU2}$B_START;"
    "C}K>$TU2;"
    "C}C>$TU2;"
    "C}Q>$TU2;"
    "D}D<>$TU2}$D_START;"
    "F}F<>$TU2}$F_START;"
    "G}G<>$TU2}$G_START;"
    "H}H<>$TU2}$H_START;"
    "J}J<>$TU2}$J_START;"
    "K}K<>$TU2}$K_START;"
    "L}L>$TU2;"
    "M}M<>$TU2}$M_START;"
    "N}N<>$TU2}$N_START;"
    "P}P<>$TU2}$P_START;"
    "Q}Q>$TU2;"
    "R}R<>$TU2}$R_START;"
    "S}SH>$TU2;"
    "S}S<>$TU2}$S_START;"
    "T}CH>$TU2;"
    "T}T<>$TU2}$T_START;"
    "V}V<>$TU2}$V_START;"
    "W}W<>$TU2}$W_START;"
    "X}X>$TU2;"
    "Y}Y<>$TU2}$Y_START;"
    "Z}Z<>$TU2}$Z_START;"
    
    "TSU<>$TU;"
    
    "U<>$U;"
    
    "'V~A'<$VU$A2;" // Liu
    "'V~I'<$VU$I2;" // Liu
    "'V~E'<$VU$E2;" // Liu
    "'V~O'<$VU$O2;" // Liu
    "VU<>$VU;"
    
    "WA<>$WA;"
    "WI<>$WI;"
    "WU>$WU;"
    "WE<>$WE;"
    "WO<>$WO;"
    
    "YA<>$YA;"
    "YI>$YI;"
    "YU<>$YU;"
    "YE>$YE;"
    "YO<>$YO;"
    
    "ZA<>$ZA;"
    "ZI<>$ZE$I2;"
    "ZU<>$ZU;"
    "ZE<>$ZE;"
    "ZO<>$ZO;"
    
    // Prolonged vowel mark. This indicates a doubling of
    // the preceding vowel sound in both katakana and
    // hiragana.
    
    "A<A{$LONG;" // Liu
    "E<E{$LONG;" // Liu
    "I<I{$LONG;" // Liu
    "O<O{$LONG;" // Liu
    "U<U{$LONG;" // Liu
    
    // Small forms
    
    "'~A'<>$A2;"
    "'~I'<>$I2;"
    "'~U'<>$U2;"
    "'~E'<>$E2;"
    "'~O'<>$O2;"
    "'~TSU'<>$TU2;"
    "'~WA'<>$WA2;"
    "'~YA'<>$YA2;"
    "'~YI'>$YI2;"
    "'~YU'<>$YU2;"
    "'~YE'>$YE2;"
    "'~YO'<>$YO2;"
    
    // One-way latin->kana rules.  These do not occur in
    // well-formed romaji representing actual Japanese text.
    // Their purpose is to make all romaji map to kana of
    // some sort.
    
    // The following are not really necessary, but produce
    // slightly more natural results.
    
    "CY>$SE$I2;"
    "DY>$DE$I2;"
    "HY>$HI;"
    "SY>$SE$I2;"
    "TY>$TE$I2;"
    "ZY>$ZE$I2;"
    
    // Simple substitutions using backup
    
    "C>|K;"
    "F>$HU|'~';"
    "J>$ZI|'~Y';"
    "L>|R;"
    "Q>|K;"
    "V>$VU|'~';"
    "W>$U|'~';"
    "X>|KS;"
    
    // Isolated consonants listed here so as not to mask
    // longer rules above.
    
    "B>$BU;"
    "D>$DE;"
    "G>$GU;"
    "H>$HE;"
    "K>$KU;"
    "M>$N;"
    "N''<$N}$N_QUOTER;"
    "N<>$N;"
    "P>$PU;"
    "R>$RU;"
    "S>$SU;"
    "T>$TE;"
    "Y>$I;"
    "Z>$ZU;"
    
    // ~~~ END shared rules ~~~
    
    //------------------------------------------------------
    // Hiragana rules
    
    // Currently, there are no hiragana rules other than the
    // shared rules.
    
    // ~~~ BEGIN shared rules ~~~
    
    // The shared rules are copied from katakana to hiragana
    // and then mechanically lowercased.
    
    "a<>$a;"
    
    "ba<>$ba;"
    "bya<$bi$ya2;"
    "byi<$bi$i2;"
    "byu<$bi$yu2;"
    "bye<$bi$e2;"
    "byo<$bi$yo2;"
    "bi<>$bi;"
    "bu<>$bu;"
    "be<>$be;"
    "bo<>$bo;"
    "by>$bi|'~y';"
    
    "cha<$ti$ya2;"
    "chi'~i'<$ti$i2;" // liu
    "chu<$ti$yu2;"
    "che<$ti$e2;"
    "cho<$ti$yo2;"
    "chi<>$ti;"
    "ch>$ti|'~y';"
    
    "c}i>|s;"
    "c}e>|s;"
    
    "da<>$da;"
    "di<>$de$i2;"
    "du<>$de$u2;"
    "de<>$de;"
    "do<>$do;"
    "dzu<>$du;"
    "dja<$di$ya2;"
    "dji'~i'<$di$i2;" // liu
    "dju<$di$yu2;"
    "dje<$di$e2;"
    "djo<$di$yo2;"
    "dji<>$di;"
    "dj>$di|'~y';"
    
    "e<>$e;"
    
    "fa<$hu$a2;"
    "fi<$hu$i2;"
    "fe<$hu$e2;"
    "fo<$hu$o2;"
    "fu<>$hu;"
    
    "ga<>$ga;"
    "gya<$gi$ya2;"
    "gyi<$gi$i2;"
    "gyu<$gi$yu2;"
    "gye<$gi$e2;"
    "gyo<$gi$yo2;"
    "gi<>$gi;"
    "gu<>$gu;"
    "ge<>$ge;"
    "go<>$go;"
    "gy>$gi|'~y';"
    
    "ha<>$ha;"
    "hi<>$hi;"
    "hu<>$he$u2;"
    "he<>$he;"
    "ho<>$ho;"
    
    "i<>$i;"
    
    "ja<$zi$ya2;"
    "ji'~i'<$zi$i2;" // liu
    "ju<$zi$yu2;"
    "je<$zi$e2;"
    "jo<$zi$yo2;"
    "ji<>$zi;"
    
    "ka<>$ka;"
    "kya<$ki$ya2;"
    "kyi<$ki$i2;"
    "kyu<$ki$yu2;"
    "kye<$ki$e2;"
    "kyo<$ki$yo2;"
    "ki<>$ki;"
    "ku<>$ku;"
    "ke<>$ke;"
    "ko<>$ko;"
    "ky>$ki|'~y';"
    
    "ma<>$ma;"
    "mya<$mi$ya2;"
    "myi<$mi$i2;"
    "myu<$mi$yu2;"
    "mye<$mi$e2;"
    "myo<$mi$yo2;"
    "mi<>$mi;"
    "mu<>$mu;"
    "me<>$me;"
    "mo<>$mo;"
    "my>$mi|'~y';"
    
    "m}p>$n;"
    "m}b>$n;"
    "m}f>$n;"
    "m}v>$n;"
    
    "na<>$na;"
    "nya<$ni$ya2;"
    "nyi<$ni$i2;"
    "nyu<$ni$yu2;"
    "nye<$ni$e2;"
    "nyo<$ni$yo2;"
    "ni<>$ni;"
    "nu<>$nu;"
    "ne<>$ne;"
    "no<>$no;"
    "ny>$ni|'~y';"
    
    "o<>$o;"
    
    "pa<>$pa;"
    "pya<$pi$ya2;"
    "pyi<$pi$i2;"
    "pyu<$pi$yu2;"
    "pye<$pi$e2;"
    "pyo<$pi$yo2;"
    "pi<>$pi;"
    "pu<>$pu;"
    "pe<>$pe;"
    "po<>$po;"
    "py>$pi|'~y';"
    
    "ra<>$ra;"
    "rya<$ri$ya2;"
    "ryi<$ri$i2;"
    "ryu<$ri$yu2;"
    "rye<$ri$e2;"
    "ryo<$ri$yo2;"
    "ri<>$ri;"
    "ru<>$ru;"
    "re<>$re;"
    "ro<>$ro;"
    "ry>$ri|'~y';"
    
    "sa<>$sa;"
    "si<>$se$i2;"
    "su<>$su;"
    "se<>$se;"
    "so<>$so;"
    
    "sha<$si$ya2;"
    "shi'~i'<$si$i2;" // liu
    "shu<$si$yu2;"
    "she<$si$e2;"
    "sho<$si$yo2;"
    "shi<>$si;"
    "sh>$si|'~y';"
    
    "ta<>$ta;"
    "ti<>$te$i2;"
    "tu<>$te$u2;"
    "te<>$te;"
    "to<>$to;"
    
    // double consonants
    
    "b}b<>$tu2}$b_start;"
    "c}k>$tu2;"
    "c}c>$tu2;"
    "c}q>$tu2;"
    "d}d<>$tu2}$d_start;"
    "f}f<>$tu2}$f_start;"
    "g}g<>$tu2}$g_start;"
    "h}h<>$tu2}$h_start;"
    "j}j<>$tu2}$j_start;"
    "k}k<>$tu2}$k_start;"
    "l}l>$tu2;"
    "m}m<>$tu2}$m_start;"
    "n}n<>$tu2}$n_start;"
    "p}p<>$tu2}$p_start;"
    "q}q>$tu2;"
    "r}r<>$tu2}$r_start;"
    "s}sh>$tu2;"
    "s}s<>$tu2}$s_start;"
    "t}ch>$tu2;"
    "t}t<>$tu2}$t_start;"
    "v}v<>$tu2}$v_start;"
    "w}w<>$tu2}$w_start;"
    "x}x>$tu2;"
    "y}y<>$tu2}$y_start;"
    "z}z<>$tu2}$z_start;"
    
    "tsu<>$tu;"
    
    "u<>$u;"
    
    "'v~a'<$vu$a2;" // liu
    "'v~i'<$vu$i2;" // liu
    "'v~e'<$vu$e2;" // liu
    "'v~o'<$vu$o2;" // liu
    "vu<>$vu;"
    
    "wa<>$wa;"
    "wi<>$wi;"
    "wu>$wu;"
    "we<>$we;"
    "wo<>$wo;"
    
    "ya<>$ya;"
    "yi>$yi;"
    "yu<>$yu;"
    "ye>$ye;"
    "yo<>$yo;"
    
    "za<>$za;"
    "zi<>$ze$i2;"
    "zu<>$zu;"
    "ze<>$ze;"
    "zo<>$zo;"
    
    // prolonged vowel mark. this indicates a doubling of
    // the preceding vowel sound in both katakana and
    // hiragana.
    
    "a<a{$long;" // liu
    "e<e{$long;" // liu
    "i<i{$long;" // liu
    "o<o{$long;" // liu
    "u<u{$long;" // liu
    
    // small forms
    
    "'~a'<>$a2;"
    "'~i'<>$i2;"
    "'~u'<>$u2;"
    "'~e'<>$e2;"
    "'~o'<>$o2;"
    "'~tsu'<>$tu2;"
    "'~wa'<>$wa2;"
    "'~ya'<>$ya2;"
    "'~yi'>$yi2;"
    "'~yu'<>$yu2;"
    "'~ye'>$ye2;"
    "'~yo'<>$yo2;"
    
    // one-way latin->kana rules.  these do not occur in
    // well-formed romaji representing actual japanese text.
    // their purpose is to make all romaji map to kana of
    // some sort.
    
    // the following are not really necessary, but produce
    // slightly more natural results.
    
    "cy>$se$i2;"
    "dy>$de$i2;"
    "hy>$hi;"
    "sy>$se$i2;"
    "ty>$te$i2;"
    "zy>$ze$i2;"
    
    // simple substitutions using backup
    
    "c>|k;"
    "f>$hu|'~';"
    "j>$zi|'~y';"
    "l>|r;"
    "q>|k;"
    "v>$vu|'~';"
    "w>$u|'~';"
    "x>|ks;"
    
    // isolated consonants listed here so as not to mask
    // longer rules above.
    
    "b>$bu;"
    "d>$de;"
    "g>$gu;"
    "h>$he;"
    "k>$ku;"
    "m>$n;"
    "n''<$n}$n_quoter;"
    "n<>$n;"
    "p>$pu;"
    "r>$ru;"
    "s>$su;"
    "t>$te;"
    "y>$i;"
    "z>$zu;"
    
    // ~~~ END shared rules ~~~
    
    //------------------------------------------------------
    // Final cleanup
    
    "'~'>;" // delete stray tildes
    "$quote>;" // delete stray quotes
    "'-'>$long;"
  }
}
