From c3a44f60d3ac06e7819bfca10dc7a9e873ae9094 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 26 Nov 2021 21:50:07 +0100 Subject: [PATCH] Accept static expressions for menu floating point and int --- .../Generic/GenericFloatingPointPropertySequence.cpp | 6 ++++-- .../Sequence/Generic/GenericFloatingPointPropertySequence.h | 1 - .../Menu/Sequence/Generic/GenericIntPropertySequence.cpp | 6 ++++-- .../Menu/Sequence/Generic/GenericIntPropertySequence.h | 1 - 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.cpp b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.cpp index 7c1c79c8..a5de6ad6 100644 --- a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.cpp +++ b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.cpp @@ -2,6 +2,7 @@ #include +#include "Parsing/Menu/Matcher/MenuExpressionMatchers.h" #include "Parsing/Menu/Matcher/MenuMatcherFactory.h" using namespace menu; @@ -11,9 +12,10 @@ GenericFloatingPointPropertySequence::GenericFloatingPointPropertySequence(std:: { const MenuMatcherFactory create(this); + AddLabeledMatchers(MenuExpressionMatchers().Expression(this), MenuExpressionMatchers::LABEL_EXPRESSION); AddMatchers({ create.KeywordIgnoreCase(std::move(keywordName)).Capture(CAPTURE_FIRST_TOKEN), - create.Numeric().Capture(CAPTURE_VALUE) + create.NumericExpression() }); } @@ -21,7 +23,7 @@ void GenericFloatingPointPropertySequence::ProcessMatch(MenuFileParserState* sta { if (m_set_callback) { - const auto value = MenuMatcherFactory::TokenNumericFloatingPointValue(result.NextCapture(CAPTURE_VALUE)); + const auto value = MenuMatcherFactory::TokenNumericExpressionValue(result); m_set_callback(state, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos(), value); } } diff --git a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.h b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.h index 6510d645..a424928e 100644 --- a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.h +++ b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericFloatingPointPropertySequence.h @@ -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; diff --git a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.cpp b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.cpp index 6eb95bb7..fbf002e4 100644 --- a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.cpp +++ b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.cpp @@ -2,6 +2,7 @@ #include +#include "Parsing/Menu/Matcher/MenuExpressionMatchers.h" #include "Parsing/Menu/Matcher/MenuMatcherFactory.h" using namespace menu; @@ -11,9 +12,10 @@ GenericIntPropertySequence::GenericIntPropertySequence(std::string keywordName, { const MenuMatcherFactory create(this); + AddLabeledMatchers(MenuExpressionMatchers().Expression(this), MenuExpressionMatchers::LABEL_EXPRESSION); AddMatchers({ create.KeywordIgnoreCase(std::move(keywordName)).Capture(CAPTURE_FIRST_TOKEN), - create.Integer().Capture(CAPTURE_VALUE) + create.IntExpression(), // value }); } @@ -21,7 +23,7 @@ void GenericIntPropertySequence::ProcessMatch(MenuFileParserState* state, Sequen { if (m_set_callback) { - const auto value = result.NextCapture(CAPTURE_VALUE).IntegerValue(); + const auto value = MenuMatcherFactory::TokenIntExpressionValue(result); m_set_callback(state, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos(), value); } } diff --git a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.h b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.h index 1c2204b3..63c6a73d 100644 --- a/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.h +++ b/src/ObjLoading/Parsing/Menu/Sequence/Generic/GenericIntPropertySequence.h @@ -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;