converters top-level property
Implementation
final Map<String, Converter> converters = {
'a': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_A];
case Location.INITIAL:
return [
Menksoft.INIT_A,
];
case Location.MEDIAL:
return [
context.isPreviousRoundAnytime ? Menksoft.MEDI_A_BP : Menksoft.MEDI_A,
];
case Location.FINAL:
return [
if (context.isPreviousMvs)
Menksoft.FINA_A_MVS
else if (context.isPreviousRoundAnytime)
Menksoft.FINA_A_BP
else
Menksoft.FINA_A,
];
}
},
'e': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_E];
case Location.INITIAL:
return [
Menksoft.INIT_E,
];
case Location.MEDIAL:
return [
if (context.isPreviousRoundAnytime || context.isPreviousHG)
Menksoft.MEDI_E_BP
else
Menksoft.MEDI_E,
];
case Location.FINAL:
return [
if (context.isPreviousMvs)
Menksoft.FINA_E_MVS
else if (context.isPreviousRoundAnytime || context.isPreviousHG)
Menksoft.FINA_E_BP
else
Menksoft.FINA_E,
];
}
},
'i': (context) {
switch (context.location) {
case Location.ISOLATE:
return [
Menksoft.ISOL_I,
Menksoft.ISOL_I_SUFFIX,
];
case Location.INITIAL:
return [
Menksoft.INIT_I,
Menksoft.MEDI_I_SUFFIX,
];
case Location.MEDIAL:
return [
if (context.latin.endsWith('naima'))
Menksoft.MEDI_I
else if ('a' == context.previousLetter ||
'e' == context.previousLetter ||
'o' == context.previousLetter ||
('u' == context.previousLetter &&
!context.needToothU(context.index - 1)))
Menksoft.MEDI_I_DOUBLE_TOOTH
else if (context.isPreviousRoundAnytime)
Menksoft.MEDI_I_BP
else
Menksoft.MEDI_I
];
case Location.FINAL:
return [
if (context.isPreviousRoundAnytime || context.isPreviousHG)
Menksoft.FINA_I_BP
else
Menksoft.FINA_I,
];
}
},
'o': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_O];
case Location.INITIAL:
return [Menksoft.INIT_O];
case Location.MEDIAL:
return [
context.isPreviousRoundAnytime ? Menksoft.MEDI_O_BP : Menksoft.MEDI_O,
];
case Location.FINAL:
return [
if (context.isPreviousRoundAnytime)
Menksoft.FINA_O_BP
else
Menksoft.FINA_O,
if (!context.isPreviousRoundAnytime) Menksoft.FINA_O_FVS1
];
}
},
'u': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_UE];
case Location.INITIAL:
return [Menksoft.INIT_UE];
case Location.MEDIAL:
return [
if ((context.isPreviousRoundAnytime || context.isPreviousHG) &&
context.needToothU(context.index))
Menksoft.MEDI_UE_FVS1_BP
else if (context.needToothU(context.index))
Menksoft.MEDI_UE_FVS1
else if (context.isPreviousRoundAnytime || context.isPreviousHG)
Menksoft.MEDI_U_BP
else
Menksoft.MEDI_U,
];
case Location.FINAL:
return [
if (context.isPreviousRoundAnytime || context.isPreviousHG)
Menksoft.FINA_UE_BP
else
Menksoft.FINA_UE,
if (context.isPreviousRoundAnytime || context.isPreviousHG)
Menksoft.FINA_UE_FVS1_BP
else
Menksoft.FINA_UE_FVS1,
];
}
},
'E': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_EE];
case Location.INITIAL:
return [Menksoft.INIT_EE];
case Location.MEDIAL:
return [Menksoft.MEDI_EE];
case Location.FINAL:
return [Menksoft.FINA_EE];
}
},
'n': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_NA];
case Location.INITIAL:
return [Menksoft.INIT_NA_TOOTH];
case Location.MEDIAL:
return [
if (context.canUseMvs)
Menksoft.MEDI_NA_FVS2
else if (context.isConsonant(context.nextLetter) ||
context.nextLetter == 'A' ||
context.nextLetter == 'O' ||
context.nextLetter == 'U')
Menksoft.MEDI_NA_TOOTH
else
Menksoft.MEDI_NA_FVS1_TOOTH,
// todo MEDI_NA_TOOTH in foreign word
// if (context.findForeignLetterPrevious(context.index))
// Menksoft.MEDI_NA_TOOTH
];
case Location.FINAL:
return [Menksoft.FINA_NA];
}
},
'N': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_ANG];
case Location.INITIAL:
return [Menksoft.INIT_ANG_TOOTH];
case Location.MEDIAL:
return [Menksoft.MEDI_ANG_TOOTH];
case Location.FINAL:
return [Menksoft.FINA_ANG];
}
},
'b': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_BA];
case Location.INITIAL:
return [
if (context.isNextOU) Menksoft.INIT_BA_OU else Menksoft.INIT_BA,
];
case Location.MEDIAL:
return [
if (context.isNextOU) Menksoft.MEDI_BA_OU else Menksoft.MEDI_BA_TOOTH,
];
case Location.FINAL:
return [Menksoft.FINA_BA];
}
},
'p': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_PA];
case Location.INITIAL:
return [
if (context.isNextOU) Menksoft.INIT_PA_OU else Menksoft.INIT_PA,
];
case Location.MEDIAL:
return [
if (context.isNextOU) Menksoft.MEDI_PA_OU else Menksoft.MEDI_PA_TOOTH,
];
case Location.FINAL:
return [Menksoft.FINA_PA];
}
},
'h': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_QA];
case Location.INITIAL:
return [
if (context.isNextMale)
Menksoft.INIT_QA_TOOTH
else if (context.isNextOU)
Menksoft.INIT_QA_FEM_OU
else
Menksoft.INIT_QA_FEM,
];
case Location.MEDIAL:
return [
if (context.isNextMale && context.canUseMvs)
Menksoft.MEDI_QA_FVS3
else if (context.isNextMale)
Menksoft.MEDI_QA_TOOTH
else if (context.isNextOU)
Menksoft.MEDI_QA_FEM_OU
else
Menksoft.MEDI_QA_FEM,
];
case Location.FINAL:
return [Menksoft.FINA_QA];
}
},
'g': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_GA];
case Location.INITIAL:
return [
if (context.isNextMale)
Menksoft.INIT_GA_TOOTH
else if (context.isNextOU)
Menksoft.INIT_GA_FEM_OU
else
Menksoft.INIT_GA_FEM,
];
case Location.MEDIAL:
return [
if (context.isConsonant(context.nextLetter) &&
(context.findMaleLetterFromPrevious(context.index - 1) ||
context.isMaleWord()) &&
!context.findForeignLetterPrevious(context.index - 1))
Menksoft.MEDI_GA
else if (context.isConsonant(context.nextLetter))
Menksoft.MEDI_GA_FVS3_TOOTH
else if (context.isNextMale && context.canUseMvs)
Menksoft.MEDI_GA_FVS2
else if (context.isNextMale)
Menksoft.MEDI_GA_FVS1_TOOTH
else if (context.isNextOU)
Menksoft.MEDI_GA_FEM_OU
else
Menksoft.MEDI_GA_FEM,
];
case Location.FINAL:
return [
if (context.findMaleLetterFromPrevious(context.index - 1) &&
!context.findForeignLetterPrevious(context.index - 1))
Menksoft.FINA_GA
else
Menksoft.FINA_GA_FVS2
];
}
},
'm': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_MA];
case Location.INITIAL:
return [Menksoft.INIT_MA_TOOTH];
case Location.MEDIAL:
return [
if (context.isPreviousRoundAnytime ||
context.previousLetter == 'N' ||
context.previousCode == Menksoft.MEDI_GA_FVS3_TOOTH)
Menksoft.MEDI_MA_BP
else
Menksoft.MEDI_MA_TOOTH,
if (context.canUseMvs) Menksoft.FINA_MA,
];
case Location.FINAL:
return [Menksoft.FINA_MA];
}
},
'l': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_LA];
case Location.INITIAL:
return [Menksoft.INIT_LA_TOOTH];
case Location.MEDIAL:
return [
if (context.canUseMvs) Menksoft.FINA_LA,
if (context.isPreviousRoundAnytime ||
context.previousLetter == 'N' ||
context.previousCode == Menksoft.MEDI_GA_FVS3_TOOTH)
Menksoft.MEDI_LA_BP
else
Menksoft.MEDI_LA_TOOTH,
];
case Location.FINAL:
return [Menksoft.FINA_LA];
}
},
's': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_SA];
case Location.INITIAL:
return [Menksoft.INIT_SA_TOOTH];
case Location.MEDIAL:
return [Menksoft.MEDI_SA_TOOTH];
case Location.FINAL:
return [Menksoft.FINA_SA];
}
},
'x': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_SHA];
case Location.INITIAL:
return [Menksoft.INIT_SHA_TOOTH];
case Location.MEDIAL:
return [Menksoft.MEDI_SHA_TOOTH];
case Location.FINAL:
return [Menksoft.FINA_SHA];
}
},
't': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_TA];
case Location.INITIAL:
return [Menksoft.INIT_TA_TOOTH];
case Location.MEDIAL:
return [
Menksoft.MEDI_TA,
Menksoft.MEDI_TA_FVS1_TOOTH,
];
case Location.FINAL:
return [Menksoft.FINA_TA];
}
},
'd': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_DA];
case Location.INITIAL:
return [Menksoft.INIT_DA_TOOTH, Menksoft.INIT_DA_FVS1];
case Location.MEDIAL:
return [
if (context.isConsonant(context.nextLetter))
Menksoft.MEDI_DA
else
Menksoft.MEDI_DA_FVS1,
];
case Location.FINAL:
return [Menksoft.FINA_DA, Menksoft.FINA_DA_FVS1];
}
},
'q': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_CHA];
case Location.INITIAL:
return [Menksoft.INIT_CHA];
case Location.MEDIAL:
return [Menksoft.MEDI_CHA];
case Location.FINAL:
return [Menksoft.FINA_CHA];
}
},
'j': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_JA];
case Location.INITIAL:
return [Menksoft.INIT_JA_TOOTH];
case Location.MEDIAL:
return [Menksoft.MEDI_JA];
case Location.FINAL:
return [Menksoft.FINA_JA];
}
},
'y': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_YA];
case Location.INITIAL:
return [Menksoft.INIT_YA];
case Location.MEDIAL:
return [
if (context.canUseMvs) Menksoft.MEDI_YA_FVS2,
Menksoft.MEDI_YA_FVS1,
];
case Location.FINAL:
return [Menksoft.FINA_JA];
}
},
'r': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_RA];
case Location.INITIAL:
return [Menksoft.INIT_RA_TOOTH];
case Location.MEDIAL:
return [
Menksoft.MEDI_RA_TOOTH,
if (context.canUseMvs) Menksoft.FINA_RA,
];
case Location.FINAL:
return [Menksoft.FINA_RA];
}
},
'w': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_WA];
case Location.INITIAL:
return [Menksoft.INIT_WA];
case Location.MEDIAL:
return [
Menksoft.MEDI_WA,
if (context.canUseMvs) Menksoft.FINA_WA_FVS1,
];
case Location.FINAL:
return [Menksoft.FINA_WA];
}
},
'f': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_FA];
case Location.INITIAL:
return [
if (context.isNextOU) Menksoft.INIT_FA_OU else Menksoft.INIT_FA
];
case Location.MEDIAL:
return [
if (context.isNextOU) Menksoft.MEDI_FA_OU else Menksoft.MEDI_FA_TOOTH
];
case Location.FINAL:
return [Menksoft.FINA_FA];
}
},
'k': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_KA];
case Location.INITIAL:
return [
if (context.isNextOU) Menksoft.INIT_KA_OU else Menksoft.INIT_KA
];
case Location.MEDIAL:
return [
if (context.isNextOU) Menksoft.MEDI_KA_OU else Menksoft.MEDI_KA_TOOTH,
];
case Location.FINAL:
return [Menksoft.FINA_KA];
}
},
'K': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_KHA];
case Location.INITIAL:
return [
if (context.isNextOU) Menksoft.INIT_KHA_OU else Menksoft.INIT_KHA
];
case Location.MEDIAL:
return [
if (context.isNextOU)
Menksoft.MEDI_KHA_OU
else
Menksoft.MEDI_KHA_TOOTH,
];
case Location.FINAL:
return [Menksoft.FINA_KHA];
}
},
'c': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_TSA];
case Location.INITIAL:
return [Menksoft.INIT_TSA];
case Location.MEDIAL:
return [Menksoft.MEDI_TSA];
case Location.FINAL:
return [Menksoft.FINA_TSA];
}
},
'z': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_ZA];
case Location.INITIAL:
return [Menksoft.INIT_ZA];
case Location.MEDIAL:
return [Menksoft.MEDI_ZA];
case Location.FINAL:
return [Menksoft.FINA_ZA];
}
},
'H': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_HAA];
case Location.INITIAL:
return [Menksoft.INIT_HAA];
case Location.MEDIAL:
return [Menksoft.MEDI_HAA];
case Location.FINAL:
return [Menksoft.FINA_HAA];
}
},
'R': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_ZRA];
case Location.INITIAL:
return [Menksoft.INIT_ZRA];
case Location.MEDIAL:
return [Menksoft.MEDI_ZRA];
case Location.FINAL:
return [Menksoft.FINA_ZRA];
}
},
'L': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_LHA];
case Location.INITIAL:
return [Menksoft.INIT_LHA];
case Location.MEDIAL:
return [
if (context.isPreviousRoundAnytime ||
context.previousLetter == 'N' ||
context.previousCode == Menksoft.MEDI_GA_FVS3_TOOTH)
Menksoft.MEDI_LHA_BP
else
Menksoft.MEDI_LHA
];
case Location.FINAL:
return [
if (context.isPreviousRoundAnytime ||
context.previousLetter == 'N' ||
context.previousCode == Menksoft.MEDI_GA_FVS3_TOOTH)
Menksoft.FINA_LHA_BP
else
Menksoft.FINA_LHA
];
}
},
'Z': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_ZHI];
case Location.INITIAL:
return [Menksoft.INIT_ZHI];
case Location.MEDIAL:
return [Menksoft.MEDI_ZHI];
case Location.FINAL:
return [Menksoft.FINA_ZHI];
}
},
'C': (context) {
switch (context.location) {
case Location.ISOLATE:
return [Menksoft.ISOL_CHI];
case Location.INITIAL:
return [Menksoft.INIT_CHI];
case Location.MEDIAL:
return [Menksoft.MEDI_CHI];
case Location.FINAL:
return [Menksoft.FINA_CHI];
}
},
...uncommonChars,
};