@SuppressWarnings("rawtypes")
    public void parseInput(String input, LinkedList linkedList) {
      /*
       * Operators: ! != == ~= || && like exists < <= > >=
       */
      // for operators, handle multi-char matches before single-char matches
      // order does not matter for keywords
      List<String> keywords = LoggingEventFieldResolver.KEYWORD_LIST;
      // remove PROP. from the keyword list...it is a keyword in that list, but is handled separately here from the other keywords
      // since its name is not fixed
      keywords.remove("PROP.");
      int pos = 0;
      while (pos < input.length()) {
        if (nextValueIs(input, pos, "'") || nextValueIs(input, pos, "\"")) {
          pos = handleQuotedString(input, pos, linkedList);
        }
        if (nextValueIs(input, pos, "PROP.")) {
          pos = handleProperty(input, pos, linkedList);
        }
        boolean operatorFound = false;
        for (String operator : operators) {
          if (nextValueIs(input, pos, operator)) {
            operatorFound = true;
            pos = handle(pos, linkedList, operator);
          }
        }
        boolean keywordFound = false;
        for (String keyword : keywords) {
          if (nextValueIs(input, pos, keyword)) {
            keywordFound = true;
            pos = handle(pos, linkedList, keyword);
          }
        }
        if (operatorFound || keywordFound) {
          continue;
        }
        if (nextValueIs(input, pos, ")")) {
          pos = handle(pos, linkedList, ")");
        } else if (nextValueIs(input, pos, "(")) {
          pos = handle(pos, linkedList, "(");
        } else if (nextValueIs(input, pos, " ")) {
          pos++;
        } else {
          pos = handleText(input, pos, linkedList);
        }
      }
    }
convert in-fix expression to post-fix.

@param tokenizer tokenizer.
@return post-fix expression.
olv-core/src/main/java/pl/otros/logview/accept/query/org/apache/log4j/rule/InFixToPostFix.java