void PSIVisitor::visit_constraint_stmt(IConstraint *c) { switch (c->getConstraintType()) { case IConstraint::ConstraintType_Block: { visit_constraint_block(dynamic_cast<IConstraintBlock *>(c)); } break; case IConstraint::ConstraintType_Expr: visit_constraint_expr_stmt(dynamic_cast<IConstraintExpr *>(c)); break; case IConstraint::ConstraintType_If: visit_constraint_if_stmt(dynamic_cast<IConstraintIf *>(c)); break; } }
void PSIVisitor::visit_constraint_stmt(IConstraint *c) { switch (c->getConstraintType()) { case IConstraint::ConstraintType_Block: { visit_constraint_block(static_cast<IConstraintBlock *>(c)); } break; case IConstraint::ConstraintType_Expr: visit_constraint_expr_stmt(static_cast<IConstraintExpr *>(c)); break; case IConstraint::ConstraintType_If: { IConstraintIf *c_if = static_cast<IConstraintIf *>(c); visit_expr(c_if->getCond()); visit_constraint_stmt(c_if->getTrue()); if (c_if->getFalse()) { visit_constraint_stmt(c_if->getFalse()); } } break; } }