105 exprLeafOrNode::infContent level;
107 std::list<SpearAbstractVar*> vars;
108 SpearAbstractVar* outVar;
110 bool varsExprInitialized;
132 infContent getLevel();
135 void computeVarsExpr();
141 const std::list<SpearAbstractVar*>& getVars();
144 SpearAbstractVar* getOutVar();
147 const std::string& getExpr();
152 std::string str(std::string indent=
"");
153 std::string str(std::string indent=
"")
const;
154 std::string genStr(std::string indent=
"")
const;
156 elt elType(){
return exprLeafOrNode::eLeaf; }
169 bool andExprs(
const exprLeaf& that,
bool &modified);
171 bool andExprsTest(
const exprLeaf& that);
178 bool orExprs(
const exprLeaf& that,
bool &modified);
180 bool orExprsTest(
const exprLeaf& that);
193 std::list<exprLeafOrNode*> children;
195 exprLeafOrNode::infContent level;
197 bool varsExprInitialized;
198 std::list<SpearAbstractVar*> vars;
199 SpearAbstractVar* outVar;
212 logicNode(logOps logOp,
const std::list<exprLeafOrNode*>& children);
235 infContent getLevel();
239 const std::list<SpearAbstractVar*>& getVars();
242 SpearAbstractVar* getOutVar();
245 const std::string& getExpr();
250 std::string str(std::string indent=
"");
251 std::string str(std::string indent=
"")
const;
252 std::string genStr(std::string indent=
"")
const;
255 void computeVarsExpr();
258 elt elType(){
return exprLeafOrNode::lNode; }
276 void genChildrenConj(std::list<exprLeafOrNode*>& newChildren, std::list<exprLeafOrNode*> newConjOrig,
277 std::list<exprLeafOrNode*>::const_iterator curChild);
290 bool replaceVar(
varID var,
int p,
int q,
int r);
297 bool removeVar(
varID var);
303 void insertNewChildOr(std::list<exprLeafOrNode*>& newChildren,
exprLeafOrNode* newTerm);
306 bool eqChildren(std::list<exprLeafOrNode*>& one, std::list<exprLeafOrNode*>& two);
415 SpearVar outputSpearExpr(
exprLeaf* otherExpr, std::ofstream &os,
bool createProposition);