summaryrefslogtreecommitdiff
path: root/source/compiler-core/slang-json-diagnostics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler-core/slang-json-diagnostics.cpp')
-rw-r--r--source/compiler-core/slang-json-diagnostics.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/source/compiler-core/slang-json-diagnostics.cpp b/source/compiler-core/slang-json-diagnostics.cpp
new file mode 100644
index 000000000..1d35e8faf
--- /dev/null
+++ b/source/compiler-core/slang-json-diagnostics.cpp
@@ -0,0 +1,33 @@
+// slang-json-diagnostics.cpp
+#include "slang-json-diagnostics.h"
+
+namespace Slang {
+
+namespace JSONDiagnostics
+{
+#define DIAGNOSTIC(id, severity, name, messageFormat) const DiagnosticInfo name = { id, Severity::severity, #name, messageFormat };
+#include "slang-json-diagnostic-defs.h"
+#undef DIAGNOSTIC
+}
+
+static const DiagnosticInfo* const kJSONDiagnostics[] =
+{
+#define DIAGNOSTIC(id, severity, name, messageFormat) &JSONDiagnostics::name,
+#include "slang-json-diagnostic-defs.h"
+#undef DIAGNOSTIC
+};
+
+static DiagnosticsLookup* _newJSONDiagnosticsLookup()
+{
+ auto lookup = new DiagnosticsLookup;
+ lookup->add(kJSONDiagnostics, SLANG_COUNT_OF(kJSONDiagnostics));
+ return lookup;
+}
+
+DiagnosticsLookup* getJSONDiagnosticsLookup()
+{
+ static RefPtr<DiagnosticsLookup> s_lookup = _newJSONDiagnosticsLookup();
+ return s_lookup;
+}
+
+} // namespace Slang