--- /dev/null
+/*\r
+Copyright (C) 1998 BJ Eirich (aka vecna)\r
+This program is free software; you can redistribute it and/or\r
+modify it under the terms of the GNU General Public License\r
+as published by the Free Software Foundation; either version 2\r
+of the License, or (at your option) any later version.\r
+This program is distributed in the hope that it will be useful,\r
+but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\r
+See the GNU General Public Lic\r
+See the GNU General Public License for more details.\r
+You should have received a copy of the GNU General Public License\r
+along with this program; if not, write to the Free Software\r
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
+*/\r
+\r
+// We never use zero as a tag. This makes it easier to track down misbehaving\r
+// VC code, since zero is commonly come-by when going off into uncharted\r
+// depths of memory.\r
+\r
+#define ERROR 0\r
+\r
+// Opcode values.\r
+\r
+#define opEXEC_STDLIB 1\r
+#define opEXEC_LOCALFUNC 2\r
+#define opEXEC_EXTERNFUNC 3\r
+#define opIF 4\r
+#define opELSE 5\r
+#define opGOTO 6\r
+#define opSWITCH 7\r
+#define opCASE 8\r
+#define opRETURN 9\r
+#define opASSIGN 10\r
+#define opSETRETVAL 11\r
+#define opSETLOCALSTACK 12\r
+\r
+// Operand types.\r
+\r
+#define op_IMMEDIATE 1\r
+#define op_HVAR0 2\r
+#define op_HVAR1 3\r
+#define op_UVAR 4\r
+#define op_UVARRAY 5\r
+#define op_LVAR 6\r
+#define op_BFUNC 7\r
+#define op_UFUNC 8\r
+#define op_GROUP 9\r
+#define op_STRING 10\r
+#define op_SARRAY 11\r
+#define op_SLOCAL 12\r
+\r
+// Variable types.\r
+\r
+#define v_IMMEDIATE 1 // is this necessary?\r
+#define v_CHAR 2\r
+#define v_PTR 3\r
+#define v_INT 4\r
+\r
+// IF relational operators.\r
+\r
+#define i_ZERO 1\r
+#define i_NONZERO 2\r
+#define i_EQUALTO 3\r
+#define i_NOTEQUAL 4\r
+#define i_GREATERTHAN 5\r
+#define i_LESSTHAN 6\r
+#define i_GREATERTHANOREQUAL 7\r
+#define i_LESSTHANOREQUAL 8\r
+#define i_GROUP 9\r
+#define i_UNGROUP 10\r
+#define i_AND 11\r
+#define i_OR 12\r
+\r
+// Assignment operators.\r
+\r
+#define a_SET 1\r
+#define a_INC 2\r
+#define a_DEC 3\r
+#define a_INCSET 4\r
+#define a_DECSET 5\r
+#define a_MULTSET 6\r
+#define a_DIVSET 7\r
+\r
+// Operand combination operators.\r
+\r
+#define op_ADD 1\r
+#define op_SUB 2\r
+#define op_MULT 3\r
+#define op_DIV 4\r
+#define op_MOD 5\r
+#define op_SHL 6\r
+#define op_SHR 7\r
+#define op_AND 8\r
+#define op_OR 9\r
+#define op_XOR 10\r
+#define op_END 11\r
+\r
+// String components\r
+\r
+#define s_IMMEDIATE 1\r
+#define s_GLOBAL 2\r
+#define s_ARRAY 3\r
+#define s_NUMSTR 4\r
+#define s_LEFT 5\r
+#define s_RIGHT 6\r
+#define s_MID 7\r
+#define s_LOCAL 8\r
+#define s_ADD 9\r
+#define s_CHR 10\r
+#define s_END 11\r