diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-04-01 13:39:11 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-01 10:39:11 -0700 |
| commit | fa31d21ba92669a521a7768467246918e3947e02 (patch) | |
| tree | af98a593e24bc6309ac4d11a59562be4b22c93d7 /source/compiler-core/slang-core-diagnostics.cpp | |
| parent | 3f1632a1450a5879f337b4bd178e48880cd583f8 (diff) | |
Added compiler-core project (#1775)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Split out compiler-core initially with just slang-source-loc.cpp
* More lexer, name, token to compiler-core.
* Split Lexer and Core diagnostics.
* Move slang-file-system to core.
* Add slang-file-system to core.
* More DownstreamCompiler into compiler-core
* Fix typo.
* Add compiler-core to bootstrap proj.
* Small fixes to premake
* For linux try with compiler-core
* Remove compiler-core from examples.
* Added NameConventionUtil to compiler-core
* Add global function to CharUtil to *hopefully* avoid linking issue.
* Hack to make linkage of CharUtil work on linux.
Diffstat (limited to 'source/compiler-core/slang-core-diagnostics.cpp')
| -rw-r--r-- | source/compiler-core/slang-core-diagnostics.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/source/compiler-core/slang-core-diagnostics.cpp b/source/compiler-core/slang-core-diagnostics.cpp new file mode 100644 index 000000000..7aa6c5c14 --- /dev/null +++ b/source/compiler-core/slang-core-diagnostics.cpp @@ -0,0 +1,50 @@ +// slang-core-diagnostics.cpp +#include "slang-core-diagnostics.h" + +namespace Slang { + +namespace MiscDiagnostics +{ +#define DIAGNOSTIC(id, severity, name, messageFormat) const DiagnosticInfo name = { id, Severity::severity, #name, messageFormat }; +#include "slang-misc-diagnostic-defs.h" +#undef DIAGNOSTIC +} + +static const DiagnosticInfo* const kMiscDiagnostics[] = +{ +#define DIAGNOSTIC(id, severity, name, messageFormat) &MiscDiagnostics::name, +#include "slang-misc-diagnostic-defs.h" +#undef DIAGNOSTIC +}; + + +namespace LexerDiagnostics +{ +#define DIAGNOSTIC(id, severity, name, messageFormat) const DiagnosticInfo name = { id, Severity::severity, #name, messageFormat }; +#include "slang-lexer-diagnostic-defs.h" +#undef DIAGNOSTIC +} + +static const DiagnosticInfo* const kLexerDiagnostics[] = +{ +#define DIAGNOSTIC(id, severity, name, messageFormat) &LexerDiagnostics::name, +#include "slang-lexer-diagnostic-defs.h" +#undef DIAGNOSTIC +}; + +static DiagnosticsLookup* _newCoreDiagnosticsLookup() +{ + auto lookup = new DiagnosticsLookup; + lookup->add(kMiscDiagnostics, SLANG_COUNT_OF(kMiscDiagnostics)); + lookup->add(kLexerDiagnostics, SLANG_COUNT_OF(kLexerDiagnostics)); + + return lookup; +} + +DiagnosticsLookup* getCoreDiagnosticsLookup() +{ + static RefPtr<DiagnosticsLookup> s_lookup = _newCoreDiagnosticsLookup(); + return s_lookup; +} + +} // namespace Slang |
