use of org.batfish.z3.expr.Expr in project batfish by batfish.
the class ExprPrinter method visitAndExpr.
@Override
public void visitAndExpr(AndExpr andExpr) {
List<Expr> subExpressions = ImmutableList.<Expr>builder().add(new IdExpr("and")).addAll(andExpr.getConjuncts()).build();
printExpandedComplexExpr(subExpressions);
}
use of org.batfish.z3.expr.Expr in project batfish by batfish.
the class ExprPrinter method printExpandedComplexExpr.
private void printExpandedComplexExpr(List<Expr> subExpressions) {
_sb.append("(");
int size = subExpressions.size();
if (size > 0) {
printExpr(subExpressions.get(0));
for (int i = 1; i < size; i++) {
_sb.append("\n");
for (int j = 0; j <= _indent; j++) {
_sb.append(" ");
}
printExpr(subExpressions.get(i), _indent + 1);
}
Expr lastSubExpression = subExpressions.get(size - 1);
if (IsComplexVisitor.isComplexExpr(lastSubExpression)) {
_sb.append(" ");
}
}
_sb.append(")");
}
use of org.batfish.z3.expr.Expr in project batfish by batfish.
the class IpSpaceBooleanExprTransformer method visitAclIpSpace.
@Override
public BooleanExpr visitAclIpSpace(AclIpSpace aclIpSpace) {
// right fold
BooleanExpr expr = FalseExpr.INSTANCE;
for (int i = aclIpSpace.getLines().size() - 1; i >= 0; i--) {
AclIpSpaceLine line = aclIpSpace.getLines().get(i);
expr = new IfThenElse(line.getIpSpace().accept(this), line.getAction() == LineAction.ACCEPT ? TrueExpr.INSTANCE : FalseExpr.INSTANCE, expr);
}
return expr;
}
Aggregations