diff options
Diffstat (limited to 'engines/gob/parse.h')
-rw-r--r-- | engines/gob/parse.h | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/engines/gob/parse.h b/engines/gob/parse.h index 9bd8f6afab..e0696fa0bb 100644 --- a/engines/gob/parse.h +++ b/engines/gob/parse.h @@ -29,13 +29,70 @@ namespace Gob { enum { + OP_NEG = 1, OP_ADD = 2, OP_SUB = 3, OP_BITOR = 4, OP_MUL = 5, OP_DIV = 6, OP_MOD = 7, - OP_BITAND = 8 + OP_BITAND = 8, + OP_BEGIN_EXPR = 9, + OP_END_EXPR = 10, + OP_NOT = 11, + + + OP_ARRAY_UINT8 = 16, + + // FIXME: OP_LOAD_VAR_UINT16 comment says "uint16 variable load" in + // Parse::printExpr_internal, and does that in Parse_v2::parseExpr, + // but reads int8 in Parse_v2::parseValExpr + OP_LOAD_VAR_UINT16 = 17, + // FIXME: OP_LOAD_VAR_UINT8 comment says "uint8 variable load" in + // Parse::printExpr_internal, but reads int8 in Parse_v2::parseValExpr + OP_LOAD_VAR_UINT8 = 18, + OP_LOAD_IMM_INT32 = 19, + OP_LOAD_IMM_INT16 = 20, + OP_LOAD_IMM_INT8 = 21, + OP_LOAD_IMM_STR = 22, + + OP_LOAD_VAR_UINT32 = 23, // ??? + OP_LOAD_VAR_UINT32_AS_UINT16 = 24, // ??? + OP_LOAD_VAR_STR = 25, + + OP_ARRAY_UINT32 = 26, + OP_ARRAY_UINT16 = 27, + OP_ARRAY_STR = 28, + + OP_FUNC = 29, + + OP_OR = 30, // Logical OR + OP_AND = 31, // Logical AND + OP_LESS = 32, + OP_LEQ = 33, + OP_GREATER = 34, + OP_GEQ = 35, + OP_EQ = 36, + OP_NEQ = 37 +}; + +enum { + FUNC_SQRT1 = 0, + FUNC_SQRT2 = 1, + FUNC_SQRT3 = 6, + + FUNC_SQR = 5, + FUNC_ABS = 7, + FUNC_RAND = 10 +}; + +enum { + // FIXME: The following two 'truth values' are stored inside the list + // of "operators". So they somehow coincide with OP_LOAD_VAR_UINT32 + // and OP_LOAD_VAR_UINT32_AS_UINT16. I haven't yet quite understood + // how, resp. what that means. You have been warned. + GOB_TRUE = 24, + GOB_FALSE = 23 }; class Parse { |