mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-09-05 08:17:25 +00:00
parse struct and union sequences
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
|
||||
#include "Parsing/Header/Sequence/SequenceNamespace.h"
|
||||
|
||||
HeaderParser::HeaderParser(HeaderLexer* lexer)
|
||||
: AbstractParser(lexer, std::make_unique<HeaderParserState>())
|
||||
HeaderParser::HeaderParser(HeaderLexer* lexer, const IPackValueSupplier* packValueSupplier)
|
||||
: AbstractParser(lexer, std::make_unique<HeaderParserState>(packValueSupplier))
|
||||
{
|
||||
auto sequenceNamespace = std::make_unique<SequenceNamespace>();
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "HeaderLexer.h"
|
||||
#include "HeaderParserState.h"
|
||||
#include "Parsing/IPackValueSupplier.h"
|
||||
#include "Parsing/Impl/AbstractParser.h"
|
||||
#include "Persistence/IDataRepository.h"
|
||||
|
||||
@@ -11,7 +12,7 @@ protected:
|
||||
const std::vector<sequence_t*>& GetTestsForState() override;
|
||||
|
||||
public:
|
||||
explicit HeaderParser(HeaderLexer* lexer);
|
||||
HeaderParser(HeaderLexer* lexer, const IPackValueSupplier* packValueSupplier);
|
||||
|
||||
void SaveToRepository(IDataRepository* repository) const;
|
||||
};
|
||||
|
@@ -3,7 +3,9 @@
|
||||
#include "Domain/Definition/EnumDefinition.h"
|
||||
#include "Parsing/Header/Block/HeaderBlockNone.h"
|
||||
|
||||
HeaderParserState::HeaderParserState()
|
||||
HeaderParserState::HeaderParserState(const IPackValueSupplier* packValueSupplier)
|
||||
: m_pack_value_supplier(packValueSupplier)
|
||||
|
||||
{
|
||||
m_blocks.push(std::make_unique<HeaderBlockNone>());
|
||||
|
||||
|
@@ -9,6 +9,7 @@
|
||||
#include "Domain/Definition/DataDefinition.h"
|
||||
#include "Domain/Definition/EnumMember.h"
|
||||
#include "Domain/Definition/ForwardDeclaration.h"
|
||||
#include "Parsing/IPackValueSupplier.h"
|
||||
#include "Utils/NamespaceBuilder.h"
|
||||
#include "Parsing/Header/Block/IHeaderBlock.h"
|
||||
#include "Persistence/IDataRepository.h"
|
||||
@@ -27,9 +28,10 @@ class HeaderParserState
|
||||
void AddBaseDataType(const BaseTypeDefinition* baseType);
|
||||
|
||||
public:
|
||||
const IPackValueSupplier* const m_pack_value_supplier;
|
||||
NamespaceBuilder m_namespace;
|
||||
|
||||
HeaderParserState();
|
||||
explicit HeaderParserState(const IPackValueSupplier* packValueSupplier);
|
||||
|
||||
_NODISCARD IHeaderBlock* GetBlock() const;
|
||||
void PushBlock(std::unique_ptr<IHeaderBlock> block);
|
||||
|
Reference in New Issue
Block a user