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