blob: 8fb2b6ba2d12c0b3abe75b30ca6384f84f808a43 [file] [log] [blame]
//--------------------------------------------------------------------
// Copyright (C) 1999, International Business Machines
// Corporation and others. All Rights Reserved.
//--------------------------------------------------------------------
// Date Name Description
// 11/17/99 aliu Creation.
//--------------------------------------------------------------------
// Latin-Kana
// Rewritten April 1999 to implement Hepburn (kebon shiki)
// transliteration. Reference: CJKV Information Processing, Lunde,
// 1999, pp. 30-35.
// @author Alan Liu
lkana {
Rule {
//# $Revision: 1.2 $
// Transliteration rules for Japanese Hiragana and Katakana to
// romaji
// lower case roman generates hiragana.
// upper case roman generates katakana.
// 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.
//* */
//#######################################
// Definitions of variables to be substituted
//#######################################
"vowel=[aeiou];"
"quote='';"
// now the kana
"long=\u30FC;"
"~a=\u3041;"
"^a=\u3042;"
"~i=\u3043;"
"^i=\u3044;"
"~u=\u3045;"
"^u=\u3046;"
"~e=\u3047;"
"^e=\u3048;"
"~o=\u3049;"
"^o=\u304A;"
"ka=\u304B;"
"ga=\u304C;"
"ki=\u304D;"
"gi=\u304E;"
"ku=\u304F;"
"gu=\u3050;"
"ke=\u3051;"
"ge=\u3052;"
"ko=\u3053;"
"go=\u3054;"
//these are small katakana
"~ka=\u30F5;"
"~ke=\u30F6;"
"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;"
"~tu=\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;"
"~ya=\u3083;"
"ya=\u3084;"
"~yu=\u3085;"
"yu=\u3086;"
"~yo=\u3087;"
"yo=\u3088;"
"ra=\u3089;"
"ri=\u308A;"
"ru=\u308B;"
"re=\u308C;"
"ro=\u308D;"
"~wa=\u308E;"
"wa=\u308F;"
"wi=\u3090;"
"we=\u3091;"
"wo=\u3092;"
"^n=\u3093;"
"vu=\u3094;"
// alternates, just to make the rules easier
"~yi=\u3043;"
"yi=\u3044;"
"~ye=\u3047;"
"ye=\u3048;"
"wu={^u};"
// end alternates
// Katakana
"~A=\u30A1;"
"^A=\u30A2;"
"~I=\u30A3;"
"^I=\u30A4;"
"~U=\u30A5;"
"^U=\u30A6;"
"~E=\u30A7;"
"^E=\u30A8;"
"~O=\u30A9;"
"^O=\u30AA;"
"KA=\u30AB;"
"GA=\u30AC;"
"KI=\u30AD;"
"GI=\u30AE;"
"KU=\u30AF;"
"GU=\u30B0;"
"KE=\u30B1;"
"GE=\u30B2;"
"KO=\u30B3;"
"GO=\u30B4;"
//these generate small katakana
"~KA=\u30F5;"
"~KE=\u30F6;"
"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;"
"~TU=\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;"
"~YA=\u30E3;"
"YA=\u30E4;"
"~YU=\u30E5;"
"YU=\u30E6;"
"~YO=\u30E7;"
"YO=\u30E8;"
"~WA=\u30EE;"
// alternates, just to make the rules easier
"~YI=\u30A3;"
"YI=\u30A4;"
"~YE=\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;"
"QUOTE='';"
// Variables used for double-letters 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}];"
// lowercase copies for convenience in making hiragana
"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};"
// remember that the order is very significant:
// always put longer before shorter elements
//#######################################
// KATAKANA
//#######################################
"VA>{VA};"
"VI>{VI};"
"VE>{VE};"
"VO>{VO};"
"VA<{VA};"
"VI<{VI};"
"VE<{VE};"
"VO<{VO};"
//#######################################
// KATAKANA SHARED
// These are also used to produce hiragana, by lowercasing
//#######################################
"A>{^A};"
"BA>{BA};"
"BI>{BI};"
"BU>{BU};"
"BE>{BE};"
"BO>{BO};"
"BY>{BI}|~Y;"
"CHI>{TI};"
"CH>{TI}|~Y;"
"C(I>|S;"
"C(E>|S;"
"DA>{DA};"
"DI>{DE}{~I};"
"DU>{DE}{~U};"
"DE>{DE};"
"DO>{DO};"
"DZU>{DU};"
"DJI>{DI};"
"DJ>{DI}|~Y;"
"E>{^E};"
"FU>{HU};"
"GA>{GA};"
"GI>{GI};"
"GU>{GU};"
"GE>{GE};"
"GO>{GO};"
"GY>{GI}|~Y;"
"HA>{HA};"
"HI>{HI};"
"HU>{HE}{~U};"
"HE>{HE};"
"HO>{HO};"
"I>{^I};"
"JI>{ZI};"
"KA>{KA};"
"KI>{KI};"
"KU>{KU};"
"KE>{KE};"
"KO>{KO};"
"KY>{KI}|~Y;"
"MA>{MA};"
"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};"
"NI>{NI};"
"NU>{NU};"
"NE>{NE};"
"NO>{NO};"
"NY>{NI}|~Y;"
"O>{^O};"
"PA>{PA};"
"PI>{PI};"
"PU>{PU};"
"PE>{PE};"
"PO>{PO};"
"PY>{PI}|~Y;"
"RA>{RA};"
"RI>{RI};"
"RU>{RU};"
"RE>{RE};"
"RO>{RO};"
"RY>{RI}|~Y;"
"SA>{SA};"
"SI>{SE}{~I};"
"SU>{SU};"
"SE>{SE};"
"SO>{SO};"
"SHI>{SI};"
"SH>{SI}|~Y;"
"TA>{TA};"
"TI>{TE}{~I};"
"TU>{TE}{~U};"
"TE>{TE};"
"TO>{TO};"
"TSU>{TU};"
//+ "TS>{TU}|~;"
"U>{^U};"
"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}{~I};"
"ZU>{ZU};"
"ZE>{ZE};"
"ZO>{ZO};"
// SMALL FORMS
"~A>{~A};"
"~I>{~I};"
"~U>{~U};"
"~E>{~E};"
"~O>{~O};"
"~KA>{~KA};"
"~KE>{~KE};"
"~TSU>{~TU};"
"~WA>{~WA};"
"~YA>{~YA};"
"~YI>{~YI};"
"~YU>{~YU};"
"~YE>{~YE};"
"~YO>{~YO};"
// DOUBLE CONSONANTS
"B(B>{~TU};"
"C(K>{~TU};"
"C(C>{~TU};"
"C(Q>{~TU};"
"D(D>{~TU};"
"F(F>{~TU};"
"G(G>{~TU};"
"H(H>{~TU};"
"J(J>{~TU};"
"K(K>{~TU};"
"L(L>{~TU};"
"M(M>{~TU};"
"N(N>{~TU};"
"P(P>{~TU};"
"Q(Q>{~TU};"
"R(R>{~TU};"
"S(SH>{~TU};"
"S(S>{~TU};"
"T(CH>{~TU};"
"T(T>{~TU};"
"V(V>{~TU};"
"W(W>{~TU};"
"X(X>{~TU};"
"Y(Y>{~TU};"
"Z(Z>{~TU};"
// ########################################
// CATCH MISSING VOWELS!
// THESE ARE TO INSURE COMPLETENESS, THAT
// ALL ROMAJI MAPS TO KANA
// ########################################
//* /*
//* "SH>{SI};"
//* "TS>{TU};"
//* "CH>{TI};"
//* "DJ>{DI};"
//* "DZ>{DU};"
//* */
// THE FOLLOWING ARE NOT REALLY NECESSARY, BUT PRODUCE
// SLIGHTLY MORE NATURAL RESULTS.
//masked: "BY>{BI};"
"CY>{SE}{~I};"
"DY>{DE}{~I};"
//masked: "GY>{GI};"
"HY>{HI};"
//masked: "KY>{KI};"
//masked: "MY>{MI};"
//masked: "PY>{PI};"
//masked: "RY>{RI};"
"SY>{SE}{~I};"
"TY>{TE}{~I};"
"ZY>{ZE}{~I};"
// SIMPLE SUBSTITUTIONS USING BACKUP
"C>|K;"
"F>{HU}|~;"
"J>{ZI}|~Y;"
"L>|R;"
"Q>|K;" // BACKUP AND REDO
"V>{VU}|~;"
"W>{^U}|~;"
"X>|KS;"
// WE HAD TO LIST THE LONGER ONES FIRST,
// SO HERE ARE THE ISOLATED CONSONANTS
"B>{BU};"
"D>{DE};"
//masked: "F>{HU};"
"G>{GU};"
"H>{HE};"
//masked: "J>{ZI};"
"K>{KU};"
"M>{^N};"
"N>{^N};"
"P>{PU};"
"R>{RU};"
"S>{SU};"
"T>{TE};"
//masked: "V>{BU};"
//masked: "W>{^U};"
//masked: "X>{KU}{SU};"
"Y>{^I};"
"Z>{ZU};"
// NOW KANA TO ROMAN
"GYA<{GI}{~YA};"
"GYI<{GI}{~I};"
"GYU<{GI}{~YU};"
"GYE<{GI}{~E};"
"GYO<{GI}{~YO};"
"GA<{GA};"
"GI<{GI};"
"GU<{GU};"
"GE<{GE};"
"GO<{GO};"
"KYA<{KI}{~YA};"
"KYI<{KI}{~I};"
"KYU<{KI}{~YU};"
"KYE<{KI}{~E};"
"KYO<{KI}{~YO};"
"KA<{KA};"
"KI<{KI};"
"KU<{KU};"
"KE<{KE};"
"KO<{KO};"
"JA<{ZI}{~YA};"
"JI<{ZI}{~I};"
"JU<{ZI}{~YU};"
"JE<{ZI}{~E};"
"JO<{ZI}{~YO};"
"JI<{ZI};"
"ZA<{ZA};"
"ZI<{ZE}{~I};"
"ZU<{ZU};"
"ZE<{ZE};"
"ZO<{ZO};"
"SHA<{SI}{~YA};"
"SHI<{SI}{~I};"
"SHU<{SI}{~YU};"
"SHE<{SI}{~E};"
"SHO<{SI}{~YO};"
"SHI<{SI};"
"SA<{SA};"
"SI<{SE}{~I};"
"SU<{SU};"
"SE<{SE};"
"SO<{SO};"
"DJA<{DI}{~YA};"
"DJI<{DI}{~I};"
"DJU<{DI}{~YU};"
"DJE<{DI}{~E};"
"DJO<{DI}{~YO};"
"DJI<{DI};"
"DZU<{DU};"
"DA<{DA};"
"DI<{DE}{~I};"
"DU<{DE}{~U};"
"DE<{DE};"
"DO<{DO};"
"CHA<{TI}{~YA};"
"CHI<{TI}{~I};"
"CHU<{TI}{~YU};"
"CHE<{TI}{~E};"
"CHO<{TI}{~YO};"
"CHI<{TI};"
"TSU<{TU};"
"TA<{TA};"
"TI<{TE}{~I};"
"TU<{TE}{~U};"
"TE<{TE};"
"TO<{TO};"
"NYA<{NI}{~YA};"
"NYI<{NI}{~I};"
"NYU<{NI}{~YU};"
"NYE<{NI}{~E};"
"NYO<{NI}{~YO};"
"NA<{NA};"
"NI<{NI};"
"NU<{NU};"
"NE<{NE};"
"NO<{NO};"
"BYA<{BI}{~YA};"
"BYI<{BI}{~I};"
"BYU<{BI}{~YU};"
"BYE<{BI}{~E};"
"BYO<{BI}{~YO};"
"BA<{BA};"
"BI<{BI};"
"BU<{BU};"
"BE<{BE};"
"BO<{BO};"
"PYA<{PI}{~YA};"
"PYI<{PI}{~I};"
"PYU<{PI}{~YU};"
"PYE<{PI}{~E};"
"PYO<{PI}{~YO};"
"PA<{PA};"
"PI<{PI};"
"PU<{PU};"
"PE<{PE};"
"PO<{PO};"
"FA<{HU}{~A};"
"FI<{HU}{~I};"
"FE<{HU}{~E};"
"FO<{HU}{~O};"
"FU<{HU};"
"HA<{HA};"
"HI<{HI};"
"HU<{HE}{~U};"
"HE<{HE};"
"HO<{HO};"
"MYA<{MI}{~YA};"
"MYI<{MI}{~I};"
"MYU<{MI}{~YU};"
"MYE<{MI}{~E};"
"MYO<{MI}{~YO};"
"MA<{MA};"
"MI<{MI};"
"MU<{MU};"
"ME<{ME};"
"MO<{MO};"
"YA<{YA};"
//+ "YE<{YI};"
"YU<{YU};"
//+ "YE<{YE};"
"YO<{YO};"
"RYA<{RI}{~YA};"
"RYI<{RI}{~I};"
"RYU<{RI}{~YU};"
"RYE<{RI}{~E};"
"RYO<{RI}{~YO};"
"RA<{RA};"
"RI<{RI};"
"RU<{RU};"
"RE<{RE};"
"RO<{RO};"
"WA<{WA};"
"WI<{WI};"
"WE<{WE};"
"WO<{WO};"
//+ "WU<{WU};"
"VA<{VU}{~A};"
"VI<{VU}{~I};"
"VE<{VU}{~E};"
"VO<{VU}{~O};"
"VU<{VU};"
// DOUBLED LETTERS
"N''<{^N}({^A};"
"N''<{^N}({^I};"
"N''<{^N}({^U};"
"N''<{^N}({^E};"
"N''<{^N}({^O};"
"N''<{^N}({NA};"
"N''<{^N}({NI};"
"N''<{^N}({NU};"
"N''<{^N}({NE};"
"N''<{^N}({NO};"
"N''<{^N}({YA};"
"N''<{^N}({YU};"
"N''<{^N}({YO};"
"N''<{^N}({^N};"
"N<{^N};"
"N<{~TU}({N-START};"
"M<{~TU}({M-START};"
"W<{~TU}({W-START};"
"Y<{~TU}({Y-START};"
"G<{~TU}({G-START};"
"K<{~TU}({K-START};"
"Z<{~TU}({Z-START};"
"J<{~TU}({J-START};"
"S<{~TU}({S-START};"
"D<{~TU}({D-START};"
"T<{~TU}({T-START};"
"B<{~TU}({B-START};"
"P<{~TU}({P-START};"
"H<{~TU}({H-START};"
"F<{~TU}({F-START};"
"R<{~TU}({R-START};"
"V<{~TU}({V-START};"
"A<{^A};" // MOVED THIS BLOCK DOWN {aliu}
"I<{^I};"
"U<{^U};"
"E<{^E};"
"O<{^O};"
// SMALL FORMS
"~A<{~A};"
"~I<{~I};"
"~U<{~U};"
"~E<{~E};"
"~O<{~O};"
"~KA<{~KA};"
"~KE<{~KE};"
"~YA<{~YA};"
"~YU<{~YU};"
"~YO<{~YO};"
"~TSU<{~TU};"
"~WA<{~WA};"
// LENGTH MARK. LATER, COULD USE CIRCUMFLEX
"A<A){LONG};" // LIU
"E<E){LONG};" // LIU
"I<I){LONG};" // LIU
"O<O){LONG};" // LIU
"U<U){LONG};" // LIU
//#######################################
// HIRAGANA
// These are derived from the above by lowercasing
//#######################################
"a>{^a};"
"ba>{ba};"
"bi>{bi};"
"bu>{bu};"
"be>{be};"
"bo>{bo};"
"by>{bi}|~y;"
"chi>{ti};"
"ch>{ti}|~y;"
"c(i>|s;"
"c(e>|s;"
"da>{da};"
"di>{de}{~i};"
"du>{de}{~u};"
"de>{de};"
"do>{do};"
"dzu>{du};"
"dji>{di};"
"dj>{di}|~y;"
"e>{^e};"
"fu>{hu};"
"ga>{ga};"
"gi>{gi};"
"gu>{gu};"
"ge>{ge};"
"go>{go};"
"gy>{gi}|~y;"
"ha>{ha};"
"hi>{hi};"
"hu>{he}{~u};"
"he>{he};"
"ho>{ho};"
"i>{^i};"
"ji>{zi};"
"ka>{ka};"
"ki>{ki};"
"ku>{ku};"
"ke>{ke};"
"ko>{ko};"
"ky>{ki}|~y;"
"ma>{ma};"
"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};"
"ni>{ni};"
"nu>{nu};"
"ne>{ne};"
"no>{no};"
"ny>{ni}|~y;"
"o>{^o};"
"pa>{pa};"
"pi>{pi};"
"pu>{pu};"
"pe>{pe};"
"po>{po};"
"py>{pi}|~y;"
"ra>{ra};"
"ri>{ri};"
"ru>{ru};"
"re>{re};"
"ro>{ro};"
"ry>{ri}|~y;"
"sa>{sa};"
"si>{se}{~i};"
"su>{su};"
"se>{se};"
"so>{so};"
"shi>{si};"
"sh>{si}|~y;"
"ta>{ta};"
"ti>{te}{~i};"
"tu>{te}{~u};"
"te>{te};"
"to>{to};"
"tsu>{tu};"
//+ "ts>{tu}|~;"
"u>{^u};"
"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}{~i};"
"zu>{zu};"
"ze>{ze};"
"zo>{zo};"
// small forms
"~a>{~a};"
"~i>{~i};"
"~u>{~u};"
"~e>{~e};"
"~o>{~o};"
"~ka>{~ka};"
"~ke>{~ke};"
"~tsu>{~tu};"
"~wa>{~wa};"
"~ya>{~ya};"
"~yi>{~yi};"
"~yu>{~yu};"
"~ye>{~ye};"
"~yo>{~yo};"
// Double Consonants
"b(b>{~tu};"
"c(k>{~tu};"
"c(c>{~tu};"
"c(q>{~tu};"
"d(d>{~tu};"
"f(f>{~tu};"
"g(g>{~tu};"
"h(h>{~tu};"
"j(j>{~tu};"
"k(k>{~tu};"
"l(l>{~tu};"
"m(m>{~tu};"
"n(n>{~tu};"
"p(p>{~tu};"
"q(q>{~tu};"
"r(r>{~tu};"
"s(sh>{~tu};"
"s(s>{~tu};"
"t(ch>{~tu};"
"t(t>{~tu};"
"v(v>{~tu};"
"w(w>{~tu};"
"x(x>{~tu};"
"y(y>{~tu};"
"z(z>{~tu};"
// ########################################
// catch missing vowels!
// These are to insure completeness, that
// all romaji maps to kana
// ########################################
//* /*
//* "sh>{si};"
//* "ts>{tu};"
//* "ch>{ti};"
//* "dj>{di};"
//* "dz>{du};"
//* */
// the following are not really necessary, but produce
// slightly more natural results.
//masked: "by>{bi};"
"cy>{se}{~i};"
"dy>{de}{~i};"
//masked: "gy>{gi};"
"hy>{hi};"
//masked: "ky>{ki};"
//masked: "my>{mi};"
//masked: "py>{pi};"
//masked: "ry>{ri};"
"sy>{se}{~i};"
"ty>{te}{~i};"
"zy>{ze}{~i};"
// simple substitutions using backup
"c>|k;"
"f>{hu}|~;"
"j>{zi}|~y;"
"l>|r;"
"q>|k;" // backup and redo
"v>{vu}|~;"
"w>{^u}|~;"
"x>|ks;"
// We had to list the longer ones first,
// so here are the isolated consonants
"b>{bu};"
"d>{de};"
//masked: "f>{hu};"
"g>{gu};"
"h>{he};"
//masked: "j>{zi};"
"k>{ku};"
"m>{^n};"
"n>{^n};"
"p>{pu};"
"r>{ru};"
"s>{su};"
"t>{te};"
//masked: "v>{bu};"
//masked: "w>{^u};"
//masked: "x>{ku}{su};"
"y>{^i};"
"z>{zu};"
// NOW KANA TO ROMAN
"gya<{gi}{~ya};"
"gyi<{gi}{~i};"
"gyu<{gi}{~yu};"
"gye<{gi}{~e};"
"gyo<{gi}{~yo};"
"ga<{ga};"
"gi<{gi};"
"gu<{gu};"
"ge<{ge};"
"go<{go};"
"kya<{ki}{~ya};"
"kyi<{ki}{~i};"
"kyu<{ki}{~yu};"
"kye<{ki}{~e};"
"kyo<{ki}{~yo};"
"ka<{ka};"
"ki<{ki};"
"ku<{ku};"
"ke<{ke};"
"ko<{ko};"
"ja<{zi}{~ya};"
"ji<{zi}{~i};"
"ju<{zi}{~yu};"
"je<{zi}{~e};"
"jo<{zi}{~yo};"
"ji<{zi};"
"za<{za};"
"zi<{ze}{~i};"
"zu<{zu};"
"ze<{ze};"
"zo<{zo};"
"sha<{si}{~ya};"
"shi<{si}{~i};"
"shu<{si}{~yu};"
"she<{si}{~e};"
"sho<{si}{~yo};"
"shi<{si};"
"sa<{sa};"
"si<{se}{~i};"
"su<{su};"
"se<{se};"
"so<{so};"
"dja<{di}{~ya};"
"dji<{di}{~i};"
"dju<{di}{~yu};"
"dje<{di}{~e};"
"djo<{di}{~yo};"
"dji<{di};"
"dzu<{du};"
"da<{da};"
"di<{de}{~i};"
"du<{de}{~u};"
"de<{de};"
"do<{do};"
"cha<{ti}{~ya};"
"chi<{ti}{~i};"
"chu<{ti}{~yu};"
"che<{ti}{~e};"
"cho<{ti}{~yo};"
"chi<{ti};"
"tsu<{tu};"
"ta<{ta};"
"ti<{te}{~i};"
"tu<{te}{~u};"
"te<{te};"
"to<{to};"
"nya<{ni}{~ya};"
"nyi<{ni}{~i};"
"nyu<{ni}{~yu};"
"nye<{ni}{~e};"
"nyo<{ni}{~yo};"
"na<{na};"
"ni<{ni};"
"nu<{nu};"
"ne<{ne};"
"no<{no};"
"bya<{bi}{~ya};"
"byi<{bi}{~i};"
"byu<{bi}{~yu};"
"bye<{bi}{~e};"
"byo<{bi}{~yo};"
"ba<{ba};"
"bi<{bi};"
"bu<{bu};"
"be<{be};"
"bo<{bo};"
"pya<{pi}{~ya};"
"pyi<{pi}{~i};"
"pyu<{pi}{~yu};"
"pye<{pi}{~e};"
"pyo<{pi}{~yo};"
"pa<{pa};"
"pi<{pi};"
"pu<{pu};"
"pe<{pe};"
"po<{po};"
"fa<{hu}{~a};"
"fi<{hu}{~i};"
"fe<{hu}{~e};"
"fo<{hu}{~o};"
"fu<{hu};"
"ha<{ha};"
"hi<{hi};"
"hu<{he}{~u};"
"he<{he};"
"ho<{ho};"
"mya<{mi}{~ya};"
"myi<{mi}{~i};"
"myu<{mi}{~yu};"
"mye<{mi}{~e};"
"myo<{mi}{~yo};"
"ma<{ma};"
"mi<{mi};"
"mu<{mu};"
"me<{me};"
"mo<{mo};"
"ya<{ya};"
//+ "ye<{yi};"
"yu<{yu};"
//+ "ye<{ye};"
"yo<{yo};"
"rya<{ri}{~ya};"
"ryi<{ri}{~i};"
"ryu<{ri}{~yu};"
"rye<{ri}{~e};"
"ryo<{ri}{~yo};"
"ra<{ra};"
"ri<{ri};"
"ru<{ru};"
"re<{re};"
"ro<{ro};"
"wa<{wa};"
"wi<{wi};"
"we<{we};"
"wo<{wo};"
//+ "wu<{wu};"
"va<{vu}{~a};"
"vi<{vu}{~i};"
"ve<{vu}{~e};"
"vo<{vu}{~o};"
"vu<{vu};"
// Doubled letters
"n''<{^n}({^a};"
"n''<{^n}({^i};"
"n''<{^n}({^u};"
"n''<{^n}({^e};"
"n''<{^n}({^o};"
"n''<{^n}({na};"
"n''<{^n}({ni};"
"n''<{^n}({nu};"
"n''<{^n}({ne};"
"n''<{^n}({no};"
"n''<{^n}({ya};"
"n''<{^n}({yu};"
"n''<{^n}({yo};"
"n''<{^n}({^n};"
"n<{^n};"
"n<{~tu}({n-start};"
"m<{~tu}({m-start};"
"w<{~tu}({w-start};"
"y<{~tu}({y-start};"
"g<{~tu}({g-start};"
"k<{~tu}({k-start};"
"z<{~tu}({z-start};"
"j<{~tu}({j-start};"
"s<{~tu}({s-start};"
"d<{~tu}({d-start};"
"t<{~tu}({t-start};"
"b<{~tu}({b-start};"
"p<{~tu}({p-start};"
"h<{~tu}({h-start};"
"f<{~tu}({f-start};"
"r<{~tu}({r-start};"
"v<{~tu}({v-start};"
"a<{^a};" // Moved this block down {aliu}
"i<{^i};"
"u<{^u};"
"e<{^e};"
"o<{^o};"
// small forms
"~a<{~a};"
"~i<{~i};"
"~u<{~u};"
"~e<{~e};"
"~o<{~o};"
//masked: "~ka<{~ka};" ({~ka} is an alias for {~KA})
//masked: "~ke<{~ke};" ({~ke} is an alias for {~KE})
"~ya<{~ya};"
"~yu<{~yu};"
"~yo<{~yo};"
"~tsu<{~tu};"
"~wa<{~wa};"
// length mark. Later, could use circumflex
"a<a){long};" // Liu
"e<e){long};" // Liu
"i<i){long};" // Liu
"o<o){long};" // Liu
"u<u){long};" // Liu
//#######################################
// Non-shared stuff goes here
"~>;" // remove if not used
"{quote}>;" // remove if not used
//+ "<{quote};"
"->{long};"
}
}