code: private Object parseComparatorArgument(CharSequenceScanner scanner) {
  
      int index = scanner.getCurrentIndex();
      Object comparatorArgument;
      char c = scanner.forcePeek();
      if ((c == '"') || (c == '\'')) {
        scanner.next();
        comparatorArgument = scanner.readUntil(c, false, c);
      } else {
        String argument = scanner.readWhile(FILTER_COMPARATOR_ARGUMENT);
        if (argument.length() == 0) {
          throw new IllegalArgumentException(scanner.substring(index, scanner.getCurrentIndex()));
        }
        if ("null".equals(argument)) {
          comparatorArgument = null;
        } else if (argument.matches(Iso8601UtilLimited.PATTERN_STRING_ALL)) {
          comparatorArgument = this.nlsDependencies.getIso8601Util().parseDate(argument);
        } else if (Boolean.TRUE.toString().equals(argument)) {
          comparatorArgument = Boolean.TRUE;
        } else if (Boolean.FALSE.toString().equals(argument)) {
          comparatorArgument = Boolean.FALSE;
        } else {
          // double vs. date?
          comparatorArgument = Double.valueOf(argument);
        }
      }
      return comparatorArgument;
    }
docs: This method parses the {@link Condition#comparatorArgument comparator argument}.
  
  @param scanner is the {@link CharSequenceScanner}.
  @return the parsed comparator argument.