private void MakeRegexes()
{
try
{
Groups.Clear();
TypoCount = 0;
Groups.Add(new TypoGroup(20, @"^\\b(\(\[[A-M].*)\\b$", @"[^\\]\\\d", @"\b", @"\b"));
Groups.Add(new TypoGroup(19, @"^\\b(\(\[[N-Z].*)\\b$", @"[^\\]\\\d", @"\b", @"\b"));
Groups.Add(new TypoGroup(18, @"^\\b((\(|\[)?[A-Za-z].*)", @"[^\\]\\\d", @"\b", @""));
Groups.Add(new TypoGroup(5, null, @"[^\\]\\\d", "", ""));
Groups.Add(new TypoGroup(1, null, null, "", ""));
Dictionary<string, string> typoStrings = Source.GetTypos();
TyposLoaded = typoStrings.Count > 0;
if (TyposLoaded)
{
foreach (KeyValuePair<string, string> rule in typoStrings)
{
foreach (TypoGroup grp in Groups)
{
if (grp.IsSuitableTypo(rule.Key))
{
grp.Add(rule.Key, rule.Value);
TypoCount++;
break;
}
}
}
foreach (TypoGroup grp in Groups)
grp.MakeGroups();
}
}
catch (TypoException)
{
Groups.Clear();
TypoCount = 0;
TyposLoaded = false;
}
catch (Exception ex)
{
TyposLoaded = false;
ErrorHandler.HandleException(ex);
}
finally
{
if (Complete != null) Complete(TypoThread);
}
}