summaryrefslogtreecommitdiff
path: root/tools/slang-test/parse-diagnostic-util.h
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2021-02-02 17:45:56 -0500
committerGitHub <noreply@github.com>2021-02-02 14:45:56 -0800
commit17d2b2492d42e54ea4e0d907b4d84aa17f4a6f33 (patch)
treebdcc4b0aba860139a011ca052e505b9202c6152c /tools/slang-test/parse-diagnostic-util.h
parent5d755e584ff6c241f42204430e005b26314ed594 (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.h30
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