34 class ExprTreeVisitor;
39 OA_ptr<std::set<OA_ptr<ExprTree> > >
41 std::set<OA_ptr<ExprTree> >& set2);
44 OA_ptr<std::set<OA_ptr<ExprTree> > >
46 std::set<OA_ptr<ExprTree> >& set1,
47 std::set<OA_ptr<ExprTree> >& set2);
55 class ExprTree :
public Tree {
60 static const int sOrder = -200;
128 virtual bool operator<(
Node& other);
138 static const int sOrder = -100;
155 void dump(std::ostream& os) { Node::dump(os); }
165 bool operator<(
Node& other);
173 static const int sOrder = 100;
178 class CallNode :
public Node {
190 void dump(std::ostream& os) { Node::dump(os); }
200 bool operator<(
Node& other);
209 static const int sOrder = 500;
213 class MemRefNode :
public Node {
225 void dump(std::ostream& os) { Node::dump(os); }
235 bool operator<(
Node& other);
243 static const int sOrder = 200;
247 class ConstSymNode :
public Node {
259 void dump(std::ostream& os) { Node::dump(os); }
269 bool operator<(
Node& other);
277 static const int sOrder = 300;
281 class ConstValNode :
public Node {
293 void dump(std::ostream& os) { Node::dump(os); }
303 bool operator<(
Node& other);
311 static const int sOrder = 400;
336 void dump(std::ostream& os);
406 void str(std::ostream& os);