transcendental-lisp/src/main/kotlin/terminal/ControlSequenceLookup.kt

15 lines
481 B
Kotlin

package terminal
import terminal.ControlSequence.NullControlSequence
import terminal.SelectGraphicRendition.Companion.SGR_COMMAND
class ControlSequenceLookup {
private val commands = mapOf(SGR_COMMAND to SelectGraphicRendition.values().associateBy({ it.code }, { it }))
operator fun get(command: Char, code: String): ControlSequence {
val codes = commands.getOrDefault(command, emptyMap())
return codes.getOrDefault(code, NullControlSequence())
}
}