/// <summary> /// Parses the master output. /// </summary> /// <param name="message">The message.</param> private void ParseMasterOutput(string message) { if (message == null) { return; } // Parse the message string[] parsed = message.Split("~".ToCharArray(), 5); if (parsed.Length == 5) { string module = parsed[0]; string warninglevel = parsed[1]; string filename = parsed[2]; string line = parsed[3]; string msg = parsed[4]; DebugMode mode; try { mode = (DebugMode)DebugMode.Parse(typeof(DebugMode), warninglevel, true); } catch (Exception) { mode = DebugMode.Warning; } int linenumber = 0; try { linenumber = Convert.ToInt32(parsed[3]); } catch (Exception) { linenumber = 0; } if (this.BuildErrorsEncountered && message.Equals("")) { this.BuildErrorsEncountered = false; } // Check for compilation errors if (msg != null && msg.StartsWith("RECOMACOMERROR:")) { this.BuildErrorsEncountered = true; } else { this.BuildErrorsEncountered = false; } // Update task list with compilation errors if (this.BuildErrorsEncountered) { try { string comError = "RECOMACOMERROR:"; string file = msg.Substring(comError.Length, msg.IndexOf("(") - comError.Length).Replace("/", "\\"); string rest = msg.Substring(file.Length + 1 + comError.Length); int lineRecoma = 0; lineRecoma = int.Parse((rest.Substring(0, rest.IndexOf(",")))); rest = rest.Substring(rest.IndexOf(")") + 2).TrimStart(); DebugMode dm; if (rest.StartsWith("warning")) { dm = DebugMode.Warning; } else { dm = DebugMode.Error; } this.LogMessage(dm, "RECOMA", rest, file, lineRecoma); } catch (Exception) { Log.LogError(msg); } } else { this.LogMessage(mode, module, msg, filename, linenumber); } } else { this.LogMessage(message); } }