diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-02-02 17:45:56 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-02 14:45:56 -0800 |
| commit | 17d2b2492d42e54ea4e0d907b4d84aa17f4a6f33 (patch) | |
| tree | bdcc4b0aba860139a011ca052e505b9202c6152c /tools/slang-test/parse-diagnostic-util.h | |
| parent | 5d755e584ff6c241f42204430e005b26314ed594 (diff) | |
Downstream compiler line number test (#1682)
* #include an absolute path didn't work - because paths were taken to always be relative.
* WIP diagnostics for line number output.
* Small param naming change
* Use x macro for pass through compile human name lookup/getting.
* WIP on parsing downstream compiler output.
* Split out parsing into ParseDiagnosticUtil.
Added test result of single line.
* Dump out the std output on fail to parse diagnostics.
* Change test type for syntax-error-intrinsic.slang be TEST not TEST_DIAGNOSTIC
Diffstat (limited to 'tools/slang-test/parse-diagnostic-util.h')
| -rw-r--r-- | tools/slang-test/parse-diagnostic-util.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/slang-test/parse-diagnostic-util.h b/tools/slang-test/parse-diagnostic-util.h new file mode 100644 index 000000000..26349b779 --- /dev/null +++ b/tools/slang-test/parse-diagnostic-util.h @@ -0,0 +1,30 @@ +// parse-diagnostic-util.h + +#ifndef PARSE_DIAGNOSTIC_UTIL_H +#define PARSE_DIAGNOSTIC_UTIL_H + +#include "../../source/core/slang-string-util.h" +#include "../../source/core/slang-downstream-compiler.h" +#include "../../source/core/slang-string.h" + +#include "../../slang-com-ptr.h" + +struct ParseDiagnosticUtil +{ + static SlangResult splitPathLocation(const Slang::UnownedStringSlice& pathLocation, Slang::DownstreamDiagnostic& outDiagnostic); + + static SlangResult parseFXCLine(const Slang::UnownedStringSlice& line, Slang::List<Slang::UnownedStringSlice>& lineSlices, Slang::DownstreamDiagnostic& outDiagnostic); + + static SlangResult parseDXCLine(const Slang::UnownedStringSlice& line, Slang::List<Slang::UnownedStringSlice>& lineSlices, Slang::DownstreamDiagnostic& outDiagnostic); + + static SlangResult parseGlslangLine(const Slang::UnownedStringSlice& line, Slang::List<Slang::UnownedStringSlice>& lineSlices, Slang::DownstreamDiagnostic& outDiagnostic); + + static SlangResult parseGenericLine(const Slang::UnownedStringSlice& line, Slang::List<Slang::UnownedStringSlice>& lineSlices, Slang::DownstreamDiagnostic& outDiagnostic); + + static SlangResult splitCompilerDiagnosticLine(SlangPassThrough downstreamCompiler, const Slang::UnownedStringSlice& line, Slang::UnownedStringSlice& linePrefix, Slang::List<Slang::UnownedStringSlice>& outSlices); + + static SlangResult parseDiagnostics(const Slang::UnownedStringSlice& inText, Slang::List<Slang::DownstreamDiagnostic>& outDiagnostics); + +}; + +#endif // PARSE_DIAGNOSTIC_UTIL_H |
