From fa31d21ba92669a521a7768467246918e3947e02 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 1 Apr 2021 13:39:11 -0400 Subject: 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. --- source/compiler-core/slang-core-diagnostics.cpp | 50 +++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 source/compiler-core/slang-core-diagnostics.cpp (limited to 'source/compiler-core/slang-core-diagnostics.cpp') 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 s_lookup = _newCoreDiagnosticsLookup(); + return s_lookup; +} + +} // namespace Slang -- cgit v1.2.3