public override void Error(string message, Parsed.Object source, bool isWarning)
{
ErrorType errorType = isWarning ? ErrorType.Warning : ErrorType.Error;
var sb = new StringBuilder ();
if (source is AuthorWarning) {
sb.Append ("TODO: ");
errorType = ErrorType.Author;
} else if (isWarning) {
sb.Append ("WARNING: ");
} else {
sb.Append ("ERROR: ");
}
if (source && source.debugMetadata != null && source.debugMetadata.startLineNumber >= 1 ) {
if (source.debugMetadata.fileName != null) {
sb.AppendFormat ("'{0}' ", source.debugMetadata.fileName);
}
sb.AppendFormat ("line {0}: ", source.debugMetadata.startLineNumber);
}
sb.Append (message);
message = sb.ToString ();
if (_errorHandler != null) {
_errorHandler (message, errorType);
} else {
Console.WriteLine (message);
}
_hadError = errorType == ErrorType.Error;
_hadWarning = errorType == ErrorType.Warning;
}