mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-08-01 12:50:36 +00:00
Support static expressions for menu simple string properties
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "GenericStringPropertySequence.h"
|
||||
|
||||
#include "Parsing/Menu/Matcher/MenuExpressionMatchers.h"
|
||||
#include "Parsing/Menu/Matcher/MenuMatcherFactory.h"
|
||||
|
||||
#include <utility>
|
||||
@@ -10,10 +11,11 @@ GenericStringPropertySequence::GenericStringPropertySequence(std::string keyword
|
||||
: m_set_callback(std::move(setCallback))
|
||||
{
|
||||
const MenuMatcherFactory create(this);
|
||||
AddLabeledMatchers(MenuExpressionMatchers().Expression(this), MenuExpressionMatchers::LABEL_EXPRESSION);
|
||||
|
||||
AddMatchers({
|
||||
create.KeywordIgnoreCase(std::move(keywordName)).Capture(CAPTURE_FIRST_TOKEN),
|
||||
create.Text().Capture(CAPTURE_VALUE),
|
||||
create.TextExpression(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -21,7 +23,7 @@ void GenericStringPropertySequence::ProcessMatch(MenuFileParserState* state, Seq
|
||||
{
|
||||
if (m_set_callback)
|
||||
{
|
||||
const auto& value = MenuMatcherFactory::TokenTextValue(result.NextCapture(CAPTURE_VALUE));
|
||||
const auto value = MenuMatcherFactory::TokenTextExpressionValue(state, result);
|
||||
m_set_callback(state, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos(), value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ namespace menu
|
||||
|
||||
private:
|
||||
static constexpr auto CAPTURE_FIRST_TOKEN = 1;
|
||||
static constexpr auto CAPTURE_VALUE = 2;
|
||||
|
||||
const callback_t m_set_callback;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user