private void process(String input, List<String> parsed, List<String> stack) {
        boolean lastParsedIsDigit = false;
        for (int i = 0; i < input.length(); i++) {
            char ch = input.charAt(i);
            if (Character.isDigit(ch)) {
                processDigit(lastParsedIsDigit, parsed, ch);
                lastParsedIsDigit = true;

            } else if (ch == DOT.charAt(0)) {
                processDigit(lastParsedIsDigit, parsed, ch);
                
            } else if (isOperation(String.valueOf(ch))) {
                processCharacter(ch, stack, parsed);
                lastParsedIsDigit = false;
                
            } else if (ch == OPEN_BRACKET.charAt(0)) {
                stack.add(String.valueOf(ch));
                lastParsedIsDigit = false;
            } else if (ch == CLOSE_BRACKET.charAt(0)) {
                lastParsedIsDigit = false;
                processCloseBracket(parsed, stack);
            }
            else {
                throw new IllegalArgumentException();   //TODO Add variable to count your current position and place this information into exception message
            }
        }

        Collections.reverse(stack);
        parsed.addAll(stack);

    }