private Dictionary<string, Language> CreateExtensionMappingForRunner(Src2SrcMLRunner2 runner) {
Dictionary<string, Language> extensionMapForRunner = new Dictionary<string, Language>(StringComparer.OrdinalIgnoreCase);
IEnumerable<KeyValuePair<string, Language>> kvps = Enumerable.Empty<KeyValuePair<string,Language>>();
if(runner == defaultExecutable) {
kvps = from kvp in ExtensionMapping
where defaultLanguages.Contains(kvp.Value)
select kvp;
} else if(nonDefaultExecutables.Values.Contains(runner)) {
var registeredLanguages = (from kvp in nonDefaultExecutables
where kvp.Value == runner
select kvp.Key).ToList();
kvps = from kvp in ExtensionMapping
where registeredLanguages.Contains(kvp.Value)
select kvp;
}
foreach(var kvp in kvps) {
extensionMapForRunner[kvp.Key] = kvp.Value;
}
return extensionMapForRunner;
}