mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-28 18:48:09 +00:00
Fix dubeolsik automata
This commit is contained in:
parent
f4f47786eb
commit
6e8c17c7be
1 changed files with 20 additions and 13 deletions
|
@ -51,27 +51,34 @@ class HangulCombiner : Combiner {
|
||||||
is HangulJamo.Consonant -> {
|
is HangulJamo.Consonant -> {
|
||||||
val initial = jamo.toInitial()
|
val initial = jamo.toInitial()
|
||||||
val final = jamo.toFinal()
|
val final = jamo.toFinal()
|
||||||
if(currentSyllable.final == null) {
|
if(currentSyllable.initial != null && currentSyllable.medial != null) {
|
||||||
if(currentSyllable.initial != null) {
|
if(currentSyllable.final == null) {
|
||||||
val combination = COMBINATION_TABLE_DUBEOLSIK[currentSyllable.initial.codePoint to (initial?.codePoint ?: -1)]
|
val combination = COMBINATION_TABLE_DUBEOLSIK[currentSyllable.initial.codePoint to (initial?.codePoint ?: -1)]
|
||||||
if(combination != null) {
|
if(combination != null) {
|
||||||
history += currentSyllable.copy(initial = HangulJamo.Initial(combination))
|
history += currentSyllable.copy(initial = HangulJamo.Initial(combination))
|
||||||
} else {
|
} 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 {
|
} else {
|
||||||
history += currentSyllable.copy(final = final)
|
val pair = currentSyllable.final.codePoint to (final?.codePoint ?: -1)
|
||||||
|
val combination = COMBINATION_TABLE_DUBEOLSIK[pair]
|
||||||
|
if(combination != null) {
|
||||||
|
history += currentSyllable.copy(final = HangulJamo.Final(combination, combinationPair = pair))
|
||||||
|
} else {
|
||||||
|
composingWord.append(currentSyllable.string)
|
||||||
|
history.clear()
|
||||||
|
history += HangulSyllable(initial = initial)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val pair = currentSyllable.final.codePoint to (final?.codePoint ?: -1)
|
composingWord.append(currentSyllable.string)
|
||||||
val combination = COMBINATION_TABLE_DUBEOLSIK[pair]
|
history.clear()
|
||||||
if(combination != null) {
|
history += HangulSyllable(initial = initial)
|
||||||
history += currentSyllable.copy(final = HangulJamo.Final(combination, combinationPair = pair))
|
|
||||||
} else {
|
|
||||||
composingWord.append(currentSyllable.string)
|
|
||||||
history.clear()
|
|
||||||
history += HangulSyllable(initial = initial)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is HangulJamo.Vowel -> {
|
is HangulJamo.Vowel -> {
|
||||||
|
|
Loading…
Add table
Reference in a new issue