2024-11-08 11:22:42 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
|
|
|
namespace sliger {
|
|
|
|
|
|
|
|
// NOTICE: keep up to date with src/arch.ts
|
|
|
|
|
|
|
|
enum class Op : uint32_t {
|
2024-12-10 23:18:51 +00:00
|
|
|
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,
|
2024-12-17 01:10:11 +00:00
|
|
|
Duplicate = 0x11,
|
|
|
|
Swap = 0x12,
|
2024-12-10 23:18:51 +00:00
|
|
|
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 {
|
2024-12-22 01:30:23 +00:00
|
|
|
Exit = 0x00,
|
|
|
|
IntToString = 0x01,
|
2024-12-10 23:18:51 +00:00
|
|
|
StringConcat = 0x10,
|
|
|
|
StringEqual = 0x11,
|
2024-12-12 15:07:59 +00:00
|
|
|
StringCharAt = 0x12,
|
|
|
|
StringLength = 0x13,
|
|
|
|
StringPushChar = 0x14,
|
2024-12-13 15:03:01 +00:00
|
|
|
StringToInt = 0x15,
|
2024-12-12 15:07:59 +00:00
|
|
|
ArrayNew = 0x20,
|
|
|
|
ArraySet = 0x21,
|
|
|
|
ArrayPush = 0x22,
|
|
|
|
ArrayAt = 0x23,
|
|
|
|
ArrayLength = 0x24,
|
2024-12-31 02:38:38 +00:00
|
|
|
StructNew = 0x30,
|
|
|
|
StructSet = 0x31,
|
|
|
|
StructAt = 0x32,
|
2024-12-11 12:37:26 +00:00
|
|
|
Print = 0x40,
|
2024-12-13 19:05:27 +00:00
|
|
|
FileOpen = 0x41,
|
|
|
|
FileClose = 0x42,
|
|
|
|
FileWriteString = 0x43,
|
2024-12-13 19:29:06 +00:00
|
|
|
FileReadChar = 0x44,
|
|
|
|
FileReadToString = 0x45,
|
|
|
|
FileFlush = 0x46,
|
|
|
|
FileEof = 0x47,
|
2024-11-08 11:22:42 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|