private static GraphTraversal<?, ?> transform(final E_LogicalOr expression) { return __.or( transform(expression.getArg1()), transform(expression.getArg2())); }
/** Explode a expr into a list of disjunctions */ private static List<Expr> explodeDisjunction(List<Expr> exprList, Expr expr) { if ( !( expr instanceof E_LogicalOr ) ) { exprList.add(expr) ; return exprList ; } E_LogicalOr exprOr = (E_LogicalOr)expr ; Expr e1 = exprOr.getArg1() ; Expr e2 = exprOr.getArg2() ; explodeDisjunction(exprList, e1) ; explodeDisjunction(exprList, e2) ; return exprList ; } }
public static Boolean _isSatisfiable(E_LogicalOr expr) { Boolean a = isSatisfiable(expr.getArg1()); if(a == true) { return true; } Boolean b = isSatisfiable(expr.getArg2()); return b == false ? a : b; }
public static GraphTraversal<?, ?> transform(final E_LogicalOr expression) { return __.or( transform(expression.getArg1()), transform(expression.getArg2())); }
public static void collectOr(Expr expr, ExprList list) { if(expr instanceof E_LogicalOr) { E_LogicalOr e = (E_LogicalOr)expr; collectOr(e.getArg1(), list); collectOr(e.getArg2(), list); } else { list.add(expr); } }
public static void collectOr(Expr expr, List<ExprList> list) { if(expr instanceof E_LogicalOr) { E_LogicalOr e = (E_LogicalOr)expr; collectOr(e.getArg1(), list); collectOr(e.getArg2(), list); } else if(expr instanceof E_LogicalAnd) { //List<Expr> ors = new ArrayList<Expr>(); ExprList ors = new ExprList(); collectAnd(expr, ors); list.add(ors); } else { ExprList tmp = new ExprList(); // Turn true into empty clause if(!NodeValue.TRUE.equals(expr)) { tmp.add(expr); } list.add(tmp); } }
NodeValue x = getArg1().eval(binding, env) ;