protected void parse(String[] filenames, String[] includePaths, String options) {
		if (currentProgram == null) {
			Msg.showInfo(getClass(), parseDialog.getComponent(), "No Open Program",
				"A program must be open to \"Parse to Program\"");
			return;
		}
		/*
		 * always use the processor/compiler for the program when parsing to program
		 */
		LanguageCompilerSpecPair languageCompilerSpecPair = currentProgram.getLanguageCompilerSpecPair();
		String procID = languageCompilerSpecPair.languageID.getIdAsString();
		String compilerID = languageCompilerSpecPair.compilerSpecID.getIdAsString();
		
		int result = OptionDialog.showOptionDialog(parseDialog.getComponent(), "Confirm",
			"Parse C source to \"" + currentProgram.getDomainFile().getName() + "\"?" + "\n\n" +
		    "Using program architecture: " + procID + " / " + compilerID, "Continue");

		if (result == OptionDialog.CANCEL_OPTION) {
			return;
		}

		CParserTask parseTask =
			new CParserTask(this, currentProgram.getDataTypeManager())
					.setFileNames(filenames)
					.setIncludePaths(includePaths)
					.setOptions(options);

		tool.execute(parseTask);
	}
Get open data type managers.
   User can Use Open managers, Select not to use, or Cancel
   
@return array of open data type managers

@throws CancelledException if user cancels
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/cparser/CParserPlugin.java