summaryrefslogtreecommitdiff
path: root/includes/compiler/enode.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--includes/compiler/enode.h103
1 files changed, 46 insertions, 57 deletions
diff --git a/includes/compiler/enode.h b/includes/compiler/enode.h
index 833c90e..3697135 100644
--- a/includes/compiler/enode.h
+++ b/includes/compiler/enode.h
@@ -75,7 +75,7 @@ typedef enum ENodeType {
ESETCONST,
ENEWEXCEPTION,
ENEWEXCEPTIONARRAY,
- EMYSTERY67, // no name???
+ EINITTRYCATCH,
EOBJLIST,
EMEMBER,
ETEMPLDEP,
@@ -184,12 +184,7 @@ typedef union ENodeUnion {
union {
TemplParamID pid;
struct {
- union {
- Type *type;
- ENode *expr;
- } u;
- TEFuncSel sel;
- Boolean is_expr;
+ Type *type;
} typeexpr;
struct {
ENodeList *args;
@@ -201,57 +196,10 @@ typedef union ENodeUnion {
HashNameNode *name;
} qual;
struct {
- TypeTemplDep *type;
- HashNameNode *name;
- TemplArg *args;
- } qualtempl;
- //ObjAccess objaccess;
- struct {
ENode *expr;
TStreamElement *token;
} sourceref;
ENode *monadic;
- struct {
- ENode *expr;
- ENodeList *args;
- } funccall;
- // have my doubts about this one
- /*struct {
- Type *type;
- UInt32 qual;
- ENode *arraydim;
- ENodeList *placement;
- ENodeList *initlist;
- Boolean is_global;
- Boolean has_init;
- } nw;*/
- struct {
- ENode *expr;
- Boolean is_global;
- Boolean is_array;
- } del;
- struct {
- ENode *left;
- ENode *right;
- } dyadic;
- struct {
- ENode *expr;
- Type *type;
- UInt32 qual;
- } newcast;
- struct {
- ENode *expr;
- DepName *dname;
- Boolean is_pointer;
- } member;
- struct {
- Object *object;
- Object *info;
- } exinit;
- struct {
- Object *obj;
- Initializer *init;
- } varinit;
Object *obj;
} u;
TemplDepSubType subtype;
@@ -300,7 +248,7 @@ enum {
case ELOGNOT: \
case EFORCELOAD: \
case ETYPCON: \
- case EBITFIELD:
+ case EBITFIELD
// 9 to 0x1B
#define ENODE_CASE_DIADIC_1 \
@@ -322,7 +270,7 @@ enum {
case ENOTEQU: \
case EAND: \
case EXOR: \
- case EOR:
+ case EOR
// 0x1E to 0x28, 0x2D, 0x2F
#define ENODE_CASE_ASSIGN \
@@ -338,7 +286,48 @@ enum {
case EXORASS: \
case EORASS: \
case EBCLR: \
- case EBSET:
+ case EBSET
+
+#define ENODE_CASE_DIADIC_ALL \
+ case EMUL: \
+ case EMULV: \
+ case EDIV: \
+ case EMODULO: \
+ case EADDV: \
+ case ESUBV: \
+ case EADD: \
+ case ESUB: \
+ case ESHL: \
+ case ESHR: \
+ case ELESS: \
+ case EGREATER: \
+ case ELESSEQU: \
+ case EGREATEREQU: \
+ case EEQU: \
+ case ENOTEQU: \
+ case EAND: \
+ case EXOR: \
+ case EOR: \
+ case ELAND: \
+ case ELOR: \
+ case EASS: \
+ case EMULASS: \
+ case EDIVASS: \
+ case EMODASS: \
+ case EADDASS: \
+ case ESUBASS: \
+ case ESHLASS: \
+ case ESHRASS: \
+ case EANDASS: \
+ case EXORASS: \
+ case EORASS: \
+ case ECOMMA: \
+ case EPMODULO: \
+ case EROTL: \
+ case EROTR: \
+ case EBCLR: \
+ case EBTST: \
+ case EBSET
#ifdef __MWERKS__
#pragma options align=reset