private int handleOutputConversionArgument(String formatString, int i, FormatParsingData data,
			List<FormatArgument> formatArgumentList) {
		char c = formatString.charAt(i);
		if (!data.isPrecisionComplete() && !data.isFieldWidthComplete() && c != '.') {
			if (c == '*') {
				formatArgumentList.add(new FormatArgument(null, "*"));
			}
			else {
				i = skipIntegers(formatString, i);
			}
			if (i == -1) {
				return i;
			}
			data.setFieldWidthComplete(true);
		}
		else if (data.isFieldWidthComplete() && c != '.') {
			return -1;
		}
		else if (!data.isPrecisionComplete() && c == '.') {
			if (i + 1 < formatString.length() && formatString.charAt(i + 1) == '*') {
				++i;
				formatArgumentList.add(new FormatArgument(null, "*"));
			}
			else {
				i = skipIntegers(formatString, i + 1);
			}
			if (i == -1) {
				return i;
			}
			data.setPrecisionComplete(true);
		}
		else {
			return -1;
		}
		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