chore: update ZoneCodeGenerator code style

This commit is contained in:
Jan
2025-04-19 23:01:22 +02:00
parent 9f738da517
commit 9f8a933277
135 changed files with 4406 additions and 4299 deletions

View File

@ -2,32 +2,35 @@
#include "Domain/Information/MemberInformation.h"
#include <vector>
class MemberComputations
{
const MemberInformation* const m_info;
public:
explicit MemberComputations(const MemberInformation* member);
_NODISCARD bool ShouldIgnore() const;
_NODISCARD bool ContainsNonEmbeddedReference() const;
_NODISCARD bool ContainsSinglePointerReference() const;
_NODISCARD bool ContainsArrayPointerReference() const;
_NODISCARD bool ContainsPointerArrayReference() const;
_NODISCARD bool ContainsArrayReference() const;
_NODISCARD const IEvaluation* GetArrayPointerCountEvaluation() const;
_NODISCARD bool IsArray() const;
_NODISCARD std::vector<int> GetArraySizes() const;
_NODISCARD int GetArrayDimension() const;
_NODISCARD bool IsPointerToArray() const;
_NODISCARD std::vector<int> GetPointerToArraySizes() const;
_NODISCARD int GetPointerDepth() const;
_NODISCARD bool IsNotInDefaultNormalBlock() const;
_NODISCARD bool IsInTempBlock() const;
_NODISCARD bool IsInRuntimeBlock() const;
_NODISCARD bool IsFirstMember() const;
_NODISCARD bool IsLastMember() const;
_NODISCARD bool HasDynamicArraySize() const;
_NODISCARD bool IsDynamicMember() const;
_NODISCARD bool IsAfterPartialLoad() const;
[[nodiscard]] bool ShouldIgnore() const;
[[nodiscard]] bool ContainsNonEmbeddedReference() const;
[[nodiscard]] bool ContainsSinglePointerReference() const;
[[nodiscard]] bool ContainsArrayPointerReference() const;
[[nodiscard]] bool ContainsPointerArrayReference() const;
[[nodiscard]] bool ContainsArrayReference() const;
[[nodiscard]] const IEvaluation* GetArrayPointerCountEvaluation() const;
[[nodiscard]] bool IsArray() const;
[[nodiscard]] std::vector<int> GetArraySizes() const;
[[nodiscard]] int GetArrayDimension() const;
[[nodiscard]] bool IsPointerToArray() const;
[[nodiscard]] std::vector<int> GetPointerToArraySizes() const;
[[nodiscard]] int GetPointerDepth() const;
[[nodiscard]] bool IsNotInDefaultNormalBlock() const;
[[nodiscard]] bool IsInTempBlock() const;
[[nodiscard]] bool IsInRuntimeBlock() const;
[[nodiscard]] bool IsFirstMember() const;
[[nodiscard]] bool IsLastMember() const;
[[nodiscard]] bool HasDynamicArraySize() const;
[[nodiscard]] bool IsDynamicMember() const;
[[nodiscard]] bool IsAfterPartialLoad() const;
private:
const MemberInformation* const m_info;
};

View File

