Skip to content

This site describes solve-engine as it is on main: 2.43.0, which npm does not have yet. npm installs 2.40.0, so a page may show an answer that version does not give yet.

OpCode

Defined in: packages/engine/src/parser/OpCode.ts:15

The VM’s bytecode instruction set.

Emitted by parselets (via BytecodeBuilder) during parsing and consumed by the VM’s dispatch loop during execution. Values are grouped into numeric bands by category (0-9 stack ops, 10-19 push-literal, 20-29 arithmetic, …) purely for readability, the VM dispatches on the exact numeric value, not the band.

Third-party packages emit CALL_PLUGIN (with a plugin-function index from allocatePluginFunctionIndex) to invoke their own logic see IEnginePackage.pluginFunctions. The other opcodes are used internally by the built-in packages’ parselets.

ADD: 20;

Defined in: packages/engine/src/parser/OpCode.ts:39


AS_RATE: 163;

Defined in: packages/engine/src/parser/OpCode.ts:189


BIND_UNKNOWN: 159;

Defined in: packages/engine/src/parser/OpCode.ts:166


BIT_AND: 33;

Defined in: packages/engine/src/parser/OpCode.ts:58


BIT_NOT: 36;

Defined in: packages/engine/src/parser/OpCode.ts:61


BIT_OR: 34;

Defined in: packages/engine/src/parser/OpCode.ts:59


BIT_XOR: 35;

Defined in: packages/engine/src/parser/OpCode.ts:60


CALL_AS_CONVERTER: 145;

Defined in: packages/engine/src/parser/OpCode.ts:136


CALL_BUILTIN: 51;

Defined in: packages/engine/src/parser/OpCode.ts:73


CALL_PLUGIN: 50;

Defined in: packages/engine/src/parser/OpCode.ts:72


CALL_PLUGIN_WIDE: 161;

Defined in: packages/engine/src/parser/OpCode.ts:182


CALL_USER_FUNCTION: 151;

Defined in: packages/engine/src/parser/OpCode.ts:147


CLOCK_TIME_TODAY: 120;

Defined in: packages/engine/src/parser/OpCode.ts:114


DATE_ADD: 91;

Defined in: packages/engine/src/parser/OpCode.ts:97


DATE_LAST_WEEKDAY: 94;

Defined in: packages/engine/src/parser/OpCode.ts:100


DATE_LITERAL: 95;

Defined in: packages/engine/src/parser/OpCode.ts:101


DATE_NEXT_WEEKDAY: 93;

Defined in: packages/engine/src/parser/OpCode.ts:99


DATE_NOW: 90;

Defined in: packages/engine/src/parser/OpCode.ts:96


DATE_SUB: 92;

Defined in: packages/engine/src/parser/OpCode.ts:98


DATE_WORKDAY_OFFSET: 96;

Defined in: packages/engine/src/parser/OpCode.ts:102


DATE_WORKDAYS_BETWEEN: 97;

Defined in: packages/engine/src/parser/OpCode.ts:103


DEFINE_USER_FUNCTION: 150;

Defined in: packages/engine/src/parser/OpCode.ts:146


DIV: 23;

Defined in: packages/engine/src/parser/OpCode.ts:42


DUP: 3;

Defined in: packages/engine/src/parser/OpCode.ts:20


EQ: 40;

Defined in: packages/engine/src/parser/OpCode.ts:64


EXP: 25;

Defined in: packages/engine/src/parser/OpCode.ts:44


GT: 44;

Defined in: packages/engine/src/parser/OpCode.ts:68


GTE: 45;

Defined in: packages/engine/src/parser/OpCode.ts:69


HALT: 1;

Defined in: packages/engine/src/parser/OpCode.ts:18


LOAD_GLOBAL_VAR: 62;

Defined in: packages/engine/src/parser/OpCode.ts:79


LOAD_VAR: 60;

Defined in: packages/engine/src/parser/OpCode.ts:77


LOGICAL_AND: 130;

Defined in: packages/engine/src/parser/OpCode.ts:119


LOGICAL_OR: 131;

Defined in: packages/engine/src/parser/OpCode.ts:120


LSHIFT: 30;

Defined in: packages/engine/src/parser/OpCode.ts:55


LT: 42;

Defined in: packages/engine/src/parser/OpCode.ts:66


LTE: 43;

Defined in: packages/engine/src/parser/OpCode.ts:67


MAKE_UNCERTAIN: 28;

Defined in: packages/engine/src/parser/OpCode.ts:52


MAP_INVOKE: 157;

Defined in: packages/engine/src/parser/OpCode.ts:158


MAT_INDEX1: 153;

