#pragma once #include #include #include "Utils/ClassUtils.h" #include "StateMapDefinition.h" #include "StateMap/StateMapLayout.h" #include "Parsing/IParserLineStream.h" #include "Parsing/StateMapParserState.h" namespace state_map { class StateMapReader { std::string m_state_map_name; std::string m_file_name; const StateMapLayout& m_state_map_layout; std::unique_ptr m_base_stream; std::unique_ptr m_comment_proxy; public: StateMapReader(std::istream& stream, std::string fileName, std::string stateMapName, const StateMapLayout& layout); _NODISCARD bool IsValidEndState(const StateMapParserState* state) const; _NODISCARD std::unique_ptr ReadStateMapDefinition() const; }; }