@ -2,34 +2,36 @@
#include "Domain/Evaluation/IEvaluation.h"
#include "Domain/Information/MemberInformation.h"
#include "Utils/ClassUtils.h"
#include <vector>
class DeclarationModifierComputations
{
const MemberInformation* const m_information;
std::vector<int> m_modifier_indices;
int m_combined_index;
DeclarationModifierComputations(const MemberInformation* member, std::vector<int> modifierIndices);
public:
explicit DeclarationModifierComputations(const MemberInformation* member);
_NODISCARD DeclarationModifier* GetDeclarationModifier() const;
_NODISCARD DeclarationModifier* GetNextDeclarationModifier() const;
_NODISCARD std::vector<DeclarationModifier*> GetFollowingDeclarationModifiers() const;
_NODISCARD std::vector<int> GetArrayIndices() const;
_NODISCARD bool IsArray() const;
_NODISCARD int GetArraySize() const;
_NODISCARD bool HasDynamicArrayCount() const;
_NODISCARD const IEvaluation* GetDynamicArrayCountEvaluation() const;
_NODISCARD std::vector<DeclarationModifierComputations> GetArrayEntries() const;
_NODISCARD bool IsSinglePointer() const;
_NODISCARD bool IsArrayPointer() const;
_NODISCARD const IEvaluation* GetArrayPointerCountEvaluation() const;
_NODISCARD bool IsPointerArray() const;
_NODISCARD const IEvaluation* GetPointerArrayCountEvaluation() const;
_NODISCARD bool IsDynamicArray() const;
_NODISCARD const IEvaluation* GetDynamicArraySizeEvaluation() const;
_NODISCARD unsigned GetAlignment() const;
[[nodiscard]] DeclarationModifier* GetDeclarationModifier() const;
[[nodiscard]] DeclarationModifier* GetNextDeclarationModifier() const;
[[nodiscard]] std::vector<DeclarationModifier*> GetFollowingDeclarationModifiers() const;
[[nodiscard]] std::vector<int> GetArrayIndices() const;
[[nodiscard]] bool IsArray() const;
[[nodiscard]] int GetArraySize() const;
[[nodiscard]] bool HasDynamicArrayCount() const;
[[nodiscard]] const IEvaluation* GetDynamicArrayCountEvaluation() const;
[[nodiscard]] std::vector<DeclarationModifierComputations> GetArrayEntries() const;
[[nodiscard]] bool IsSinglePointer() const;
[[nodiscard]] bool IsArrayPointer() const;
[[nodiscard]] const IEvaluation* GetArrayPointerCountEvaluation() const;
[[nodiscard]] bool IsPointerArray() const;
[[nodiscard]] const IEvaluation* GetPointerArrayCountEvaluation() const;
[[nodiscard]] bool IsDynamicArray() const;
[[nodiscard]] const IEvaluation* GetDynamicArraySizeEvaluation() const;
[[nodiscard]] unsigned GetAlignment() const;
private:
DeclarationModifierComputations(const MemberInformation* member, std::vector<int> modifierIndices);
const MemberInformation* const m_information;
std::vector<int> m_modifier_indices;
int m_combined_index;
};

View File

@ -4,12 +4,13 @@
class StructureComputations
{
const StructureInformation* const m_info;
public:
explicit StructureComputations(const StructureInformation* structure);
_NODISCARD bool IsAsset() const;
_NODISCARD MemberInformation* GetDynamicMember() const;
_NODISCARD std::vector<MemberInformation*> GetUsedMembers() const;
[[nodiscard]] bool IsAsset() const;
[[nodiscard]] MemberInformation* GetDynamicMember() const;
[[nodiscard]] std::vector<MemberInformation*> GetUsedMembers() const;
private:
const StructureInformation* m_info;
};

View File

@ -2,13 +2,16 @@
#include "DeclarationModifier.h"
#include "Domain/Evaluation/IEvaluation.h"
#include "Utils/ClassUtils.h"
#include <memory>
class ArrayDeclarationModifier final : public DeclarationModifier
{
public:
explicit ArrayDeclarationModifier(int size);
[[nodiscard]] DeclarationModifierType GetType() const override;
int m_size;
/**
@ -20,8 +23,4 @@ public:
* \brief The array has a size that is given by \c m_size but only a certain dynamic amount is handled by generated count.
*/
std::unique_ptr<IEvaluation> m_dynamic_count_evaluation;
explicit ArrayDeclarationModifier(int size);
_NODISCARD DeclarationModifierType GetType() const override;
};

View File

@ -4,17 +4,6 @@
class BaseTypeDefinition final : public DataDefinition
{
public:
const unsigned m_size;
private:
BaseTypeDefinition(std::string name, unsigned size);
public:
_NODISCARD DataDefinitionType GetType() const override;
_NODISCARD unsigned GetAlignment() const override;
_NODISCARD bool GetForceAlignment() const override;
_NODISCARD unsigned GetSize() const override;
static const BaseTypeDefinition* const FLOAT;
static const BaseTypeDefinition* const DOUBLE;
static const BaseTypeDefinition* const BOOL;
@ -32,4 +21,14 @@ public:
static const BaseTypeDefinition* const ALL_BASE_TYPES[];
static const size_t ALL_BASE_TYPES_COUNT;
[[nodiscard]] DataDefinitionType GetType() const override;
[[nodiscard]] unsigned GetAlignment() const override;
[[nodiscard]] bool GetForceAlignment() const override;
[[nodiscard]] unsigned GetSize() const override;
const unsigned m_size;
private:
BaseTypeDefinition(std::string name, unsigned size);
};

