#pragma once #include "Parsing/IParserLineStream.h" #include #include class MockParserLineStream final : public IParserLineStream { public: static constexpr const char* MOCK_FILENAME = "MockFile"; private: class IncludePos { public: std::shared_ptr m_filename; const std::vector& m_lines; unsigned m_pos; IncludePos(std::string filename, const std::vector& lines); }; std::unordered_map> m_include_lines; std::vector m_include_positions; public: explicit MockParserLineStream(const std::vector& lines); void AddIncludeLines(const std::string& filename, const std::vector& lines); ParserLine NextLine() override; bool IncludeFile(const std::string& filename) override; void PopCurrentFile() override; _NODISCARD bool IsOpen() const override; _NODISCARD bool Eof() const override; };