diff options
Diffstat (limited to 'sca-cpp/trunk/kernel/tree.hpp')
-rw-r--r-- | sca-cpp/trunk/kernel/tree.hpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/sca-cpp/trunk/kernel/tree.hpp b/sca-cpp/trunk/kernel/tree.hpp index d350879ce7..a5d0e3d5b0 100644 --- a/sca-cpp/trunk/kernel/tree.hpp +++ b/sca-cpp/trunk/kernel/tree.hpp @@ -40,13 +40,13 @@ namespace tuscany { * Requires T to support isList, isAssoc, and cast to list<T>. */ template<typename T> inline const list<T> treeDelAssoc(const list<T>& k, const list<T>& l) noexcept { - if (isNil(k) || isNil(l)) + if (isNull(k) || isNull(l)) return l; const list<T> lv = l; // If list is an assoc and matches, skip it if (isAssoc(lv)) { - if (car<T>(lv) == car(k) && isNil(cdr(k))) + if (car<T>(lv) == car(k) && isNull(cdr(k))) return list<T>(); } @@ -56,23 +56,23 @@ template<typename T> inline const list<T> treeDelAssoc(const list<T>& k, const l if (!isList(a)) return cons<T>(a, treeDelAssoc<T>(k, cdr(lv))); const list<T> da = treeDelAssoc<T>(k, a); - return isNil(da)? treeDelAssoc<T>(k, cdr(lv)) : cons<T>(da, treeDelAssoc<T>(k, cdr(lv))); + return isNull(da)? treeDelAssoc<T>(k, cdr(lv)) : cons<T>(da, treeDelAssoc<T>(k, cdr(lv))); } // If we found a match, skip it and lookup children and rest of the list if (car<T>(a) == car(k)) { - if (isNil(cdr(k))) + if (isNull(cdr(k))) return treeDelAssoc<T>(k, cdr(lv)); return cons<T>(cons<T>(car<T>(a), treeDelAssoc<T>(cdr(k), cdr<T>(a))), treeDelAssoc<T>(k, cdr(lv))); } // No match, lookup children and rest of the list - if (isNil(cdr<T>(a))) + if (isNull(cdr<T>(a))) return cons<T>(a, treeDelAssoc<T>(k, cdr(lv))); if (!isList(cadr<T>(a))) return cons<T>(cons<T>(car<T>(a), cons<T>(cadr<T>(a), treeDelAssoc<T>(k, cddr<T>(a)))), treeDelAssoc<T>(k, cdr(lv))); const list<T> da = treeDelAssoc<T>(k, cadr<T>(a)); - if (isNil(da)) + if (isNull(da)) return cons<T>(cons<T>(car<T>(a), treeDelAssoc<T>(k, cddr<T>(a))), treeDelAssoc<T>(k, cdr(lv))); return cons<T>(cons<T>(car<T>(a), cons<T>(da, treeDelAssoc<T>(k, cddr<T>(a)))), treeDelAssoc<T>(k, cdr(lv))); } @@ -83,12 +83,12 @@ template<typename T> inline const list<T> treeDelAssoc(const list<T>& k, const l * Requires T to support isList, isAssoc, and cast to list<T>. */ template<typename T> inline const list<T> treeSubstAssoc(const list<T>& k, const list<T>& n, const list<T>& lv) noexcept { - if (isNil(k) || isNil(lv)) + if (isNull(k) || isNull(lv)) return lv; // If list is an assoc and matches, substitute it if (isAssoc(lv)) { - if (car<T>(lv) == car(k) && isNil(cdr(k))) + if (car<T>(lv) == car(k) && isNull(cdr(k))) return n; } @@ -102,13 +102,13 @@ template<typename T> inline const list<T> treeSubstAssoc(const list<T>& k, const // If we found a match, substitute it and lookup children and rest of the list if (car<T>(a) == car(k)) { - if (isNil(cdr(k))) + if (isNull(cdr(k))) return cons<T>(n, treeSubstAssoc<T>(k, n, cdr(lv))); return cons<T>(cons<T>(car<T>(a), treeSubstAssoc<T>(cdr(k), n, cdr<T>(a))), treeSubstAssoc<T>(k, n, cdr(lv))); } // No match, lookup children and rest of the list - if (isNil(cdr<T>(a))) + if (isNull(cdr<T>(a))) return cons<T>(a, treeSubstAssoc<T>(k, n, cdr(lv))); if (!isList(cadr<T>(a))) return cons<T>(cons<T>(car<T>(a), cons<T>(cadr<T>(a), treeSubstAssoc<T>(k, n, cddr<T>(a)))), treeSubstAssoc<T>(k, n, cdr(lv))); @@ -121,12 +121,12 @@ template<typename T> inline const list<T> treeSubstAssoc(const list<T>& k, const * Requires T to support isList, isAssoc, and cast to list<T>. */ template<typename T> inline const list<T> treeSelectAssoc(const list<T>& k, const list<T>& lv) noexcept { - if (isNil(k) || isNil(lv)) + if (isNull(k) || isNull(lv)) return list<T>(); // If list is an assoc and matches, select it if (isAssoc(lv)) { - if (car<T>(lv) == car(k) && isNil(cdr(k))) + if (car<T>(lv) == car(k) && isNull(cdr(k))) return mklist<T>(lv); } @@ -140,13 +140,13 @@ template<typename T> inline const list<T> treeSelectAssoc(const list<T>& k, cons // If we found a match, select it and lookup children and rest of the list if (car<T>(a) == car(k)) { - if (isNil(cdr(k))) + if (isNull(cdr(k))) return cons<T>(a, treeSelectAssoc<T>(k, cdr(lv))); return append<T>(treeSelectAssoc<T>(cdr(k), cdr<T>(a)), treeSelectAssoc<T>(k, cdr(lv))); } // No match, lookup children and rest of the list - if (isNil(cdr<T>(a))) + if (isNull(cdr<T>(a))) return treeSelectAssoc<T>(k, cdr(lv)); if (!isList(cadr<T>(a))) return append<T>(treeSelectAssoc<T>(k, cddr<T>(a)), treeSelectAssoc<T>(k, cdr(lv))); @@ -164,7 +164,7 @@ template<typename T> inline const list<T> mkrbtree(const T& e, const list<T>& le * Find a leaf with the given key in a rooted binary tree. */ template<typename T> inline const list<T> rbtreeAssoc(const T& k, const list<T>& tree) { - if (isNil(tree)) + if (isNull(tree)) return tree; if (k == car<T>(car(tree))) return car(tree); @@ -177,7 +177,7 @@ template<typename T> inline const list<T> rbtreeAssoc(const T& k, const list<T>& * Construct a new rooted binary tree from a leaf and a tree. */ template<typename T> inline const list<T> rbtreeCons(const T& e, const list<T>& tree) { - if (isNil(tree)) + if (isNull(tree)) return mkrbtree(e, list<T>(), list<T>()); if (e == car(tree)) return tree; @@ -190,7 +190,7 @@ template<typename T> inline const list<T> rbtreeCons(const T& e, const list<T>& * Make a rooted binary tree from an unordered list of leaves. */ template<typename T> inline const list<T> mkrbtree(const list<T>& l) { - if (isNil(l)) + if (isNull(l)) return l; return rbtreeCons(car(l), mkrbtree(cdr(l))); } @@ -199,7 +199,7 @@ template<typename T> inline const list<T> mkrbtree(const list<T>& l) { * Convert a rooted binary tree to an ordered list of leaves. */ template<typename T> inline const list<T> flatten(const list<T>& tree) { - if (isNil(tree)) + if (isNull(tree)) return tree; return append<T>(flatten<T>(cadr(tree)), cons<T>(car(tree), flatten<T>(caddr(tree)))); } |