View File

@ -25,13 +25,13 @@ public:
DataDefinition& operator=(const DataDefinition& other) = default;
DataDefinition& operator=(DataDefinition&& other) noexcept = default;
[[nodiscard]] virtual DataDefinitionType GetType() const = 0;
[[nodiscard]] virtual unsigned GetAlignment() const = 0;
[[nodiscard]] virtual bool GetForceAlignment() const = 0;
[[nodiscard]] virtual unsigned GetSize() const = 0;
[[nodiscard]] std::string GetFullName() const;
std::string m_namespace;
std::string m_name;
_NODISCARD virtual DataDefinitionType GetType() const = 0;
_NODISCARD virtual unsigned GetAlignment() const = 0;
_NODISCARD virtual bool GetForceAlignment() const = 0;
_NODISCARD virtual unsigned GetSize() const = 0;
_NODISCARD std::string GetFullName() const;
};

View File

@ -18,5 +18,5 @@ public:
DeclarationModifier& operator=(const DeclarationModifier& other) = default;
DeclarationModifier& operator=(DeclarationModifier&& other) noexcept = default;
_NODISCARD virtual DeclarationModifierType GetType() const = 0;
[[nodiscard]] virtual DeclarationModifierType GetType() const = 0;
};

View File

@ -14,26 +14,6 @@ DefinitionWithMembers::DefinitionWithMembers(std::string _namespace, std::string
{
}
// void DefinitionWithMembers::CalculateAlignment()
//{
// if (m_has_alignment_override)
// {
// m_flags |= FLAG_ALIGNMENT_FORCED;
// m_alignment = m_alignment_override;
// }
// else
// {
// m_alignment = 0;
// for (const auto& member : m_members)
// {
// const auto memberAlignment = member->GetAlignment();
// if (memberAlignment > m_alignment)
// m_alignment = memberAlignment;
// }
// }
// m_flags |= FLAG_ALIGNMENT_CALCULATED;
// }
unsigned DefinitionWithMembers::GetAlignment() const
{
assert(m_flags & FLAG_FIELDS_CALCULATED);

View File

@ -13,6 +13,12 @@ public:
static constexpr int FLAG_FIELDS_CALCULATING = 1 << 1;
static constexpr int FLAG_ALIGNMENT_FORCED = 1 << 2;
DefinitionWithMembers(std::string _namespace, std::string name, unsigned pack);
[[nodiscard]] unsigned GetAlignment() const override;
[[nodiscard]] bool GetForceAlignment() const override;
[[nodiscard]] unsigned GetSize() const override;
unsigned m_flags;
unsigned m_size;
unsigned m_alignment;
@ -24,10 +30,4 @@ public:
unsigned m_alignment_override;
std::vector<std::shared_ptr<Variable>> m_members;
DefinitionWithMembers(std::string _namespace, std::string name, unsigned pack);
_NODISCARD unsigned GetAlignment() const override;
_NODISCARD bool GetForceAlignment() const override;
_NODISCARD unsigned GetSize() const override;
};

View File

@ -10,15 +10,15 @@
class EnumDefinition final : public DataDefinition
{
public:
const BaseTypeDefinition* m_parent_type;
std::vector<std::unique_ptr<EnumMember>> m_members;
EnumDefinition(std::string _namespace, std::string name, const BaseTypeDefinition* parentType);
_NODISCARD DataDefinitionType GetType() const override;
_NODISCARD unsigned GetAlignment() const override;
_NODISCARD bool GetForceAlignment() const override;
_NODISCARD unsigned GetSize() const override;
[[nodiscard]] DataDefinitionType GetType() const override;
[[nodiscard]] unsigned GetAlignment() const override;
[[nodiscard]] bool GetForceAlignment() const override;
[[nodiscard]] unsigned GetSize() const override;
void AddEnumMember(EnumMember enumMember);
const BaseTypeDefinition* m_parent_type;
std::vector<std::unique_ptr<EnumMember>> m_members;
};

View File

@ -5,9 +5,9 @@
class EnumMember
{
public:
std::string m_name;
int m_value;
EnumMember();
EnumMember(std::string name, int value);
std::string m_name;
int m_value;
};

View File

@ -5,13 +5,13 @@
class ForwardDeclaration final : public DataDefinition
{
public:
const DataDefinitionType m_forwarded_type;
const DataDefinition* m_definition;
ForwardDeclaration(std::string _namespace, std::string name, DataDefinitionType type);
_NODISCARD DataDefinitionType GetType() const override;
_NODISCARD unsigned GetAlignment() const override;
_NODISCARD bool GetForceAlignment() const override;
_NODISCARD unsigned GetSize() const override;
[[nodiscard]] DataDefinitionType GetType() const override;
[[nodiscard]] unsigned GetAlignment() const override;
[[nodiscard]] bool GetForceAlignment() const override;
[[nodiscard]] unsigned GetSize() const override;
const DataDefinitionType m_forwarded_type;
const DataDefinition* m_definition;
};

View File

@ -8,19 +8,19 @@
class PointerDeclarationModifier final : public DeclarationModifier
{
static const IEvaluation* const DEFAULT_COUNT;
static bool EvaluationIsArray(const IEvaluation* evaluation);
public:
[[nodiscard]] DeclarationModifierType GetType() const override;
[[nodiscard]] const IEvaluation* GetCountEvaluation() const;
[[nodiscard]] const IEvaluation* GetCountEvaluationForArrayIndex(int index);
[[nodiscard]] bool CountEvaluationIsArray() const;
[[nodiscard]] bool CountEvaluationIsArray(int index) const;
[[nodiscard]] bool AnyCountEvaluationIsArray() const;
std::unique_ptr<IEvaluation> m_count_evaluation;
std::vector<std::unique_ptr<IEvaluation>> m_count_evaluation_by_array_index;
_NODISCARD DeclarationModifierType GetType() const override;
_NODISCARD const IEvaluation* GetCountEvaluation() const;
_NODISCARD const IEvaluation* GetCountEvaluationForArrayIndex(int index);
_NODISCARD bool CountEvaluationIsArray() const;
_NODISCARD bool CountEvaluationIsArray(int index) const;
_NODISCARD bool AnyCountEvaluationIsArray() const;
private:
static const IEvaluation* const DEFAULT_COUNT;
static bool EvaluationIsArray(const IEvaluation* evaluation);
};

View File

@ -7,5 +7,5 @@ class StructDefinition final : public DefinitionWithMembers
public:
StructDefinition(std::string _namespace, std::string name, int pack);
_NODISCARD DataDefinitionType GetType() const override;
[[nodiscard]] DataDefinitionType GetType() const override;
};

