mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-09 06:18:05 -05:00
46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
#include "ItemPropertySequences.h"
|
|
|
|
#include "Parsing/Menu/MenuMatcherFactory.h"
|
|
|
|
using namespace menu;
|
|
|
|
namespace menu::item_properties
|
|
{
|
|
class SequenceName final : public MenuFileParser::sequence_t
|
|
{
|
|
static constexpr auto CAPTURE_NAME = 1;
|
|
|
|
public:
|
|
SequenceName()
|
|
{
|
|
const MenuMatcherFactory create(this);
|
|
|
|
AddMatchers({
|
|
create.KeywordIgnoreCase("name"),
|
|
create.Text().Capture(CAPTURE_NAME)
|
|
});
|
|
}
|
|
|
|
protected:
|
|
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
|
{
|
|
assert(state->m_current_item);
|
|
|
|
const auto nameValue = MenuMatcherFactory::TokenTextValue(result.NextCapture(CAPTURE_NAME));
|
|
state->m_current_item->m_name = nameValue;
|
|
}
|
|
};
|
|
}
|
|
|
|
using namespace item_properties;
|
|
|
|
ItemPropertySequences::ItemPropertySequences(std::vector<std::unique_ptr<MenuFileParser::sequence_t>>& allSequences, std::vector<MenuFileParser::sequence_t*>& scopeSequences)
|
|
: AbstractPropertySequenceHolder(allSequences, scopeSequences)
|
|
{
|
|
}
|
|
|
|
void ItemPropertySequences::AddSequences(FeatureLevel featureLevel)
|
|
{
|
|
AddSequence(std::make_unique<SequenceName>());
|
|
}
|