-/* The types supported by the language */
-#define TYPE_VOID 0
-#define TYPE_STRING 1
-#define TYPE_FLOAT 2
-#define TYPE_VECTOR 3
-#define TYPE_ENTITY 4
-#define TYPE_FIELD 5
-#define TYPE_FUNCTION 6
-#define TYPE_POINTER 7
-
-/*
- * there are 3 accessible memory zones -
- * globals
- * array of 32bit ints/floats, mixed, LE,
- * entities
- * structure is up to the engine but the fields are a linear array
- * of mixed ints/floats, there are globals referring to the offsets
- * of these in the entity struct so there are ADDRESS and STOREP and
- * LOAD instructions that use globals containing field offsets.
- * strings
- * a static array in the progs.dat, with file parsing creating
- * additional constants, and some engine fields are mapped by
- * address as well to unique string offsets
- */
-
-/*
- * Instructions
- * These are the external instructions supported by the interperter
- * this is what things compile to (from the C code). This is not internal
- * instructions for support like int, and such (which are translated)
- */
-#define INSTR_DONE 0
-// math
-#define INSTR_MUL_F 1 /* multiplication float */
-#define INSTR_MUL_V 2 /* multiplication vector */
-#define INSTR_MUL_FV 3 /* multiplication float->vector */
-#define INSTR_MUL_VF 4 /* multiplication vector->float */
-#define INSTR_DIV_F 5
-#define INSTR_ADD_F 6
-#define INSTR_ADD_V 7
-#define INSTR_SUB_F 8
-#define INSTR_SUB_V 9
-// compare
-#define INSTR_EQ_F 10
-#define INSTR_EQ_V 11
-#define INSTR_EQ_S 12
-#define INSTR_EQ_E 13
-#define INSTR_EQ_FNC 14
-#define INSTR_NE_F 15
-#define INSTR_NE_V 16
-#define INSTR_NE_S 17
-#define INSTR_NE_E 18
-#define INSTR_NE_FNC 19
-// multi compare
-#define INSTR_LE 20
-#define INSTR_GE 21
-#define INSTR_LT 22
-#define INSTR_GT 23
-// load and store
-#define INSTR_LOAD_F 24
-#define INSTR_LOAD_V 25
-#define INSTR_LOAD_S 26
-#define INSTR_LOAD_ENT 27
-#define INSTR_LOAD_FLD 28
-#define INSTR_LOAD_FNC 29
-#define INSTR_STORE_F 31
-#define INSTR_STORE_V 32
-#define INSTR_STORE_S 33
-#define INSTR_STORE_ENT 34
-#define INSTR_STORE_FLD 35
-#define INSTR_STORE_FNC 36
-// others
-#define INSTR_ADDRESS 30
-#define INSTR_RETURN 37
-#define INSTR_NOT_F 38
-#define INSTR_NOT_V 39
-#define INSTR_NOT_S 40
-#define INSTR_NOT_ENT 41
-#define INSTR_NOT_FNC 42
-#define INSTR_IF 43
-#define INSTR_IFNOT 44
-#define INSTR_CALL0 45
-#define INSTR_CALL1 46
-#define INSTR_CALL2 47
-#define INSTR_CALL3 48
-#define INSTR_CALL4 49
-#define INSTR_CALL5 50
-#define INSTR_CALL6 51
-#define INSTR_CALL7 52
-#define INSTR_CALL8 53
-#define INSTR_STATE 54
-#define INSTR_GOTO 55
-#define INSTR_AND 56
-#define INSTR_OR 57
-#define INSTR_BITAND 59
-#define INSTR_BITOR 60
-
-/*
- * This is the smallest lexer I've ever wrote: and I must say, it's quite
- * more nicer than those large bulky complex parsers that most people write
- * which has some sort of a complex state.
- */