generated from rnentjes/kotlin-server-web-undertow
Refactor: Restructure project package hierarchy and add initial implementation for assembler instructions, shell commands, and exception handling.
This commit is contained in:
44
src/jvmMain/kotlin/mtmc/asm/instructions/ALUOp.kt
Normal file
44
src/jvmMain/kotlin/mtmc/asm/instructions/ALUOp.kt
Normal file
@@ -0,0 +1,44 @@
|
||||
package mtmc.asm.instructions
|
||||
|
||||
import java.util.*
|
||||
|
||||
enum class ALUOp(val opCode: Int, val isUnary: Boolean) {
|
||||
ADD(0x0000, false),
|
||||
SUB(0x0001, false),
|
||||
MUL(0x0002, false),
|
||||
DIV(0x0003, false),
|
||||
MOD(0x0004, false),
|
||||
AND(0x0005, false),
|
||||
OR(0x0006, false),
|
||||
XOR(0x0007, false),
|
||||
SHL(0x0008, false),
|
||||
SHR(0x0009, false),
|
||||
MIN(0x000A, false),
|
||||
MAX(0x000B, false),
|
||||
NOT(0x000C, true),
|
||||
LNOT(0x000D, true),
|
||||
NEG(0x000E, true),
|
||||
IMM(0x000F, true);
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun toInteger(instruction: String): Int {
|
||||
return valueOf(instruction.uppercase(Locale.getDefault())).opCode
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun fromInt(opCode: Short): String {
|
||||
return entries[opCode.toInt()].name.lowercase(Locale.getDefault())
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun isALUOp(op: String): Boolean {
|
||||
try {
|
||||
val aluOp = valueOf(op.uppercase(Locale.getDefault()))
|
||||
return true
|
||||
} catch (e: IllegalArgumentException) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user