From 3fa3ba4abaa8280e61c157f2354306cda4bb50d7 Mon Sep 17 00:00:00 2001 From: DualFroz Date: Mon, 24 Aug 2026 12:25:00 +0200 Subject: [PATCH] feat(bytecode): add opcode set --- src/main/kotlin/lumen/bytecode/Opcode.kt | 55 ++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/kotlin/lumen/bytecode/Opcode.kt diff --git a/src/main/kotlin/lumen/bytecode/Opcode.kt b/src/main/kotlin/lumen/bytecode/Opcode.kt new file mode 100644 index 0000000..ea1d18c --- /dev/null +++ b/src/main/kotlin/lumen/bytecode/Opcode.kt @@ -0,0 +1,55 @@ +package lumen.bytecode + +enum class Opcode { + Constant, + Nil, + True, + False, + Pop, + + Add, + Sub, + Mul, + Div, + Mod, + Negate, + + Equal, + NotEqual, + Less, + LessEqual, + Greater, + GreaterEqual, + Not, + + GetLocal, + SetLocal, + GetGlobal, + SetGlobal, + DefineGlobal, + GetUpvalue, + SetUpvalue, + + Jump, + JumpIfFalse, + Loop, + + Call, + Invoke, + Closure, + CloseUpvalue, + Return, + + BuildList, + BuildMap, + IndexGet, + IndexSet, + + GetIter, + ForIter; + + companion object { + private val values = entries.toTypedArray() + fun from(ordinal: Int): Opcode = values[ordinal] + } +}