public void _deriveAll() {
   super._deriveAll();
   Expression condition = this.getCondition();
   if (condition != null) {
     condition.deriveAll();
   }
   Block body = this.getBody();
   if (body != null) {
     body.deriveAll();
   }
 }
 public void print(String prefix, boolean includeDerived) {
   super.print(prefix, includeDerived);
   Expression condition = this.getCondition();
   if (condition != null) {
     System.out.println(prefix + " condition:");
     condition.print(prefix + "  ", includeDerived);
   }
   Block body = this.getBody();
   if (body != null) {
     System.out.println(prefix + " body:");
     body.print(prefix + "  ", includeDerived);
   }
 }
 public void checkConstraints(Collection<ConstraintViolation> violations) {
   super.checkConstraints(violations);
   if (!this.doStatementAssignmentsBefore()) {
     violations.add(new ConstraintViolation("doStatementAssignmentsBefore", this));
   }
   if (!this.doStatementAssignmentsAfter()) {
     violations.add(new ConstraintViolation("doStatementAssignmentsAfter", this));
   }
   if (!this.doStatementCondition()) {
     violations.add(new ConstraintViolation("doStatementCondition", this));
   }
   if (!this.doStatementEnclosedStatements()) {
     violations.add(new ConstraintViolation("doStatementEnclosedStatements", this));
   }
   Expression condition = this.getCondition();
   if (condition != null) {
     condition.checkConstraints(violations);
   }
   Block body = this.getBody();
   if (body != null) {
     body.checkConstraints(violations);
   }
 }