private List<String> parseFormatString(String formatString) {

		List<String> formatArgumentList = new ArrayList<>();
		String current = "";
		for (int i = 0; i < formatString.length(); i++) {
			char c = formatString.charAt(i);
			if (c == '%') {
				if (emitPercent(formatString, i)) {
					++i;
				}
				else {
					++i;
					c = formatString.charAt(i);
					while (!isConversionSpecifier(c)) {
						current += c;
						++i;
						if (i >= formatString.length()) {
							return null;
						}
						c = formatString.charAt(i);
					}
					formatArgumentList.add(current + c);
					current = "";
				}
			}
		}
		return formatArgumentList;
	}
This function takes in a format string and returns List of Strings each holding 
format data. Each String is a substring of the given format string that corresponds to one
or more DataTypes. These DataTypes determine which arguments need to be given to the variadic
function. For instance, given the format String "%d %4.2s", this function will return 
the List ["d", "4.2s"]

@param formatString format String
@return List of substrings of formatStr
Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/string/variadic/FormatStringParser.java