public void GenerateSrcMLFromFile(string sourceFileName, string xmlFileName, Language language) {
if(language == Language.Any) {
string ext = Path.GetExtension(sourceFileName);
if(ext == null || !extensionMapping.ContainsKey(ext)) {
throw new ArgumentException(string.Format("Unknown file extension: {0}", ext), "sourceFileName");
}
language = extensionMapping[ext];
}
Src2SrcMLRunner2 runner = nonDefaultExecutables.ContainsKey(language) ? nonDefaultExecutables[language] : defaultExecutable;
var additionalArguments = CreateArgumentsForLanguage(language);
var runnerExtMap = CreateExtensionMappingForRunner(runner);
runner.GenerateSrcMLFromFile(sourceFileName, xmlFileName, language, additionalArguments, runnerExtMap);
}