| 1234567891011121314151617181920212223242526272829303132333435 |
- // Define the diagnostic mappings.
- class DiagMapping;
- def MAP_IGNORE : DiagMapping;
- def MAP_WARNING : DiagMapping;
- def MAP_ERROR : DiagMapping;
- def MAP_FATAL : DiagMapping;
- // Define the diagnostic classes.
- class DiagClass;
- def CLASS_NOTE : DiagClass;
- def CLASS_WARNING : DiagClass;
- def CLASS_EXTENSION : DiagClass;
- def CLASS_ERROR : DiagClass;
- class DiagGroup<string Name, list<DiagGroup> subgroups = []> {
- string GroupName = Name;
- list<DiagGroup> SubGroups = subgroups;
- string CategoryName = "";
- }
- class InGroup<DiagGroup G> { DiagGroup Group = G; }
- // All diagnostics emitted by the compiler are an indirect subclass of this.
- class Diagnostic<string text, DiagClass DC, DiagMapping defaultmapping> {
- string Text = text;
- DiagClass Class = DC;
- DiagMapping DefaultMapping = defaultmapping;
- DiagGroup Group;
- string CategoryName = "";
- }
- class Error<string str> : Diagnostic<str, CLASS_ERROR, MAP_ERROR>;
- class Warning<string str> : Diagnostic<str, CLASS_WARNING, MAP_WARNING>;
- class Extension<string str> : Diagnostic<str, CLASS_EXTENSION, MAP_IGNORE>;
- class ExtWarn<string str> : Diagnostic<str, CLASS_EXTENSION, MAP_WARNING>;
- class Note<string str> : Diagnostic<str, CLASS_NOTE, MAP_FATAL/*ignored*/>;
|