private int preprocessChar(String formatString, int i, boolean isOutputType) {

		char c = formatString.charAt(i);
		if (c == '$') {
			return -1;
		}
		if (isFlag(c)) {
			if (!isOutputType) {
				return -1;
			}
			i = skipFlags(formatString, i);
		}
		return i;
	}
Takes in a single String from parseFormatString's output List and converts it to
the corresponding FormatArgument(s) and populates the formatArgumentList List.
isOutputType is true when using a format string for a function that "outputs"
Strings (e.g., printf, fprintf, etc.). When it's false, it evaluates the
String's data types as if the function "inputs" Strings (e.g., scanf)

@param formatString       Format String
@param formatArgumentList   List of FormatArgument that will be written to
@param isOutputType Type of variadic function
@return True if format string successfully parsed
Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/string/variadic/FormatStringParser.java