summaryrefslogtreecommitdiff
path: root/includes/compiler/enode.h
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2022-11-20 00:07:22 -0500
committerAsh Wolf <ninji@wuffs.org>2022-11-20 00:07:22 -0500
commit9d2728a5605f651934fe67a6fe6986b3e4a2c011 (patch)
treee81e0a3588a0c8d1855bf28316efe27d86b04d66 /includes/compiler/enode.h
parent9a46dd0e2e80790d9848c0bbd718932a27c23269 (diff)
downloadMWCC-9d2728a5605f651934fe67a6fe6986b3e4a2c011.tar.gz
MWCC-9d2728a5605f651934fe67a6fe6986b3e4a2c011.zip
add a bunch of code and a ton of stub files for later
Diffstat (limited to '')
-rw-r--r--includes/compiler/enode.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/includes/compiler/enode.h b/includes/compiler/enode.h
index e12b1ae..92c7d2c 100644
--- a/includes/compiler/enode.h
+++ b/includes/compiler/enode.h
@@ -91,10 +91,12 @@ typedef enum ENodeType {
struct EMemberInfo {
BClassList *path;
- ENodeList *nodes;
- void *x8;
- void *xC;
- void *x10;
+ ENode *expr;
+ NameSpaceObjectList *list;
+ TemplArg *templargs;
+ Boolean pr_1D;
+ Boolean x11;
+ Boolean isambig;
};
@@ -172,7 +174,9 @@ typedef union ENodeUnion {
struct {
NameSpaceObjectList *list;
TemplArg *templargs;
+ HashNameNode *name;
} objlist;
+ EMemberInfo *emember;
void *inst;
MemInitializer *ctorinit;
Statement *stmt;
@@ -275,9 +279,13 @@ enum {
};
#define ENODE_IS(_enode, _etype) ( (_enode)->type == (_etype) )
-#define ENODE_IS2(_enode, _etype1, _etype2) ( ENODE_IS(_enode, (_etype1)) || ENODE_IS(_enode, (_etype2)) )
-#define ENODE_IS3(_enode, _etype1, _etype2, _etype3) ( ENODE_IS(_enode, (_etype1)) || ENODE_IS(_enode, (_etype2)) || ENODE_IS(_enode, (_etype3)) )
+#define ENODE_IS2(_enode, _etype1, _etype2) ( ENODE_IS((_enode), (_etype1)) || ENODE_IS(_enode, (_etype2)) )
+#define ENODE_IS3(_enode, _etype1, _etype2, _etype3) ( ENODE_IS((_enode), (_etype1)) || ENODE_IS(_enode, (_etype2)) || ENODE_IS(_enode, (_etype3)) )
#define ENODE_IS_RANGE(_enode, _lo, _hi) ( ((_enode)->type >= (_lo)) && ((_enode)->type <= (_hi)) )
+#define ENODE_QUALS(_enode) ( (UInt32) ( (_enode)->flags & ENODE_FLAG_QUALS ) )
+#define ENODE_IS_INDIRECT_TO(_enode, _etype) ( ENODE_IS((_enode), EINDIRECT) && ENODE_IS((_enode)->data.monadic, (_etype)) )
+#define ENODE_IS_ASSIGN(_enode) ( ENODE_IS_RANGE((_enode), EASS, EORASS) )
+#define ENODE_IS_ASSIGN_TO(_enode, _etype) ( ENODE_IS_RANGE((_enode), EASS, EORASS) && ENODE_IS((_enode)->data.diadic.left->data.monadic, (_etype)) )
#ifdef __MWERKS__
#pragma options align=reset