public static void Execute(IOptions snapshot, ResultsViewModel results, RegexMethod regexMethod, TesterMode testerMode) { try { results.Reset(); if (testerMode == TesterMode.Invoke) { if (regexMethod == RegexMethod.Match) { ExecuteMatch(snapshot, results); } else if (regexMethod == RegexMethod.Replace) { ExecuteReplace(snapshot, results); } else if (regexMethod == RegexMethod.Split) { ExecuteSplit(snapshot, results); } } else if (testerMode == TesterMode.CsCode) { ExecuteCsCode(snapshot, results, regexMethod); } else if (testerMode == TesterMode.VbCode) { ExecuteVbCode(snapshot, results, regexMethod); } } catch (Exception ex) { results.SetText(ex.ToString()); } }
static void ExecuteReplace(IOptions snapshot, ResultsViewModel results) { var regex = snapshot.CreateRegex(1000); if (snapshot.MultilineInput) { var checker = new Checker(SanityLimit, 5000); var lines = Line.Split(snapshot.InputText); var list = new List <LineReplacement>(); for (var i = 0; i < lines.Length; i++) { if (checker.Terminated) { break; } var line = lines[i]; var result = regex.Replace(line.Value, snapshot.ReplacementText); list.Add(new LineReplacement(line, i + 1, result)); checker.Adjust(); } results.SetGrid(new LineReplacements(list.ToArray()), checker.State); } else { var input = snapshot.InputText; var result = regex.Replace(input, snapshot.ReplacementText); results.SetText(result); } }
static void ExecuteVbCode(IOptions snapshot, ResultsViewModel results, RegexMethod regexMethod) { var template = new Generators.VbCodeTemplate(snapshot, regexMethod); results.SetText(template.TransformText()); }