Skip to content

Commit 7130f38

Browse files
committed
Experiment to parse all classes/structs to be used for look up. The aim is to remove the need to put RELFECT_[CLASS/STRUCT]REFLECT_LOOKUP_ONLY) on classes/structs
1 parent 5da26e6 commit 7130f38

File tree

3 files changed

+462
-9
lines changed

3 files changed

+462
-9
lines changed

Reflect/inc/Reflect/FileParser/FileParser.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ namespace Reflect::Parser
5050
bool ParseFile(FileParsedData& fileData);
5151
void ParseUsingTags(FileParsedData& fileData);
5252

53+
uint64_t FindNextContainer(FileParsedData& fileData) const;
54+
uint64_t FindNextReflectContainer(FileParsedData& fileData) const;
55+
56+
bool ParseContainerReflectProperties(FileParsedData& fileData);
57+
bool ParseContainerHeader(FileParsedData& fileData);
58+
5359
bool FileHasReflectData(FileParsedData& fileData, const std::string& keyword, const EReflectType type) const;
5460
bool ReflectContainerHeader(FileParsedData& fileData, const std::string& keyword, const EReflectType type);
5561
void ReflectContainer(FileParsedData& fileData);
@@ -86,6 +92,14 @@ namespace Reflect::Parser
8692
bool CheckForComments(FileParsedData& fileData, std::string& line);
8793
bool CheckForFriends(FileParsedData& fileData, std::string_view view);
8894

95+
uint64_t CheckForTemplate(FileParsedData& fileData) const;
96+
std::vector<ReflectTemplateData> ParseTemplateData(FileParsedData& fileData) const;
97+
uint64_t FindEndOfTemplate(const FileParsedData& fileData, const uint64_t tempalteStartIdx) const;
98+
99+
bool IsCursorWithinComment(FileParsedData& fileData, uint64_t& cursor, const bool moveCursorToEnd) const;
100+
101+
const char* GetLastReflectContainerKey(const FileParsedData& fileData) const;
102+
89103
void GetReflectNameAndReflectValueTypeAndReflectModifer(std::string& str, std::string& name, EReflectValueType& valueType, EReflectValueModifier& modifer);
90104

91105
Parser::ReflectFunctionData GetFunction(FileParsedData& fileData, const std::vector<std::string>& flags);
@@ -115,6 +129,9 @@ namespace Reflect::Parser
115129
std::vector<std::string> m_directoriesParsed;
116130
const ReflectAddtionalOptions* m_options;
117131

132+
uint64_t m_toalNumberOfContainersParsed = 0;
133+
uint64_t m_toalNumberOfContainersToGenerateCode = 0;
134+
118135
std::unordered_map<std::string, std::vector<std::string>> TypeAliasMap;
119136
};
120137
}

Reflect/inc/Reflect/FileParser/ParserStructs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,9 @@ namespace Reflect::Parser
163163

164164
std::vector<ReflectMemberData> Members;
165165
std::vector<Parser::ReflectFunctionData> Functions;
166+
167+
bool GenerateReflectCode = false;
168+
bool HasBeenParsed = false;
166169
};
167170

168171
struct FileParserOptions

0 commit comments

Comments
 (0)