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