Fix dubeolsik automata

This commit is contained in:
Lee0701 2020-07-05 15:54:54 +09:00
parent f4f47786eb
commit 6e8c17c7be

View file

@ -51,16 +51,18 @@ class HangulCombiner : Combiner {
is HangulJamo.Consonant -> {
val initial = jamo.toInitial()
val final = jamo.toFinal()
if(currentSyllable.initial != null && currentSyllable.medial != null) {
if(currentSyllable.final == null) {
if(currentSyllable.initial != null) {
val combination = COMBINATION_TABLE_DUBEOLSIK[currentSyllable.initial.codePoint to (initial?.codePoint ?: -1)]
if(combination != null) {
history += currentSyllable.copy(initial = HangulJamo.Initial(combination))
} else {
history += currentSyllable.copy(final = final)
if(final != null) history += currentSyllable.copy(final = final)
else {
composingWord.append(currentSyllable.string)
history.clear()
history += HangulSyllable(initial = initial)
}
} else {
history += currentSyllable.copy(final = final)
}
} else {
val pair = currentSyllable.final.codePoint to (final?.codePoint ?: -1)
@ -73,6 +75,11 @@ class HangulCombiner : Combiner {
history += HangulSyllable(initial = initial)
}
}
} else {
composingWord.append(currentSyllable.string)
history.clear()
history += HangulSyllable(initial = initial)
}
}
is HangulJamo.Vowel -> {
val medial = jamo.toMedial()