public ErrorMatch Match(ReadOnlyLineBuffer Input) { if (Input.IsMatch(@"error: linker command failed with exit code ")) { int MinIdx = Input.MatchBackwards(0, ": In function |: undefined reference to |[^a-zA-Z]ld: "); return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Normal, "Link", Input, MinIdx, 0)); } if (Input.IsMatch("Undefined symbols for architecture")) { int MaxOffset = Input.MatchForwardsUntil(0, "ld: symbol"); return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Normal, "Link", Input, 0, MaxOffset)); } if (Input.IsMatch(@"LINK : fatal error")) { return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Normal, "Link", Input)); } return(null); }
public ErrorMatch Match(ReadOnlyLineBuffer Input) { if (Input.IsMatch(@"\s*----+Build System Warning----+")) { int MaxOffset = Input.MatchForwards(0, @"^\s*[A-Za-z]"); return(new ErrorMatch(ErrorSeverity.Warning, ErrorPriority.Normal, "Xoreax", Input, 0, MaxOffset)); } return(null); }
public ErrorMatch Match(ReadOnlyLineBuffer Input) { if (Input.IsMatch(@"^\s*Unhandled Exception: ")) { int MaxOffset = Input.MatchForwards(0, @"^\s*at "); return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Low, "Exception", Input, 0, MaxOffset)); } return(null); }
public ErrorMatch Match(ReadOnlyLineBuffer Input) { // Do the match in two phases so we can early out if the strings "error" or "warning" are not present. The patterns before these strings can // produce many false positives, making them very slow to execute. if (Input.IsMatch("error")) { if (Input.IsMatch(@"([^(]+)(\([\d,]+\))? ?: (fatal )?error [a-zA-Z]+[\d]+")) { return(ParseVisualCppMatch(Input, ErrorSeverity.Error)); } if (Input.IsMatch(@"\s*" + ClangFileLinePattern + @"\s*error\s*:")) { return(ParseClangMatch(Input, ErrorSeverity.Error)); } } if (Input.IsMatch("warning")) { if (Input.IsMatch(@"([^(]+)(\([\d,]+\))? ?: warning[ :]")) { return(ParseVisualCppMatch(Input, ErrorSeverity.Warning)); } if (Input.IsMatch(@"\s*" + ClangFileLinePattern + @"\s*warning\s*:")) { return(ParseClangMatch(Input, ErrorSeverity.Warning)); } } return(null); }
public ErrorMatch Match(ReadOnlyLineBuffer Input) { if (Input.IsMatch(@"^\s*FATAL:")) { return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Low, "Generic", Input)); } if (Input.IsMatch(@"(?<!\w)(ERROR|[Ee]rror)( (\([^)]+\)|\[[^\]]+\]))?: ")) { int MaxOffset = Input.MatchForwards(0, String.Format(@"^({0} | *$)", ExtractIndent(Input[0]))); return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Lowest, "Generic", Input, 0, MaxOffset)); } if (Input.IsMatch(@"(?<!\w)(WARNING|[Ww]arning)( (\([^)]+\)|\[[^\]]+\]))?: ")) { int MaxOffset = Input.MatchForwards(0, String.Format(@"^({0} | *$)", ExtractIndent(Input[0]))); return(new ErrorMatch(ErrorSeverity.Warning, ErrorPriority.Lowest, "Generic", Input, 0, MaxOffset)); } if (Input.IsMatch(@"[Ee]rror [A-Z]\d+\s:")) { return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Lowest, "Generic", Input)); } return(null); }
static ErrorMatch ParseVisualCppMatch(ReadOnlyLineBuffer Input, ErrorSeverity Severity) { string Pattern = String.Format("^{0} |: note:", ExtractIndent(Input[0])); int EndIdx = 0; while (Input.IsMatch(EndIdx + 1, Pattern)) { EndIdx++; } return(new ErrorMatch(Severity, ErrorPriority.High, "Compile", Input, 0, EndIdx)); }
public ErrorMatch Match(ReadOnlyLineBuffer Input) { if (Regex.IsMatch(Input[0], "begin: stack for UAT")) { for (int Idx = 1; Idx < 100; Idx++) { if (Regex.IsMatch(Input[Idx], "end: stack for UAT")) { return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.BelowNormal, "crash", Input, 0, Idx)); } } } if (Input.IsMatch("AutomationTool: Stack:")) { int EndOffset = Input.MatchForwards(0, "AutomationTool: Stack:"); return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Low, "Crash", Input, 0, EndOffset)); } if (Input.IsMatch("ExitCode=(3|139|255)")) { return(new ErrorMatch(ErrorSeverity.Error, ErrorPriority.Low, "Crash", Input)); } return(null); }