getPhonemes function
Implementation
PhonemesResult getPhonemes(String char) {
var initial = '';
var medial = '';
var finale = '';
var initialOffset = -1;
var medialOffset = -1;
var finaleOffset = -1;
if (onlyInitialKoreanRegex.hasMatch(char)) {
initial = char;
initialOffset = initials.indexOf(initial);
} else if (completedKoreanRegex.hasMatch(char)) {
var temp = char.runes.first - base;
finaleOffset = temp % finales.length;
medialOffset = ((temp - finaleOffset) ~/ finales.length) % medials.length;
initialOffset = ((temp - finaleOffset) ~/ finales.length - medialOffset) ~/
medials.length;
initial = initials[initialOffset];
medial = medials[medialOffset];
finale = finales[finaleOffset];
}
return PhonemesResult(
initial: initial,
initialOffset: initialOffset,
medial: medial,
medialOffset: medialOffset,
finale: finale,
finaleOffset: finaleOffset);
}