diff options
Diffstat (limited to '')
-rw-r--r-- | includes/compiler/enode.h | 103 |
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 |