#pragma once #include "Parsing/Impl/AbstractParser.h" #include "Parsing/Simple/SimpleLexer.h" #include "Parsing/Simple/SimpleParserValue.h" #include "StateMapParserState.h" #include "Techset/TechsetDefinition.h" #include "Utils/ClassUtils.h" namespace state_map { class StateMapParser final : public AbstractParser { protected: const std::vector& GetTestsForState() override; public: StateMapParser(SimpleLexer* lexer, std::string stateMapName, const StateMapLayout& layout); _NODISCARD std::unique_ptr GetStateMapDefinition() const; _NODISCARD StateMapParserState* GetState() const; }; } // namespace state_map