uint vperrorf(ReportLevel pe, LineInfo uline, int lpos, string fmt, params object[] ap)
{
string msg = GetErrorTypeString(pe);
uint errref = unchecked((uint)-1);
if (msg != null)
{
var sugar = this.ctxsugar;
if (uline != null)
{
string file = uline.Filename;
if (file == string.Empty)
file = "0";
Console.Write("{0} ({1}:{2}) ", msg, file, uline.LineNumber);
}
else
{
Console.Write(msg + ' ');
}
Console.Write(fmt, ap);
errref = (uint)sugar.errors.Count;
sugar.errors.strings.Add(msg);
if (pe == ReportLevel.ERR || pe == ReportLevel.CRIT)
{
sugar.err_count++;
}
ReportError(pe, msg);
}
return errref;
}