Files
mtmc-web/src/commonMain/kotlin/mtmc/asm/data/Data.kt

38 lines
898 B
Kotlin

package mtmc.asm.data
import mtmc.asm.ASMElement
import mtmc.asm.Assembler
import mtmc.tokenizer.MTMCToken
class Data(labels: MutableList<MTMCToken>, lineNumber: Int) : ASMElement(labels, lineNumber) {
var valueToken: MTMCToken? = null
private var value: ByteArray = ByteArray(0)
override var sizeInBytes: Int
get() = value.size
set(value) {}
fun genData(dataBytes: ByteArray, assembler: Assembler) {
val offset = location - assembler.instructionsSizeInBytes
for (i in 0..<sizeInBytes) {
val dataByte = value[i]
dataBytes[offset + i] = dataByte
}
}
fun setValue(src: MTMCToken, value: ByteArray) {
this.valueToken = src
this.value = value
}
override fun toString(): String {
return "Data{" +
"value=" + value.contentToString() +
'}'
}
override fun addError(err: String) {
addError(labels.last(), err)
}
}