#pragma once #include #include #include #include #include #include #include "Domain/CommonFunctionDef.h" #include "Domain/CommonMenuDef.h" #include "Domain/MenuFeatureLevel.h" #include "Domain/EventHandler/CommonEventHandlerCondition.h" namespace menu { class MenuFileParserState { public: class EventHandlerConditionState { public: bool m_in_condition_elements; std::unique_ptr m_condition; explicit EventHandlerConditionState(std::unique_ptr condition); }; const FeatureLevel m_feature_level; std::vector m_menus_to_load; std::vector> m_functions; std::vector> m_menus; std::map m_functions_by_name; std::map m_menus_by_name; bool m_in_global_scope; std::unique_ptr m_current_function; std::unique_ptr m_current_menu; std::unique_ptr m_current_item; std::unique_ptr m_current_event_handler_set; std::function value)> m_event_handler_set_callback; std::ostringstream m_current_script; std::stack m_current_condition; explicit MenuFileParserState(FeatureLevel featureLevel); }; }