mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 00:02:55 +00:00
Add sequences for ZoneDefinition includes and ignores
This commit is contained in:
parent
00462b9228
commit
6b80a1f951
@ -0,0 +1,19 @@
|
|||||||
|
#include "SequenceZoneDefinitionIgnore.h"
|
||||||
|
|
||||||
|
#include "Parsing/Simple/Matcher/SimpleMatcherFactory.h"
|
||||||
|
|
||||||
|
SequenceZoneDefinitionIgnore::SequenceZoneDefinitionIgnore()
|
||||||
|
{
|
||||||
|
const SimpleMatcherFactory create(this);
|
||||||
|
|
||||||
|
AddMatchers({
|
||||||
|
create.Keyword("ignore"),
|
||||||
|
create.Char(','),
|
||||||
|
create.Identifier().Capture(CAPTURE_IGNORE_NAME)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void SequenceZoneDefinitionIgnore::ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const
|
||||||
|
{
|
||||||
|
state->m_ignores.emplace_back(result.NextCapture(CAPTURE_IGNORE_NAME).IdentifierValue());
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Parsing/ZoneDefinition/ZoneDefinitionParser.h"
|
||||||
|
|
||||||
|
class SequenceZoneDefinitionIgnore final : public ZoneDefinitionParser::sequence_t
|
||||||
|
{
|
||||||
|
static constexpr auto CAPTURE_IGNORE_NAME = 1;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const override;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SequenceZoneDefinitionIgnore();
|
||||||
|
};
|
@ -0,0 +1,19 @@
|
|||||||
|
#include "SequenceZoneDefinitionInclude.h"
|
||||||
|
|
||||||
|
#include "Parsing/Simple/Matcher/SimpleMatcherFactory.h"
|
||||||
|
|
||||||
|
SequenceZoneDefinitionInclude::SequenceZoneDefinitionInclude()
|
||||||
|
{
|
||||||
|
const SimpleMatcherFactory create(this);
|
||||||
|
|
||||||
|
AddMatchers({
|
||||||
|
create.Keyword("include"),
|
||||||
|
create.Char(','),
|
||||||
|
create.Identifier().Capture(CAPTURE_INCLUDE_NAME)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void SequenceZoneDefinitionInclude::ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const
|
||||||
|
{
|
||||||
|
state->m_includes.emplace_back(result.NextCapture(CAPTURE_INCLUDE_NAME).IdentifierValue());
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Parsing/ZoneDefinition/ZoneDefinitionParser.h"
|
||||||
|
|
||||||
|
class SequenceZoneDefinitionInclude final : public ZoneDefinitionParser::sequence_t
|
||||||
|
{
|
||||||
|
static constexpr auto CAPTURE_INCLUDE_NAME = 1;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const override;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SequenceZoneDefinitionInclude();
|
||||||
|
};
|
@ -1,6 +1,8 @@
|
|||||||
#include "ZoneDefinitionParser.h"
|
#include "ZoneDefinitionParser.h"
|
||||||
|
|
||||||
#include "Sequence/SequenceZoneDefinitionEntry.h"
|
#include "Sequence/SequenceZoneDefinitionEntry.h"
|
||||||
|
#include "Sequence/SequenceZoneDefinitionIgnore.h"
|
||||||
|
#include "Sequence/SequenceZoneDefinitionInclude.h"
|
||||||
#include "Sequence/SequenceZoneDefinitionMetaData.h"
|
#include "Sequence/SequenceZoneDefinitionMetaData.h"
|
||||||
|
|
||||||
ZoneDefinitionParser::ZoneDefinitionParser(SimpleLexer* lexer)
|
ZoneDefinitionParser::ZoneDefinitionParser(SimpleLexer* lexer)
|
||||||
@ -12,6 +14,8 @@ const std::vector<AbstractParser<SimpleParserValue, ZoneDefinition>::sequence_t*
|
|||||||
{
|
{
|
||||||
static std::vector<sequence_t*> tests({
|
static std::vector<sequence_t*> tests({
|
||||||
new SequenceZoneDefinitionMetaData(),
|
new SequenceZoneDefinitionMetaData(),
|
||||||
|
new SequenceZoneDefinitionInclude(),
|
||||||
|
new SequenceZoneDefinitionIgnore(),
|
||||||
new SequenceZoneDefinitionEntry()
|
new SequenceZoneDefinitionEntry()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -18,5 +18,7 @@ class ZoneDefinition
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
std::unordered_map<std::string, std::string> m_metadata;
|
std::unordered_map<std::string, std::string> m_metadata;
|
||||||
|
std::vector<std::string> m_includes;
|
||||||
|
std::vector<std::string> m_ignores;
|
||||||
std::vector<ZoneDefinitionEntry> m_assets;
|
std::vector<ZoneDefinitionEntry> m_assets;
|
||||||
};
|
};
|
Loading…
x
Reference in New Issue
Block a user