Annotation of parser3/src/include/code.h, revision 1.16
1.1 paf 1: /*
1.16 ! paf 2: $Id: code.h,v 1.15 2001/03/08 09:31:42 paf Exp $
1.1 paf 3: */
4:
5: #ifndef CODE_H
6: #define CODE_H
7:
1.2 paf 8: #include "pa_string.h"
9: #include "pa_array.h"
10:
1.1 paf 11: enum OPCODE {
1.10 paf 12: // literals
1.16 ! paf 13: OP_VALUE, OP_CODE__STORE_PARAM,
1.10 paf 14:
15: // actions
1.8 paf 16: OP_WITH_SELF, OP_WITH_ROOT, OP_WITH_READ, OP_WITH_WRITE,
1.16 ! paf 17: OP_GET_CLASS,
1.1 paf 18: OP_CONSTRUCT,
1.5 paf 19: OP_WRITE,
20: OP_GET_ELEMENT, OP_GET_ELEMENT__WRITE,
1.1 paf 21: OP_CREATE_EWPOOL, OP_REDUCE_EWPOOL,
22: OP_CREATE_RWPOOL, OP_REDUCE_RWPOOL,
1.10 paf 23: OP_CREATE_SWPOOL, OP_REDUCE_SWPOOL,
1.1 paf 24: OP_GET_METHOD_FRAME,
25: OP_STORE_PARAM,
1.10 paf 26: OP_CALL,
27:
28: // expression ops: unary
29: OP_NEG, OP_INV, OP_NOT, OP_DEF, OP_IN, OP_FEXISTS,
30: // expression ops: binary
1.11 paf 31: OP_SUB, OP_ADD, OP_MUL, OP_DIV, OP_MOD,
1.14 paf 32: OP_BIN_AND, OP_BIN_OR, OP_BIN_XOR,
33: OP_LOG_AND, OP_LOG_OR, OP_LOG_XOR,
1.10 paf 34: OP_NUM_LT, OP_NUM_GT, OP_NUM_LE, OP_NUM_GE, OP_NUM_EQ, OP_NUM_NE,
1.13 paf 35: OP_STR_LT, OP_STR_GT, OP_STR_LE, OP_STR_GE, OP_STR_EQ, OP_STR_NE
1.11 paf 36: };
1.2 paf 37:
38: union Operation {
39: void *cast; // casting helper
40:
41: OPCODE code;
42: String *string;
43: Array *array;
1.1 paf 44: };
45:
46: #endif
E-mail: