slige/compiler/arch.ts
2024-11-18 15:01:33 +01:00

34 lines
571 B
TypeScript

export type Program = Ins[];
export type Ins = Ops | number;
// NOTICE: keep up to date with runtime/arch.hpp
export type Ops = typeof Ops;
export const Ops = {
Nop: 0,
PushNull: 1,
PushInt: 2,
PushBool: 3,
PushString: 4,
PushPtr: 5,
Pop: 6,
LoadLocal: 7,
StoreLocal: 8,
Call: 9,
Return: 10,
Jump: 11,
JumpIfTrue: 12,
Add: 13,
Subtract: 14,
Multiply: 15,
Divide: 16,
Remainder: 17,
Equal: 18,
LessThan: 19,
And: 20,
Or: 21,
Xor: 22,
Not: 23,
SourceMap: 24,
} as const;