From 9279123ef9bd480570ae8a1ed2052692a5f9c897 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 26 Nov 2021 21:48:05 +0100 Subject: [PATCH] Consume lonely semicolons in items and menus --- .../Menu/Sequence/ItemScopeSequences.cpp | 20 +++++++++++++++++++ .../Menu/Sequence/MenuScopeSequences.cpp | 19 ++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/ObjLoading/Parsing/Menu/Sequence/ItemScopeSequences.cpp b/src/ObjLoading/Parsing/Menu/Sequence/ItemScopeSequences.cpp index ebc426f8..d8863bec 100644 --- a/src/ObjLoading/Parsing/Menu/Sequence/ItemScopeSequences.cpp +++ b/src/ObjLoading/Parsing/Menu/Sequence/ItemScopeSequences.cpp @@ -141,6 +141,24 @@ namespace menu::item_scope_sequences } }; + class SequenceConsumeSemicolons final : public MenuFileParser::sequence_t + { + public: + SequenceConsumeSemicolons() + { + const MenuMatcherFactory create(this); + + AddMatchers({ + create.Char(';') + }); + } + + protected: + void ProcessMatch(MenuFileParserState* state, SequenceResult& result) const override + { + } + }; + class SequenceRect final : public MenuFileParser::sequence_t { static constexpr auto CAPTURE_ALIGN_HORIZONTAL = 1; @@ -938,4 +956,6 @@ void ItemScopeSequences::AddSequences(FeatureLevel featureLevel) ItemScopeOperations::EnsureHasNewsTickerFeatures(*state->m_current_item, pos); state->m_current_item->m_news_ticker_features->m_news_feed_id = value; })); + + AddSequence(std::make_unique()); } diff --git a/src/ObjLoading/Parsing/Menu/Sequence/MenuScopeSequences.cpp b/src/ObjLoading/Parsing/Menu/Sequence/MenuScopeSequences.cpp index 325e7fb7..bf2b3353 100644 --- a/src/ObjLoading/Parsing/Menu/Sequence/MenuScopeSequences.cpp +++ b/src/ObjLoading/Parsing/Menu/Sequence/MenuScopeSequences.cpp @@ -53,6 +53,24 @@ namespace menu::menu_scope_sequences } }; + class SequenceConsumeSemicolons final : public MenuFileParser::sequence_t + { + public: + SequenceConsumeSemicolons() + { + const MenuMatcherFactory create(this); + + AddMatchers({ + create.Char(';') + }); + } + + protected: + void ProcessMatch(MenuFileParserState* state, SequenceResult& result) const override + { + } + }; + class SequenceItemDef final : public MenuFileParser::sequence_t { static constexpr auto CAPTURE_TOKEN = 1; @@ -370,4 +388,5 @@ void MenuScopeSequences::AddSequences(FeatureLevel featureLevel) { state->m_current_menu->m_text_only_focus = true; })); + AddSequence(std::make_unique()); }