#pragma once #include #include #include class Wassembler { private: Execute::VirtualMachine vm; bool printSubstitutions; bool printTokens; bool printTranslatedBytes; bool LoadTextFile(std::string const & filePath, std::vector & lines) const; bool Preprocess(std::vector & lines) const; bool Tokenize(std::vector const & lines, std::vector & tokens) const; bool CompileToBytes( std::vector const & tokens, std::vector const & lines, std::vector & bytes) const; void ExecuteCode(std::vector const & bytes); bool CompileFile(std::string const & filePath, std::vector & bytes) const; public: void SetMemorySize(unsigned const size); void EnableSubstitutionsLogging(); void EnableTokensLogging(); void EnableByteTranslationLogging(); bool CompileAndRun(std::string const & filePath); bool CompileToFile(std::string const & inputFilePath, std::string const & outputFilePath); Wassembler() = default; };