mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-07-01 17:17:55 -05:00
Restructure template code for arraypointer and singlepointer to better reuse code instead of duplicating it
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include <ostream>
|
||||
#include <sstream>
|
||||
|
||||
#include "Domain/Computations/MemberDeclarationModifierComputations.h"
|
||||
#include "Domain/Definition/ArrayDeclarationModifier.h"
|
||||
#include "Domain/Evaluation/OperandDynamic.h"
|
||||
#include "Domain/Evaluation/OperandStatic.h"
|
||||
#include "Domain/Evaluation/Operation.h"
|
||||
@ -21,22 +23,29 @@ protected:
|
||||
|
||||
void DoIntendation() const;
|
||||
|
||||
private:
|
||||
static void MakeSafeTypeNameInternal(const DataDefinition* def, std::ostringstream& str);
|
||||
static void MakeTypeVarNameInternal(const DataDefinition* def, std::ostringstream& str);
|
||||
static void MakeTypePtrVarNameInternal(const DataDefinition* def, std::ostringstream& str);
|
||||
static void MakeArrayIndicesInternal(const DeclarationModifierComputations& modifierComputations, std::ostringstream& str);
|
||||
static void MakeOperandStatic(const OperandStatic* op, std::ostringstream& str);
|
||||
static void MakeOperandDynamic(const OperandDynamic* op, std::ostringstream& str);
|
||||
static void MakeOperation(const Operation* operation, std::ostringstream& str);
|
||||
static void MakeEvaluationInternal(const IEvaluation* evaluation, std::ostringstream& str);
|
||||
|
||||
protected:
|
||||
static std::string Upper(std::string str);
|
||||
static std::string Lower(std::string str);
|
||||
static std::string TypeVarName(const DataDefinition* def);
|
||||
static std::string TypePtrVarName(const DataDefinition* def);
|
||||
static std::string SafeTypeName(const DataDefinition* def);
|
||||
void PrintAccessMember(StructureInformation* info, MemberInformation* member, const DeclarationModifierComputations& modifier) const;
|
||||
void PrintTypeDecl(const TypeDeclaration* decl) const;
|
||||
void PrintFollowingReferences(const std::vector<DeclarationModifier*>& modifiers) const;
|
||||
void PrintArrayIndices(const DeclarationModifierComputations& modifierComputations) const;
|
||||
|
||||
void PrintCustomAction(CustomAction* action) const;
|
||||
|
||||
void PrintOperandStatic(const OperandStatic* op) const;
|
||||
void PrintOperandDynamic(const OperandDynamic* op) const;
|
||||
void PrintOperation(const Operation* operation) const;
|
||||
void PrintEvaluation(const IEvaluation* evaluation) const;
|
||||
static std::string MakeTypeVarName(const DataDefinition* def);
|
||||
static std::string MakeTypePtrVarName(const DataDefinition* def);
|
||||
static std::string MakeSafeTypeName(const DataDefinition* def);
|
||||
static std::string MakeMemberAccess(StructureInformation* info, MemberInformation* member, const DeclarationModifierComputations& modifier);
|
||||
static std::string MakeTypeDecl(const TypeDeclaration* decl);
|
||||
static std::string MakeFollowingReferences(const std::vector<DeclarationModifier*>& modifiers);
|
||||
static std::string MakeArrayIndices(const DeclarationModifierComputations& modifierComputations);
|
||||
static std::string MakeCustomActionCall(CustomAction* action);
|
||||
static std::string MakeArrayCount(const ArrayDeclarationModifier* arrayModifier);
|
||||
static std::string MakeEvaluation(const IEvaluation* evaluation);
|
||||
};
|
||||
|
||||
#define LINE(x) {DoIntendation(); m_out << x << "\n";}
|
||||
|
Reference in New Issue
Block a user