mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-07-05 18:51:55 +00:00
Add ZoneDefinition Lexer
This commit is contained in:
@ -0,0 +1,14 @@
|
||||
#include "SequenceZoneDefinitionConsumeEmptyLines.h"
|
||||
|
||||
#include "Parsing/Simple/Matcher/SimpleMatcherFactory.h"
|
||||
|
||||
SequenceZoneDefinitionConsumeEmptyLines::SequenceZoneDefinitionConsumeEmptyLines()
|
||||
{
|
||||
const SimpleMatcherFactory create(this);
|
||||
|
||||
AddMatchers(create.Loop(create.Type(SimpleParserValueType::NEW_LINE)));
|
||||
}
|
||||
|
||||
void SequenceZoneDefinitionConsumeEmptyLines::ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const
|
||||
{
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "Parsing/ZoneDefinition/ZoneDefinitionParser.h"
|
||||
|
||||
class SequenceZoneDefinitionConsumeEmptyLines final : public ZoneDefinitionParser::sequence_t
|
||||
{
|
||||
protected:
|
||||
void ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const override;
|
||||
|
||||
public:
|
||||
SequenceZoneDefinitionConsumeEmptyLines();
|
||||
};
|
@ -1,16 +1,19 @@
|
||||
#include "SequenceZoneDefinitionEntry.h"
|
||||
|
||||
#include "Parsing/ZoneDefinition/Matcher/ZoneDefinitionCommonMatchers.h"
|
||||
#include "Parsing/Simple/Matcher/SimpleMatcherFactory.h"
|
||||
|
||||
SequenceZoneDefinitionEntry::SequenceZoneDefinitionEntry()
|
||||
{
|
||||
const SimpleMatcherFactory create(this);
|
||||
|
||||
AddLabeledMatchers(ZoneDefinitionCommonMatchers::AssetName(this), ZoneDefinitionCommonMatchers::LABEL_ASSET_NAME);
|
||||
AddMatchers({
|
||||
create.Identifier().Capture(CAPTURE_TYPE_NAME),
|
||||
create.Char(','),
|
||||
create.Optional(create.Char(',').Tag(TAG_REFERENCE)),
|
||||
create.Identifier().Capture(CAPTURE_ASSET_NAME)
|
||||
create.Label(ZoneDefinitionCommonMatchers::LABEL_ASSET_NAME).Capture(CAPTURE_ASSET_NAME),
|
||||
create.Type(SimpleParserValueType::NEW_LINE)
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -9,8 +9,9 @@ SequenceZoneDefinitionIgnore::SequenceZoneDefinitionIgnore()
|
||||
AddMatchers({
|
||||
create.Keyword("ignore"),
|
||||
create.Char(','),
|
||||
create.Identifier().Capture(CAPTURE_IGNORE_NAME)
|
||||
});
|
||||
create.Identifier().Capture(CAPTURE_IGNORE_NAME),
|
||||
create.Type(SimpleParserValueType::NEW_LINE)
|
||||
});
|
||||
}
|
||||
|
||||
void SequenceZoneDefinitionIgnore::ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const
|
||||
|
@ -9,7 +9,8 @@ SequenceZoneDefinitionInclude::SequenceZoneDefinitionInclude()
|
||||
AddMatchers({
|
||||
create.Keyword("include"),
|
||||
create.Char(','),
|
||||
create.Identifier().Capture(CAPTURE_INCLUDE_NAME)
|
||||
create.Identifier().Capture(CAPTURE_INCLUDE_NAME),
|
||||
create.Type(SimpleParserValueType::NEW_LINE)
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,8 @@ SequenceZoneDefinitionMetaData::SequenceZoneDefinitionMetaData()
|
||||
create.Char('>'),
|
||||
create.Identifier().Capture(CAPTURE_KEY),
|
||||
create.Char(','),
|
||||
create.Identifier().Capture(CAPTURE_VALUE)
|
||||
create.Identifier().Capture(CAPTURE_VALUE),
|
||||
create.Type(SimpleParserValueType::NEW_LINE)
|
||||
});
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user