You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.5 KiB
JavaScript

"use strict";
/* Bytecode instruction opcodes. */
var opcodes = {
/* Stack Manipulation */
PUSH: 0, // PUSH c
PUSH_UNDEFINED: 26, // PUSH_UNDEFINED
PUSH_NULL: 27, // PUSH_NULL
PUSH_FAILED: 28, // PUSH_FAILED
PUSH_EMPTY_ARRAY: 29, // PUSH_EMPTY_ARRAY
PUSH_CURR_POS: 1, // PUSH_CURR_POS
POP: 2, // POP
POP_CURR_POS: 3, // POP_CURR_POS
POP_N: 4, // POP_N n
NIP: 5, // NIP
APPEND: 6, // APPEND
WRAP: 7, // WRAP n
TEXT: 8, // TEXT
/* Conditions and Loops */
IF: 9, // IF t, f
IF_ERROR: 10, // IF_ERROR t, f
IF_NOT_ERROR: 11, // IF_NOT_ERROR t, f
WHILE_NOT_ERROR: 12, // WHILE_NOT_ERROR b
/* Matching */
MATCH_ANY: 13, // MATCH_ANY a, f, ...
MATCH_STRING: 14, // MATCH_STRING s, a, f, ...
MATCH_STRING_IC: 15, // MATCH_STRING_IC s, a, f, ...
MATCH_REGEXP: 16, // MATCH_REGEXP r, a, f, ...
ACCEPT_N: 17, // ACCEPT_N n
ACCEPT_STRING: 18, // ACCEPT_STRING s
FAIL: 19, // FAIL e
/* Calls */
LOAD_SAVED_POS: 20, // LOAD_SAVED_POS p
UPDATE_SAVED_POS: 21, // UPDATE_SAVED_POS
CALL: 22, // CALL f, n, pc, p1, p2, ..., pN
/* Rules */
RULE: 23, // RULE r
/* Failure Reporting */
SILENT_FAILS_ON: 24, // SILENT_FAILS_ON
SILENT_FAILS_OFF: 25 // SILENT_FAILS_FF
};
module.exports = opcodes;