paradiseo/trunk/eo/contrib/mathsym/eo_interface/eoSymLambdaMutate.cpp
quemy 409a1b21b8 Merge from rc2.0
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2713 331e1502-861f-0410-8da2-ba01fb791d7f
2012-07-19 09:53:26 +00:00

29 lines
642 B
C++

#include <eoSymLambdaMutate.h>
#include "FunDef.h"
#include "NodeSelector.h"
Sym compress(Sym sym, NodeSelector& sel) {
return ::compress(sym);
NodeSelector::NodeSelection s = sel.select_node(sym);
Sym f = SymLambda( s.subtree());
if (f == s.subtree()) { return sym; }
return insert_subtree(sym, s.idx(), f);
}
extern Sym expand(Sym sym, NodeSelector& sel) {
return ::expand_all(sym);
NodeSelector::NodeSelection s = sel.select_node(sym);
Sym f = SymUnlambda( s.subtree());
if (f == s.subtree()) { return sym; }
return insert_subtree(sym, s.idx(), f);
}