Exemplo n.º 1
0
  public static boolean matchesBinaryOperatorExpression(
      OperatorStatement os, BinaryOperatorExpression boe, InterpretationContext context) {

    if (os.getName().equals(boe.getOperator()) && os.isBinary()) {
      // types now have to match
      DNVariable leftArg = (DNVariable) os.getArgs().get(0);
      DNVariable rightArg = (DNVariable) os.getArgs().get(1);
      DNType leftArgT = context.getLibrary().getProgramDefinedOrLibraryDNTypeFor(leftArg.getType());
      DNType rightArgT =
          context.getLibrary().getProgramDefinedOrLibraryDNTypeFor(rightArg.getType());

      if (leftArgT.isEqualOrIsSuperType(boe.getLeftExpression().getDNType())
          && rightArgT.isEqualOrIsSuperType(boe.getRightExpression().getDNType())) {
        return true;
      }
    }
    return false;
  }