@Override
 protected boolean memberAccept(ASTVisitor v) {
   if (value != null && !value.accept(v)) {
     return false;
   }
   return true;
 }
 protected void check(IValue expression, Problems problems) {
   if (expression instanceof Expression_Value) {
     ExpressionVisitor visitor = new ExpressionVisitor();
     expression.accept(visitor);
     if (visitor.getCount() > reportTooComplexExpressionSize) {
       String msg =
           MessageFormat.format(COMPLEXITY, visitor.getCount(), reportTooComplexExpressionSize);
       problems.report(expression.getLocation(), msg);
     }
   }
 }