// // Created by black on 12.06.25. // #include "Manager.h" #include #include #include #include "components/Alu.h" namespace fs = std::filesystem; Manager::Manager(std::string path): m_path(std::move(path)) { std::cout << "Öffne Quellcode Datei: '" << m_path << "'" << "\n" << std::flush; if (!fs::exists(m_path)) { std::cerr << "Datei existiert nicht: " << m_path << "\n" << std::flush; return; } m_programFile.open(m_path); if (!m_programFile.is_open()) { std::cerr << "Datei konnte nicht geöffnet werden: " << m_path << "\n" << std::flush; std::cerr << "fail (z.B. Zugriffsrechte): " << m_programFile.fail() << "\n" << std::flush; std::cerr << "bad (schwerwiegender Fehler): " << m_programFile.bad() << "\n" << std::flush; return; } } Manager::~Manager() { m_programFile.close(); } Manager *Manager::getInstance(const std::string &program_path) { static Manager instance{program_path}; return &instance; } int Manager::run() { std::string line; ProgramLoader::getInstance()->indexFile(m_programFile); m_programFile.clear(); m_programFile.seekg(0); while (std::getline(m_programFile, line)) { auto lineVector = ProgramLoader::parseLine(line); Alu::calculate(lineVector); } return 0; }