public LanguageException( BlameType type, BlameSeverity severity, Position start, Position end ) { Severity = severity; Span = new Span(start, end); Message = TypeToMessage(type); StackTrace = new StackTrace(2).ToString(); }
private static string TypeToMessage(BlameType type) { string enumMemberName = type.ToString("G"); var result = new StringBuilder(); result.Append(char.ToUpper(enumMemberName[0])); enumMemberName = enumMemberName.Remove(0, 1); foreach (char c in enumMemberName) { if (char.IsUpper(c)) { result.Append(" ").Append(char.ToLower(c)); } else { result.Append(c); } } return(result.ToString()); }
internal void Blame(BlameType type, Position start, Position end) { Blames.Add(new LanguageException(type, Spec.Blames[type], start, end)); }
internal void Blame(BlameType type, SpannedRegion region) { Blame(type, region.Span.Start, region.Span.End); }