generated from rnentjes/kotlin-server-web-undertow
38 lines
898 B
Kotlin
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)
|
|
}
|
|
}
|