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