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; }