// Copyright 2022 xensik. All rights reserved. // // Use of this source code is governed by a GNU GPLv3 license // that can be found in the LICENSE file. #pragma once namespace xsk::arc { class compiler { public: using ptr = std::unique_ptr; virtual ~compiler() = default; virtual auto output() -> assembly::ptr = 0; virtual auto output_data() -> std::vector = 0; virtual void compile(const std::string& file, std::vector& data) = 0; virtual void read_callback(std::function(const std::string&)> func) = 0; }; } // namespace xsk::arc