2024-11-01 13:06:28 +01:00
|
|
|
export type Ins = Ops | number;
|
|
|
|
export type Program = Ins[];
|
|
|
|
|
2024-11-08 09:24:09 +01:00
|
|
|
export type Ops = typeof Ops;
|
2024-11-01 13:06:28 +01:00
|
|
|
export const Ops = {
|
|
|
|
Nop: 0,
|
|
|
|
PushNull: 1,
|
|
|
|
PushInt: 2,
|
|
|
|
PushString: 3,
|
|
|
|
PushArray: 4,
|
|
|
|
PushStruct: 5,
|
|
|
|
PushPtr: 6,
|
|
|
|
Pop: 7,
|
|
|
|
LoadLocal: 8,
|
|
|
|
StoreLocal: 9,
|
|
|
|
Call: 10,
|
|
|
|
Return: 11,
|
|
|
|
Jump: 12,
|
|
|
|
JumpIfNotZero: 13,
|
|
|
|
Add: 14,
|
|
|
|
Subtract: 15,
|
|
|
|
Multiply: 16,
|
|
|
|
Divide: 17,
|
|
|
|
Remainder: 18,
|
|
|
|
Equal: 19,
|
|
|
|
LessThan: 20,
|
|
|
|
And: 21,
|
|
|
|
Or: 22,
|
|
|
|
Xor: 23,
|
|
|
|
Not: 24,
|
|
|
|
} as const;
|