summaryrefslogtreecommitdiff
path: root/include/chillAST/chillASTs.hh
diff options
context:
space:
mode:
Diffstat (limited to 'include/chillAST/chillASTs.hh')
-rw-r--r--include/chillAST/chillASTs.hh86
1 files changed, 15 insertions, 71 deletions
diff --git a/include/chillAST/chillASTs.hh b/include/chillAST/chillASTs.hh
index ea8feaa..795f12b 100644
--- a/include/chillAST/chillASTs.hh
+++ b/include/chillAST/chillASTs.hh
@@ -550,16 +550,16 @@ public:
void removeSyncComment();
- chillAST_Node *getInit() { return children[0]; };
+ chillAST_Node *getInit() { return getChild(0); };
void setInit(chillAST_Node *i) { setChild(0,i); }
- chillAST_Node *getCond() { return children[1]; };
+ chillAST_Node *getCond() { return getChild(1); };
void setCond(chillAST_Node *c) { setChild(1,c); }
- chillAST_Node *getInc() { return children[2]; };
+ chillAST_Node *getInc() { return getChild(2); };
void setInc(chillAST_Node *i) { setChild(2,i); }
- chillAST_Node *getBody() { return children[3]; };
+ chillAST_Node *getBody() { return getChild(3); };
void setBody(chillAST_Node *b) { setChild(3,b); };
@@ -626,10 +626,6 @@ public:
// variables that are special for this type of node
char *op; // TODO need enum so far, only "?" conditional operator
- chillAST_Node *condition;
- chillAST_Node *lhs; // keep name from binary
- chillAST_Node *rhs;
-
// constructors
chillAST_TernaryOperator();
@@ -641,57 +637,29 @@ public:
bool isLeaf() { return false; };
-
char *getOp() { return op; }; // dangerous. could get changed!
- chillAST_Node *getCond() { return condition; };
- chillAST_Node *getRHS() { return rhs; };
+ chillAST_Node *getCond() { return getChild(0); };
- chillAST_Node *getLHS() { return lhs; };
+ chillAST_Node *getRHS() { return getChild(1); };
- void setCond(chillAST_Node *newc) {
- condition = newc;
- newc->setParent(this);
- }
+ chillAST_Node *getLHS() { return getChild(2); };
- void setLHS(chillAST_Node *newlhs) {
- lhs = newlhs;
- newlhs->setParent(this);
- }
+ void setCond(chillAST_Node *newc) { setChild(0,newc); }
- void setRHS(chillAST_Node *newrhs) {
- rhs = newrhs;
- newrhs->setParent(this);
- }
+ void setLHS(chillAST_Node *newlhs) { setChild(1,newlhs); }
+ void setRHS(chillAST_Node *newrhs) { setChild(2,newrhs); }
// required methods that I can't seem to get to inherit
chillAST_Node *constantFold();
chillAST_Node *clone();
- void replaceChild(chillAST_Node *old, chillAST_Node *newchild);
-
- void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento);
-
- void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
-
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
void gatherVarLHSUsage(std::vector<chillAST_VarDecl *> &decls);
- void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
-
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
void loseLoopWithLoopVar(char *var) {}; // ternop can't have loop as child?
@@ -703,11 +671,9 @@ public:
// variables that are special for this type of node
char *op; // TODO need enum
- chillAST_Node *lhs;
- chillAST_Node *rhs;
-
// constructors
+ chillAST_BinaryOperator();
chillAST_BinaryOperator(chillAST_Node *lhs, const char *op, chillAST_Node *rhs);
// other methods particular to this type of node
@@ -719,19 +685,13 @@ public:
bool isLeaf() { return false; };
- chillAST_Node *getRHS() { return rhs; };
+ chillAST_Node *getLHS() { return getChild(0); };
- chillAST_Node *getLHS() { return lhs; };
+ chillAST_Node *getRHS() { return getChild(1); };
- void setLHS(chillAST_Node *newlhs) {
- lhs = newlhs;
- newlhs->setParent(this);
- }
+ void setLHS(chillAST_Node *newlhs) { setChild(0,newlhs); }
- void setRHS(chillAST_Node *newrhs) {
- rhs = newrhs;
- newrhs->setParent(this);
- }
+ void setRHS(chillAST_Node *newrhs) { setChild(1,newrhs); }
char *getOp() { return op; }; // dangerous. could get changed!
bool isAugmentedAssignmentOp() {
@@ -776,33 +736,17 @@ public:
chillAST_Node *clone();
- void replaceChild(chillAST_Node *old, chillAST_Node *newchild);
-
void gatherArrayRefs(std::vector<chillAST_ArraySubscriptExpr *> &refs, bool writtento); // chillAST_BinaryOperator
void gatherScalarRefs(std::vector<chillAST_DeclRefExpr *> &refs, bool writtento);
- void gatherVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
void gatherVarDeclsMore(std::vector<chillAST_VarDecl *> &decls) { gatherVarDecls(decls); };
- void gatherScalarVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherArrayVarDecls(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherVarUsage(std::vector<chillAST_VarDecl *> &decls);
-
- void gatherDeclRefExprs(std::vector<chillAST_DeclRefExpr *> &refs);
-
void gatherVarLHSUsage(std::vector<chillAST_VarDecl *> &decls);
- void replaceVarDecls(chillAST_VarDecl *olddecl, chillAST_VarDecl *newdecl);
-
bool findLoopIndexesToReplace(chillAST_SymbolTable *symtab,
bool forcesync = false) { return false; }; // no loops under here
void loseLoopWithLoopVar(char *var) {}; // binop can't have loop as child?
- void gatherStatements(std::vector<chillAST_Node *> &statements); //
-
};
class chillAST_ArraySubscriptExpr : public chillAST_Node {