aboutsummaryrefslogtreecommitdiff
path: root/source/20-codegen-compiler/CodegenUtils.hpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2022-07-17 23:09:00 -0700
committerrtk0c <[email protected]>2022-07-17 23:09:00 -0700
commit8c2b1bd5bd85667a2ea24ec3aa85cbdd97f9ea1c (patch)
tree80b12277b667747aa4f18ebcc3931c2ea618cb1e /source/20-codegen-compiler/CodegenUtils.hpp
parentc6e57dc94e532442ffa0bd57a16206217adbca92 (diff)
Changeset: 85 Work on codegen (a big blob of changes about various things, giving up on writing a clear commit message)
- stuff along the lines of cleaning up store process - remove completed TODOs - move code generation out of parser loop - ^^^ also introduce some weird bugs of DeclXxx::name field disappearing -- maybe fixed, maybe didn't, can't reliably reproduce - add infra to mangle (not included in codegen yet, also not tested) - convert SourceFile storage map to node map, ensuring pointer stability (was broken before) - buildsystem asan and UBsan applying to all targest
Diffstat (limited to 'source/20-codegen-compiler/CodegenUtils.hpp')
-rw-r--r--source/20-codegen-compiler/CodegenUtils.hpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/20-codegen-compiler/CodegenUtils.hpp b/source/20-codegen-compiler/CodegenUtils.hpp
index be62f1e..2d5b684 100644
--- a/source/20-codegen-compiler/CodegenUtils.hpp
+++ b/source/20-codegen-compiler/CodegenUtils.hpp
@@ -5,6 +5,7 @@
#include "CodegenOutput.hpp"
#include <algorithm>
+#include <string>
#include <string_view>
// I give up, hopefully nothing overflows this buffer
@@ -44,7 +45,10 @@ namespace Utils {
bool WriteOutputFile(const CodegenOutput& output, const char* path);
+std::string JoinNames(DeclNamespace* ns, std::string_view prefix, std::string_view suffix, std::string_view delimiter);
std::string MakeFullName(std::string_view name, DeclNamespace* ns = nullptr);
+std::string MakeMangledName(std::string_view name, DeclNamespace* ns = nullptr);
+
std::vector<std::string_view> SplitIdentifier(std::string_view name);
std::string MakePascalCase(std::string_view name);