View File

@ -13,21 +13,21 @@ public:
static constexpr int FLAG_FIELDS_CALCULATED = 1 << 0;
static constexpr int FLAG_ALIGNMENT_FORCED = 1 << 1;
unsigned m_flags;
unsigned m_size;
unsigned m_alignment;
explicit TypeDeclaration(const DataDefinition* type);
[[nodiscard]] unsigned GetSize() const;
[[nodiscard]] unsigned GetAlignment() const;
[[nodiscard]] bool GetForceAlignment() const;
std::vector<std::unique_ptr<DeclarationModifier>> m_declaration_modifiers;
bool m_is_const;
bool m_has_custom_bit_size;
const DataDefinition* m_type;
unsigned m_custom_bit_size;
std::vector<std::unique_ptr<DeclarationModifier>> m_declaration_modifiers;
_NODISCARD unsigned GetSize() const;
_NODISCARD unsigned GetAlignment() const;
_NODISCARD bool GetForceAlignment() const;
unsigned m_flags;
unsigned m_size;
unsigned m_alignment;
};

View File

@ -6,14 +6,14 @@
class TypedefDefinition final : public DataDefinition
{
public:
TypedefDefinition(std::string _namespace, std::string name, std::unique_ptr<TypeDeclaration> typeDeclaration);
[[nodiscard]] DataDefinitionType GetType() const override;
[[nodiscard]] unsigned GetAlignment() const override;
[[nodiscard]] bool GetForceAlignment() const override;
[[nodiscard]] unsigned GetSize() const override;
bool m_has_alignment_override;
unsigned m_alignment_override;
std::unique_ptr<TypeDeclaration> m_type_declaration;
TypedefDefinition(std::string _namespace, std::string name, std::unique_ptr<TypeDeclaration> typeDeclaration);
_NODISCARD DataDefinitionType GetType() const override;
_NODISCARD unsigned GetAlignment() const override;
_NODISCARD bool GetForceAlignment() const override;
_NODISCARD unsigned GetSize() const override;
};

