summaryrefslogtreecommitdiffstats
path: root/source/core/slang-hex-dump-util.h
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2019-07-17 10:26:37 -0400
committerGitHub <noreply@github.com>2019-07-17 10:26:37 -0400
commit749634a2a6e03acf435c39f78b933a01b90a7440 (patch)
tree950203d3fc29610428b0ca03eb756911b9b11f47 /source/core/slang-hex-dump-util.h
parentf52f5cd4a7b5b71617b949fc62a78abe8c4822b3 (diff)
Slang -> C++ -> SharedLibrary -> Test (#999)
* WIP: Adding support for C/C++ compilation to slang API. * Removed BackEndType in test harness -> use SlangPassThrough to identify backends Only require stage for targets that require it. Detection of all different backends. * Windows/Unix create temporary filename. * WIP: Output CPU binaries. * Added a pass-through c/c++ test. * Compile C++/C and store in temporary file. * Read the binary back into memory. * Set debug info and optimization flags for C/C++. Make the CPPCompiler debug/optimization levels match slangs. * Handling of include paths and math precision. * Dumping c++/c source and exe/shared library. * Put hex dump into own util. * End to end pass through c compilation test. * WIP: Simple execute test working on Linux/Unix. * Fix typo on linux. * WIP: To compile slang to cpp shared library. Report backend compiler errors. * Compiles slang -> cpp and loads as shared library. * Fix problem on c-cross-compile test because prelude is now included with <> quotes. * Run slang generated cpp code - using hard coded data. * Added cpp-execute-simple, and test output. * Fix warning that broke win32 build. * Fix compilation problem on osx.
Diffstat (limited to 'source/core/slang-hex-dump-util.h')
-rw-r--r--source/core/slang-hex-dump-util.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/source/core/slang-hex-dump-util.h b/source/core/slang-hex-dump-util.h
new file mode 100644
index 000000000..580f5a120
--- /dev/null
+++ b/source/core/slang-hex-dump-util.h
@@ -0,0 +1,28 @@
+#ifndef SLANG_HEX_DUMP_UTIL_H
+#define SLANG_HEX_DUMP_UTIL_H
+
+#include "slang-common.h"
+#include "slang-string.h"
+
+#include "slang-list.h"
+#include "../../slang.h"
+
+namespace Slang
+{
+
+struct HexDumpUtil
+{
+ /// Dump data to writer, with lines starting with hex data
+ static SlangResult dump(const List<uint8_t>& data, int numBytesPerLine, ISlangWriter* writer);
+
+ static SlangResult dumpWithMarkers(const List<uint8_t>& data, int numBytesPerLine, ISlangWriter* writer);
+
+ /// Parses lines formatted by dump, back into bytes
+ static SlangResult parse(const UnownedStringSlice& lines, List<uint8_t>& outBytes);
+
+ static SlangResult parseWithMarkers(const UnownedStringSlice& lines, List<uint8_t>& outBytes);
+};
+
+}
+
+#endif