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;