View File

@ -4,11 +4,8 @@
class UnionDefinition final : public DefinitionWithMembers
{
// protected:
// void CalculateSize() override;
public:
UnionDefinition(std::string _namespace, std::string name, int pack);
_NODISCARD DataDefinitionType GetType() const override;
[[nodiscard]] DataDefinitionType GetType() const override;
};

View File

@ -9,14 +9,14 @@
class Variable
{
public:
Variable(std::string name, std::unique_ptr<TypeDeclaration> typeDeclaration);
[[nodiscard]] unsigned GetAlignment() const;
[[nodiscard]] bool GetForceAlignment() const;
std::string m_name;
bool m_has_alignment_override;
unsigned m_alignment_override;
unsigned m_offset;
std::unique_ptr<TypeDeclaration> m_type_declaration;
Variable(std::string name, std::unique_ptr<TypeDeclaration> typeDeclaration);
_NODISCARD unsigned GetAlignment() const;
_NODISCARD bool GetForceAlignment() const;
};

View File

@ -1,7 +1,5 @@
#pragma once
#include "Utils/ClassUtils.h"
enum class EvaluationType
{
OPERAND_DYNAMIC,
@ -20,7 +18,7 @@ public:
IEvaluation& operator=(const IEvaluation& other) = default;
IEvaluation& operator=(IEvaluation&& other) noexcept = default;
_NODISCARD virtual EvaluationType GetType() const = 0;
_NODISCARD virtual bool IsStatic() const = 0;
_NODISCARD virtual int EvaluateNumeric() const = 0;
[[nodiscard]] virtual EvaluationType GetType() const = 0;
[[nodiscard]] virtual bool IsStatic() const = 0;
[[nodiscard]] virtual int EvaluateNumeric() const = 0;
};

View File

@ -9,16 +9,16 @@
class OperandDynamic final : public IEvaluation
{
public:
StructureInformation* const m_structure;
std::vector<MemberInformation*> m_referenced_member_chain;
std::vector<std::unique_ptr<IEvaluation>> m_array_indices;
explicit OperandDynamic(StructureInformation* structure);
OperandDynamic(StructureInformation* structure,
std::vector<MemberInformation*> referencedMemberChain,
std::vector<std::unique_ptr<IEvaluation>> arrayIndices);
_NODISCARD EvaluationType GetType() const override;
_NODISCARD bool IsStatic() const override;
_NODISCARD int EvaluateNumeric() const override;
[[nodiscard]] EvaluationType GetType() const override;
[[nodiscard]] bool IsStatic() const override;
[[nodiscard]] int EvaluateNumeric() const override;
StructureInformation* const m_structure;
std::vector<MemberInformation*> m_referenced_member_chain;
std::vector<std::unique_ptr<IEvaluation>> m_array_indices;
};

View File

@ -6,13 +6,13 @@
class OperandStatic final : public IEvaluation
{
public:
const int m_value;
EnumMember* const m_enum_member;
explicit OperandStatic(int value);
explicit OperandStatic(EnumMember* enumMember);
_NODISCARD EvaluationType GetType() const override;
_NODISCARD bool IsStatic() const override;
_NODISCARD int EvaluateNumeric() const override;
[[nodiscard]] EvaluationType GetType() const override;
[[nodiscard]] bool IsStatic() const override;
[[nodiscard]] int EvaluateNumeric() const override;
const int m_value;
EnumMember* const m_enum_member;
};

