aboutsummaryrefslogtreecommitdiff
path: root/source/CodegenCompiler/CodegenDecl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/CodegenCompiler/CodegenDecl.hpp')
-rw-r--r--source/CodegenCompiler/CodegenDecl.hpp101
1 files changed, 0 insertions, 101 deletions
diff --git a/source/CodegenCompiler/CodegenDecl.hpp b/source/CodegenCompiler/CodegenDecl.hpp
deleted file mode 100644
index 0728c08..0000000
--- a/source/CodegenCompiler/CodegenDecl.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#pragma once
-
-#include <string>
-#include <vector>
-
-// TODO replace std::string name with std::string_view into the token storage?
-
-struct DeclNamespace {
- DeclNamespace* container = nullptr;
- std::string name;
- std::string_view fullname; // View into storage map key
-};
-
-struct DeclStruct;
-struct DeclMemberVariable {
- DeclStruct* containerStruct = nullptr;
- std::string name;
- std::string type;
- std::string getterName;
- std::string setterName;
-};
-struct DeclMemberFunction {
- DeclStruct* containerStruct = nullptr;
- // TODO
-};
-
-// Structs or classes
-struct DeclStruct {
- DeclNamespace* container = nullptr;
- std::vector<const DeclStruct*> baseClasses;
- std::vector<DeclMemberVariable> memberVariables;
- std::vector<DeclMemberVariable> generatedVariables;
- std::vector<DeclMemberFunction> memberFunctions;
- std::vector<DeclMemberFunction> generatedFunctions;
- std::string name;
- std::string_view fullname;
-
- // Scanned generation options
- bool generating : 1 = false;
- bool generatingInheritanceHiearchy : 1 = false;
-};
-
-enum EnumUnderlyingType {
- EUT_Int8,
- EUT_Int16,
- EUT_Int32,
- EUT_Int64,
- EUT_Uint8,
- EUT_Uint16,
- EUT_Uint32,
- EUT_Uint64,
- EUT_COUNT,
-};
-
-enum EnumValuePattern {
- // The numbers cover n..m with no gaps
- EVP_Continuous,
- // The numbers cover for i in n..m, 1 << i
- // e.g. [0] = 1 << 0,
- // [1] = 1 << 1.
- // [2] = 1 << 2. etc.
- EVP_Bits,
- // The numbesr don't have a particular pattern
- EVP_Random,
- EVP_COUNT,
-};
-
-struct DeclEnumElement {
- std::string name;
- // TODO support int64_t, etc. enum underlying types
- uint64_t value;
-};
-
-struct DeclEnum {
- DeclNamespace* container = nullptr;
- std::string name;
- std::string_view fullname;
- std::vector<DeclEnumElement> elements;
- EnumUnderlyingType underlyingType;
- // Start with invalid value, calculate on demand
- mutable EnumValuePattern pattern = EVP_COUNT;
-
- EnumValuePattern CalcPattern() const;
- EnumValuePattern GetPattern() const;
-};
-
-struct DeclFunctionArgument {
- std::string type;
- std::string name;
-};
-
-struct DeclFunction {
- DeclNamespace* container = nullptr;
- // Things like extern, static, etc. that gets written before the function return type
- std::string prefix;
- std::string name;
- std::string_view fullname;
- std::string returnType;
- std::vector<DeclFunctionArgument> arguments;
- std::string body;
-};