#pragma once #include namespace sliger { // NOTICE: keep up to date with src/arch.ts enum class Op : uint32_t { Nop = 0x00, PushNull = 0x01, PushInt = 0x02, PushBool = 0x03, PushString = 0x04, PushPtr = 0x05, Pop = 0x06, ReserveStatic = 0x07, LoadStatic = 0x08, StoreStatic = 0x09, LoadLocal = 0x0a, StoreLocal = 0x0b, Call = 0x0c, Return = 0x0d, Jump = 0x0e, JumpIfTrue = 0x0f, Builtin = 0x10, Add = 0x20, Subtract = 0x21, Multiply = 0x22, Divide = 0x23, Remainder = 0x24, Equal = 0x25, LessThan = 0x26, And = 0x27, Or = 0x28, Xor = 0x29, Not = 0x2a, SourceMap = 0x30, }; enum class Builtin : uint32_t { StringConcat = 0x10, StringEqual = 0x11, ArraySet = 0x20, StructSet = 0x30, }; }