public ErrorMatch Match(ReadOnlyLineBuffer Input)
        {
            Match Match;

            if (Input.TryMatch(@"^(\s*)([a-zA-Z_][a-zA-Z0-9_]*):\s*(Error|Warning|Display): ", out Match))
            {
                int MaxOffset = Input.MatchForwards(0, String.Format(@"^({0} | *$)", Match.Groups[1].Value));

                ErrorSeverity Severity;
                switch (Match.Groups[3].Value)
                {
                case "Error":
                    Severity = ErrorSeverity.Error;
                    break;

                case "Warning":
                    Severity = ErrorSeverity.Warning;
                    break;

                default:
                    Severity = ErrorSeverity.Silent;
                    break;
                }

                ErrorMatch Error = new ErrorMatch(Severity, ErrorPriority.Low, "Log", Input, 0, MaxOffset);
                Error.Properties["Channel"] = Match.Groups[2].Value;
                return(Error);
            }
            return(null);
        }
示例#2
0
        public ErrorMatch Match(ReadOnlyLineBuffer Input)
        {
            Match Match;

            if (Input.TryMatch(@"^(\s*)WARNING: ThreadSanitizer:", out Match))
            {
                int EndIdx = Input.MatchForwards(0, String.Format(@"^([ ]*|{0}  .*|{0}SUMMARY:.*)\$", Match.Groups[1].Value));
                return(new ErrorMatch(ErrorSeverity.Warning, ErrorPriority.Normal, "ThreadSanitizer", Input, 0, EndIdx));
            }
            return(null);
        }