@Override
 public Verification verifySelf() {
   return Valid.create();
   //		BreakableStatement ancestor = nearestAncestor(BreakableStatement.class);
   //		return checkNull(ancestor, "The break statement is not nested in a breakable statement",
   // Valid.create());
 }
 @Override
 public Verification verifySelf() {
   Verification result = Valid.create();
   try {
     Expression var = variableExpression();
     if (var == null) {
       result =
           result.and(
               new BasicProblem(this, "The assignment has no variable at the left-hand side"));
     }
     Expression value = getValue();
     if (value == null) {
       result =
           result.and(
               new BasicProblem(
                   this, "The assignment has no valid expression at the right-hand side"));
     }
     Type varType = var.getType();
     Type exprType = value.getType();
     if (!exprType.subtypeOf(varType)) {
       result = result.and(new InvalidType(this, varType, exprType));
     }
   } catch (LookupException e) {
     result =
         result.and(
             new BasicProblem(
                 this,
                 "The type of the expression is not assignable to the type of the variable."));
   }
   return result;
 }
 @Override
 public Verification verifySelf() {
   return Valid.create();
 }