mirror of
https://github.com/GayPizzaSpecifications/pork.git
synced 2025-10-06 14:29:39 +00:00
18 lines
387 B
Kotlin
18 lines
387 B
Kotlin
package gay.pizza.pork.bytecode
|
|
|
|
import kotlinx.serialization.Serializable
|
|
|
|
@Serializable
|
|
data class SymbolTable(
|
|
val symbols: List<SymbolInfo>
|
|
) {
|
|
fun lookup(inst: UInt): Pair<SymbolInfo, UInt>? {
|
|
val symbol = symbols.firstOrNull {
|
|
(inst >= it.offset) && inst < (it.offset + it.size)
|
|
} ?: return null
|
|
|
|
val rel = inst - symbol.offset
|
|
return symbol to rel
|
|
}
|
|
}
|