View File

@ -9,17 +9,17 @@
class Operation final : public IEvaluation
{
public:
const OperationType* const m_operation_type;
std::unique_ptr<IEvaluation> m_operand1;
std::unique_ptr<IEvaluation> m_operand2;
explicit Operation(const OperationType* type);
Operation(const OperationType* type, std::unique_ptr<IEvaluation> operand1, std::unique_ptr<IEvaluation> operand2);
_NODISCARD EvaluationType GetType() const override;
_NODISCARD bool IsStatic() const override;
_NODISCARD int EvaluateNumeric() const override;
[[nodiscard]] EvaluationType GetType() const override;
[[nodiscard]] bool IsStatic() const override;
[[nodiscard]] int EvaluateNumeric() const override;
_NODISCARD bool Operand1NeedsParenthesis() const;
_NODISCARD bool Operand2NeedsParenthesis() const;
[[nodiscard]] bool Operand1NeedsParenthesis() const;
[[nodiscard]] bool Operand2NeedsParenthesis() const;
const OperationType* const m_operation_type;
std::unique_ptr<IEvaluation> m_operand1;
std::unique_ptr<IEvaluation> m_operand2;
};

View File

@ -20,14 +20,6 @@ enum class OperationPrecedence
class OperationType
{
public:
std::string m_syntax;
OperationPrecedence m_precedence;
std::function<int(int operand1, int operand2)> m_evaluation_function;
private:
OperationType(std::string syntax, OperationPrecedence precedence, std::function<int(int, int)> evaluationFunction);
public:
static const OperationType* const OPERATION_ADD;
static const OperationType* const OPERATION_SUBTRACT;
@ -49,4 +41,11 @@ public:
static const OperationType* const OPERATION_OR;
static const OperationType* const ALL_OPERATION_TYPES[];
std::string m_syntax;
OperationPrecedence m_precedence;
std::function<int(int operand1, int operand2)> m_evaluation_function;
private:
OperationType(std::string syntax, OperationPrecedence precedence, std::function<int(int, int)> evaluationFunction);
};

View File

@ -8,8 +8,8 @@
class CustomAction
{
public:
CustomAction(std::string actionName, std::vector<DataDefinition*> parameterTypes);
std::string m_action_name;
std::vector<DataDefinition*> m_parameter_types;
CustomAction(std::string actionName, std::vector<DataDefinition*> parameterTypes);
};

View File

@ -13,10 +13,10 @@ enum class FastFileBlockType
class FastFileBlock
{
public:
FastFileBlock(std::string name, unsigned index, FastFileBlockType type, bool isDefault);
std::string m_name;
unsigned m_index;
FastFileBlockType m_type;
bool m_is_default;
FastFileBlock(std::string name, unsigned index, FastFileBlockType type, bool isDefault);
};

View File

@ -12,6 +12,8 @@ class StructureInformation;
class MemberInformation
{
public:
MemberInformation(StructureInformation* parent, StructureInformation* type, Variable* member);
StructureInformation* m_parent;
StructureInformation* m_type;
Variable* m_member;
@ -24,6 +26,4 @@ public:
std::unique_ptr<CustomAction> m_post_load_action;
const FastFileBlock* m_fast_file_block;
const EnumMember* m_asset_ref;
MemberInformation(StructureInformation* parent, StructureInformation* type, Variable* member);
};

View File

@ -5,13 +5,17 @@
#include "Domain/Extension/CustomAction.h"
#include "Domain/FastFile/FastFileBlock.h"
#include "MemberInformation.h"
#include "Utils/ClassUtils.h"
#include <memory>
#include <vector>
class MemberInformation;
class StructureInformation
{
public:
explicit StructureInformation(DefinitionWithMembers* definition);
DefinitionWithMembers* const m_definition;
EnumMember* m_asset_enum_entry;
@ -31,6 +35,4 @@ public:
std::unique_ptr<CustomAction> m_post_load_action;
const FastFileBlock* m_block;
std::vector<MemberInformation*> m_name_chain;
explicit StructureInformation(DefinitionWithMembers* definition);
};