mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 16:15:43 +00:00
Make ZoneDefinition parser recognize strings as asset names
This commit is contained in:
parent
cff70daccb
commit
b8cfdba5ec
@ -12,7 +12,10 @@ SequenceZoneDefinitionEntry::SequenceZoneDefinitionEntry()
|
|||||||
create.Identifier().Capture(CAPTURE_TYPE_NAME),
|
create.Identifier().Capture(CAPTURE_TYPE_NAME),
|
||||||
create.Char(','),
|
create.Char(','),
|
||||||
create.Optional(create.Char(',').Tag(TAG_REFERENCE)),
|
create.Optional(create.Char(',').Tag(TAG_REFERENCE)),
|
||||||
create.Label(ZoneDefinitionCommonMatchers::LABEL_ASSET_NAME).Capture(CAPTURE_ASSET_NAME),
|
create.Or({
|
||||||
|
create.Type(SimpleParserValueType::STRING),
|
||||||
|
create.Label(ZoneDefinitionCommonMatchers::LABEL_ASSET_NAME)
|
||||||
|
}).Capture(CAPTURE_ASSET_NAME),
|
||||||
create.Or({
|
create.Or({
|
||||||
create.Type(SimpleParserValueType::NEW_LINE),
|
create.Type(SimpleParserValueType::NEW_LINE),
|
||||||
create.Type(SimpleParserValueType::END_OF_FILE)
|
create.Type(SimpleParserValueType::END_OF_FILE)
|
||||||
@ -22,8 +25,20 @@ SequenceZoneDefinitionEntry::SequenceZoneDefinitionEntry()
|
|||||||
|
|
||||||
void SequenceZoneDefinitionEntry::ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const
|
void SequenceZoneDefinitionEntry::ProcessMatch(ZoneDefinition* state, SequenceResult<SimpleParserValue>& result) const
|
||||||
{
|
{
|
||||||
|
const auto& assetNameCapture = result.NextCapture(CAPTURE_ASSET_NAME);
|
||||||
|
|
||||||
|
std::string assetName;
|
||||||
|
if (assetNameCapture.m_type == SimpleParserValueType::STRING)
|
||||||
|
{
|
||||||
|
assetName = assetNameCapture.StringValue();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assetName = assetNameCapture.IdentifierValue();
|
||||||
|
}
|
||||||
|
|
||||||
state->m_assets.emplace_back(
|
state->m_assets.emplace_back(
|
||||||
result.NextCapture(CAPTURE_TYPE_NAME).IdentifierValue(),
|
result.NextCapture(CAPTURE_TYPE_NAME).IdentifierValue(),
|
||||||
result.NextCapture(CAPTURE_ASSET_NAME).IdentifierValue(),
|
assetName,
|
||||||
result.NextTag() == TAG_REFERENCE);
|
result.NextTag() == TAG_REFERENCE);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user