Annotation of parser3/src/include/code.h, revision 1.13
1.1 paf 1: /*
1.13 ! paf 2: $Id: code.h,v 1.12 2001/03/06 14:32:17 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.12 paf 13: OP_VALUE, OP_CODE, OP_CLASS,
1.10 paf 14:
15: // actions
1.8 paf 16: OP_WITH_SELF, OP_WITH_ROOT, OP_WITH_READ, OP_WITH_WRITE,
1.1 paf 17: OP_CONSTRUCT,
1.5 paf 18: OP_WRITE,
19: OP_GET_ELEMENT, OP_GET_ELEMENT__WRITE,
1.1 paf 20: OP_CREATE_EWPOOL, OP_REDUCE_EWPOOL,
21: OP_CREATE_RWPOOL, OP_REDUCE_RWPOOL,
1.10 paf 22: OP_CREATE_SWPOOL, OP_REDUCE_SWPOOL,
1.1 paf 23: OP_GET_METHOD_FRAME,
24: OP_STORE_PARAM,
1.10 paf 25: OP_CALL,
26:
27: // expression ops: unary
28: OP_NEG, OP_INV, OP_NOT, OP_DEF, OP_IN, OP_FEXISTS,
29: // expression ops: binary
1.11 paf 30: OP_SUB, OP_ADD, OP_MUL, OP_DIV, OP_MOD,
1.10 paf 31: OP_BIN_AND, OP_BIN_OR,
32: OP_LOG_AND, OP_LOG_OR,
33: OP_NUM_LT, OP_NUM_GT, OP_NUM_LE, OP_NUM_GE, OP_NUM_EQ, OP_NUM_NE,
1.13 ! paf 34: OP_STR_LT, OP_STR_GT, OP_STR_LE, OP_STR_GE, OP_STR_EQ, OP_STR_NE
1.11 paf 35: };
1.2 paf 36:
37: union Operation {
38: void *cast; // casting helper
39:
40: OPCODE code;
41: String *string;
42: Array *array;
1.1 paf 43: };
44:
45: #endif
E-mail: