mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-10 14:58:10 -05:00
Add base for menu eventhandlerset parsing
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
#include "MenuFileParser.h"
|
||||
|
||||
#include "Sequence/EventHandlerSetScopeSequences.h"
|
||||
#include "Sequence/FunctionScopeSequences.h"
|
||||
#include "Sequence/GlobalScopeSequences.h"
|
||||
#include "Sequence/ItemScopeSequences.h"
|
||||
@ -11,7 +12,7 @@ using namespace menu;
|
||||
MenuFileParser::MenuFileParser(SimpleLexer* lexer, const FeatureLevel featureLevel)
|
||||
: AbstractParser(lexer, std::make_unique<MenuFileParserState>(featureLevel))
|
||||
{
|
||||
CreateTestCollections();
|
||||
CreateSequenceCollections();
|
||||
}
|
||||
|
||||
void MenuFileParser::AddSequence(std::vector<sequence_t*>& collection, std::unique_ptr<sequence_t> test)
|
||||
@ -20,37 +21,7 @@ void MenuFileParser::AddSequence(std::vector<sequence_t*>& collection, std::uniq
|
||||
m_all_tests.emplace_back(std::move(test));
|
||||
}
|
||||
|
||||
void MenuFileParser::CreateNoScopeTests()
|
||||
{
|
||||
NoScopeSequences noScopeSequences(m_all_tests, m_no_scope_tests);
|
||||
noScopeSequences.AddSequences(m_state->m_feature_level);
|
||||
}
|
||||
|
||||
void MenuFileParser::CreateGlobalScopeTests()
|
||||
{
|
||||
GlobalScopeSequences globalScopeSequences(m_all_tests, m_global_scope_tests);
|
||||
globalScopeSequences.AddSequences(m_state->m_feature_level);
|
||||
}
|
||||
|
||||
void MenuFileParser::CreateFunctionScopeTests()
|
||||
{
|
||||
FunctionScopeSequences functionPropertySequences(m_all_tests, m_function_scope_tests);
|
||||
functionPropertySequences.AddSequences(m_state->m_feature_level);
|
||||
}
|
||||
|
||||
void MenuFileParser::CreateMenuScopeTests()
|
||||
{
|
||||
MenuScopeSequences menuPropertySequences(m_all_tests, m_menu_scope_tests);
|
||||
menuPropertySequences.AddSequences(m_state->m_feature_level);
|
||||
}
|
||||
|
||||
void MenuFileParser::CreateItemScopeTests()
|
||||
{
|
||||
ItemScopeSequences itemPropertySequences(m_all_tests, m_item_scope_tests);
|
||||
itemPropertySequences.AddSequences(m_state->m_feature_level);
|
||||
}
|
||||
|
||||
void MenuFileParser::CreateTestCollections()
|
||||
void MenuFileParser::CreateSequenceCollections()
|
||||
{
|
||||
m_all_tests.clear();
|
||||
m_no_scope_tests.clear();
|
||||
@ -58,16 +29,34 @@ void MenuFileParser::CreateTestCollections()
|
||||
m_function_scope_tests.clear();
|
||||
m_menu_scope_tests.clear();
|
||||
m_item_scope_tests.clear();
|
||||
m_event_handler_set_scope_tests.clear();
|
||||
|
||||
CreateNoScopeTests();
|
||||
CreateGlobalScopeTests();
|
||||
CreateFunctionScopeTests();
|
||||
CreateMenuScopeTests();
|
||||
CreateItemScopeTests();
|
||||
const auto featureLevel = m_state->m_feature_level;
|
||||
|
||||
NoScopeSequences noScopeSequences(m_all_tests, m_no_scope_tests);
|
||||
noScopeSequences.AddSequences(featureLevel);
|
||||
|
||||
GlobalScopeSequences globalScopeSequences(m_all_tests, m_global_scope_tests);
|
||||
globalScopeSequences.AddSequences(featureLevel);
|
||||
|
||||
MenuScopeSequences menuPropertySequences(m_all_tests, m_menu_scope_tests);
|
||||
menuPropertySequences.AddSequences(featureLevel);
|
||||
|
||||
ItemScopeSequences itemPropertySequences(m_all_tests, m_item_scope_tests);
|
||||
itemPropertySequences.AddSequences(featureLevel);
|
||||
|
||||
FunctionScopeSequences functionPropertySequences(m_all_tests, m_function_scope_tests);
|
||||
functionPropertySequences.AddSequences(featureLevel);
|
||||
|
||||
EventHandlerSetScopeSequences eventHandlerSetScopeSequences(m_all_tests, m_event_handler_set_scope_tests);
|
||||
eventHandlerSetScopeSequences.AddSequences(featureLevel);
|
||||
}
|
||||
|
||||
const std::vector<MenuFileParser::sequence_t*>& MenuFileParser::GetTestsForState()
|
||||
{
|
||||
if (m_state->m_current_event_handler_set)
|
||||
return m_event_handler_set_scope_tests;
|
||||
|
||||
if (m_state->m_current_item)
|
||||
return m_item_scope_tests;
|
||||
|
||||
|
Reference in New Issue
Block a user