2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-09-07 17:27:26 +00:00

Base for technique loading

This commit is contained in:
Jan
2022-03-27 16:17:50 +02:00
parent a47370613b
commit d8f490ec94
10 changed files with 432 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
#include "TechniqueFileParser.h"
using namespace techset;
TechniqueParser::TechniqueParser(SimpleLexer* lexer, ITechniqueDefinitionAcceptor* acceptor)
: AbstractParser(lexer, std::make_unique<TechniqueParserState>(acceptor))
{
}
const std::vector<AbstractParser<SimpleParserValue, TechniqueParserState>::sequence_t*>& TechniqueParser::GetTestsForState()
{
// TODO: Tests
static std::vector<sequence_t*> tests({
});
return tests;
}

View File

@@ -0,0 +1,18 @@
#pragma once
#include "TechniqueFileParserState.h"
#include "Parsing/Simple/SimpleLexer.h"
#include "Parsing/Simple/SimpleParserValue.h"
#include "Parsing/Impl/AbstractParser.h"
namespace techset
{
class TechniqueParser final : public AbstractParser<SimpleParserValue, TechniqueParserState>
{
protected:
const std::vector<sequence_t*>& GetTestsForState() override;
public:
TechniqueParser(SimpleLexer* lexer, ITechniqueDefinitionAcceptor* acceptor);
};
}

View File

@@ -0,0 +1,11 @@
#include "TechniqueFileParserState.h"
#include <cassert>
using namespace techset;
TechniqueParserState::TechniqueParserState(ITechniqueDefinitionAcceptor* acceptor)
: m_acceptor(acceptor)
{
assert(acceptor);
}

View File

@@ -0,0 +1,14 @@
#pragma once
#include "Techset/TechniqueDefinitionAcceptor.h"
namespace techset
{
class TechniqueParserState
{
public:
ITechniqueDefinitionAcceptor* const m_acceptor;
explicit TechniqueParserState(ITechniqueDefinitionAcceptor* acceptor);
};
}