private ITableEntry ProcessKnownError(WpfTraceInfo info, Regex lineRegex, string text)
        {
            Match match = lineRegex.Match(text);

            if (!match.Success)
            {
                Debug.Fail($"Failed to parse error code {(int)info.Code}: {text}");
                return(this.ProcessUnknownError(info, text));
            }

            return(new WpfEntry(info, match, this.stringCache));
        }
        private ITableEntry ProcessLine(Match match)
        {
            string categoryString = match.Groups[WpfOutputParser.CaptureCategory].Value;
            string severityString = match.Groups[WpfOutputParser.CaptureSeverity].Value;
            string codeString     = match.Groups[WpfOutputParser.CaptureCode].Value;
            string text           = match.Groups[WpfOutputParser.CaptureText].Value;

            WpfTraceInfo info = new WpfTraceInfo(
                WpfTraceCategoryUtility.Parse(categoryString),
                WpfTraceSeverityUtility.Parse(severityString),
                WpfTraceCodeUtility.Parse(codeString));

            return(this.codeToRegex.TryGetValue(info.Code, out Regex regex)
                ? this.ProcessKnownError(info, regex, text)
                : this.ProcessUnknownError(info, text));
        }
 private ITableEntry ProcessUnknownError(WpfTraceInfo info, string lineText)
 {
     return(new WpfEntry(info, lineText, this.stringCache));
 }