private static void CompileRule(MacroRule rule, StringBuilder regex, IList <string> captures, bool isFirstRule) { if (!isFirstRule) { regex.AppendLine(); regex.AppendLine(); regex.AppendLine("|"); regex.AppendLine(); } regex.AppendFormat("(?-xis)(?m)({0})(?x)", rule.Regex); int numberOfCaptures = GetNumberOfCaptures(rule.Regex); for (int i = 0; i <= numberOfCaptures; i++) { string scope = null; foreach (int captureIndex in rule.Captures.Keys) { if (i == captureIndex) { scope = rule.Captures[captureIndex]; break; } } captures.Add(scope); } }
private static void CompileRule(MacroRule rule, StringBuilder regex, IList<string> captures, bool isFirstRule) { if (!isFirstRule) { regex.AppendLine(); regex.AppendLine(); regex.AppendLine("|"); regex.AppendLine(); } regex.AppendFormat("(?-xis)(?m)({0})(?x)", rule.Regex); int numberOfCaptures = GetNumberOfCaptures(rule.Regex); for (int i = 0; i <= numberOfCaptures; i++) { string scope = null; foreach (int captureIndex in rule.Captures.Keys) { if (i == captureIndex) { scope = rule.Captures[captureIndex]; break; } } captures.Add(scope); } }