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, Builtin: 25, ReserveStatics: 26, LoadStatic: 27, StoreStatic: 28, } as const; export type Builtins = typeof Builtins; export const Builtins = { StringAdd: 0, } as const;