diff options
author | rtk0c <[email protected]> | 2022-07-17 23:09:00 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2022-07-17 23:09:00 -0700 |
commit | 8c2b1bd5bd85667a2ea24ec3aa85cbdd97f9ea1c (patch) | |
tree | 80b12277b667747aa4f18ebcc3931c2ea618cb1e /source/20-codegen-compiler/CodegenUtils.hpp | |
parent | c6e57dc94e532442ffa0bd57a16206217adbca92 (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.hpp | 4 |
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); |