Defined in: packages/engine/src/parser/OpCode.ts:154


MAT_INDEX2: 154;

Defined in: packages/engine/src/parser/OpCode.ts:155


MAT_NEW: 152;

Defined in: packages/engine/src/parser/OpCode.ts:153


MAT_SLICE: 155;

Defined in: packages/engine/src/parser/OpCode.ts:156


MOD: 24;

Defined in: packages/engine/src/parser/OpCode.ts:43


MUL: 22;

Defined in: packages/engine/src/parser/OpCode.ts:41


NEG: 26;

Defined in: packages/engine/src/parser/OpCode.ts:45


NEQ: 41;

Defined in: packages/engine/src/parser/OpCode.ts:65


NOP: 0;

Defined in: packages/engine/src/parser/OpCode.ts:17


PERCENT_CHANGE: 162;

Defined in: packages/engine/src/parser/OpCode.ts:185


PLOT_INVOKE: 160;

Defined in: packages/engine/src/parser/OpCode.ts:175


POS: 27;

Defined in: packages/engine/src/parser/OpCode.ts:46


PUSH_BIGINT: 11;

Defined in: packages/engine/src/parser/OpCode.ts:24


PUSH_BOOLEAN: 14;

Defined in: packages/engine/src/parser/OpCode.ts:27


PUSH_DECIMAL: 16;

Defined in: packages/engine/src/parser/OpCode.ts:36


PUSH_HEX: 12;

Defined in: packages/engine/src/parser/OpCode.ts:25


PUSH_NUMBER: 10;

Defined in: packages/engine/src/parser/OpCode.ts:23


PUSH_STRING: 13;

Defined in: packages/engine/src/parser/OpCode.ts:26


PUSH_VARIABLE: 15;

Defined in: packages/engine/src/parser/OpCode.ts:28


RANGE_NEW: 156;

Defined in: packages/engine/src/parser/OpCode.ts:157


RANGE_NEW_WRITTEN: 165;

Defined in: packages/engine/src/parser/OpCode.ts:200


RATE_CONVERT: 112;

Defined in: packages/engine/src/parser/OpCode.ts:110


RATE_DIV: 110;

Defined in: packages/engine/src/parser/OpCode.ts:108


RATE_MUL: 111;

Defined in: packages/engine/src/parser/OpCode.ts:109


RATE_OR_DIVIDE: 164;

Defined in: packages/engine/src/parser/OpCode.ts:195


REDUCE_INVOKE: 158;

Defined in: packages/engine/src/parser/OpCode.ts:159


RETURN: 52;

Defined in: packages/engine/src/parser/OpCode.ts:74


RSHIFT: 31;

Defined in: packages/engine/src/parser/OpCode.ts:56


SELECT: 132;

Defined in: packages/engine/src/parser/OpCode.ts:121


STORE_GLOBAL_VAR: 63;

Defined in: packages/engine/src/parser/OpCode.ts:80


STORE_VAR: 61;

Defined in: packages/engine/src/parser/OpCode.ts:78


SUB: 21;

Defined in: packages/engine/src/parser/OpCode.ts:40


SWAP: 2;

Defined in: packages/engine/src/parser/OpCode.ts:19


TO_BINARY: 143;

Defined in: packages/engine/src/parser/OpCode.ts:134


TO_FRACTION: 140;

Defined in: packages/engine/src/parser/OpCode.ts:131


TO_HEX: 71;

Defined in: packages/engine/src/parser/OpCode.ts:84


TO_MULTIPLIER: 141;

Defined in: packages/engine/src/parser/OpCode.ts:132


TO_NUMBER: 70;

Defined in: packages/engine/src/parser/OpCode.ts:83


TO_OCTAL: 144;

Defined in: packages/engine/src/parser/OpCode.ts:135


TO_PERCENTAGE: 74;

Defined in: packages/engine/src/parser/OpCode.ts:85


TO_SCI: 142;

Defined in: packages/engine/src/parser/OpCode.ts:133


UOM_BEST: 83;

Defined in: packages/engine/src/parser/OpCode.ts:91


UOM_CONVERT: 80;

Defined in: packages/engine/src/parser/OpCode.ts:88


UOM_CONVERT_IN: 84;

Defined in: packages/engine/src/parser/OpCode.ts:92


UOM_CONVERT_TO: 81;

Defined in: packages/engine/src/parser/OpCode.ts:89


UOM_GET_VALUE: 82;

Defined in: packages/engine/src/parser/OpCode.ts:90


UOM_POSSIBILITIES: 85;

Defined in: packages/engine/src/parser/OpCode.ts:93


URSHIFT: 32;

Defined in: packages/engine/src/parser/OpCode.ts:57