public string getAnalysisSummary()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine();
sb.Append("\n" + banner("Analysis summary"));
string duration = FormatTime(DateTime.Now - this.startTime);
sb.Append("\n- total time: " + duration);
sb.Append("\n- modules loaded: " + loadedFiles.Count);
sb.Append("\n- semantic problems: " + semanticErrors.Count);
sb.Append("\n- failed to parse: " + failedToParse.Count);
// calculate number of defs, refs, xrefs
int nDef = 0, nXRef = 0;
foreach (Binding b in GetAllBindings())
{
nDef += 1;
nXRef += b.refs.Count;
}
sb.Append("\n- number of definitions: " + nDef);
sb.Append("\n- number of cross references: " + nXRef);
sb.Append("\n- number of references: " + getReferences().Count);
long resolved = this.resolved.Count;
long unresolved = this.unresolved.Count;
sb.Append("\n- resolved names: " + resolved);
sb.Append("\n- unresolved names: " + unresolved);
sb.Append("\n- name resolve rate: " + Percent(resolved, resolved + unresolved));
return sb.ToString();
}