private SynonymMap LoadSynonyms(IResourceLoader loader, string cname, bool dedup, Analyzer analyzer)
{
Encoding decoder = Encoding.UTF8;
SynonymMap.Parser parser;
Type clazz = loader.FindClass(cname /*, typeof(SynonymMap.Parser) */);
try
{
parser = (SynonymMap.Parser)Activator.CreateInstance(clazz,
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
null, new object[] { dedup, expand, analyzer }, CultureInfo.InvariantCulture);
}
catch (Exception e)
{
throw e;
}
if (File.Exists(synonyms))
{
parser.Parse(new StreamReader(loader.OpenResource(synonyms), decoder));
}
else
{
IEnumerable<string> files = SplitFileNames(synonyms);
foreach (string file in files)
{
parser.Parse(new StreamReader(loader.OpenResource(synonyms), decoder));
}
}
return parser.Build();
}