1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef OPERATION_H
- #define OPERATION_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define OP_NUMBER(TYPE) OP_##TYPE##_INT, OP_##TYPE##_FLOAT
- #define OP_CHANGE_NUMBER(TYPE) \
- OP_PUSH_PRE_##TYPE##_CHANGE, OP_PUSH_POST_##TYPE##_CHANGE, \
- OP_##TYPE##_CHANGE
- typedef enum Operation {
- OP_NOTHING,
- OP_NUMBER(PUSH),
- OP_PUSH_TEXT,
- OP_NUMBER(ADD),
- OP_NUMBER(SUB),
- OP_NUMBER(MUL),
- OP_NUMBER(DIV),
- OP_MOD_INT,
- OP_NUMBER(INVERT_SIGN),
- OP_NUMBER(LESS),
- OP_NUMBER(LESS_EQUAL),
- OP_NUMBER(GREATER),
- OP_NUMBER(GREATER_EQUAL),
- OP_NUMBER(EQUAL),
- OP_NUMBER(NOT_EQUAL),
- OP_EQUAL_POINTER,
- OP_NOT_EQUAL_POINTER,
- OP_NOT,
- OP_AND,
- OP_OR,
- OP_BIT_NOT_INT,
- OP_BIT_AND_INT,
- OP_BIT_OR_INT,
- OP_BIT_XOR_INT,
- OP_LEFT_SHIFT_INT,
- OP_RIGHT_SHIFT_INT,
- OP_LINE,
- OP_GOTO,
- OP_IF_GOTO,
- OP_PEEK_FALSE_GOTO,
- OP_PEEK_TRUE_GOTO,
- OP_GOSUB,
- OP_RETURN,
- OP_NUMBER(RETURN),
- OP_RETURN_POINTER,
- OP_RESERVE,
- OP_GRESERVE,
- OP_PUSH_STRUCT_REFERENCE,
- OP_NUMBER(LOAD),
- OP_NUMBER(STORE),
- OP_DEREFERENCE_VAR,
- OP_DEREFERENCE_GVAR,
- OP_LOAD_ARRAY,
- OP_DUPLICATE_REFERENCE,
- OP_ADD_REFERENCE,
- OP_NEW,
- OP_LENGTH,
- OP_STORE_ARRAY,
- OP_PUSH_PRE_CHANGE_INT,
- OP_PUSH_POST_CHANGE_INT,
- OP_CHANGE_INT,
- OP_FLOAT_TO_INT,
- OP_INT_TO_FLOAT,
- OP_CALL
- } Operation;
- #ifdef __cplusplus
- }
- #endif
- #endif
|