// Copyright 2023 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 error : public std::runtime_error { public: error(const std::string& what) : std::runtime_error("[ERROR]: "s + what) {} }; class asm_error : public std::runtime_error { public: asm_error(const std::string& what) : std::runtime_error("[ERROR]:assembler: "s + what) {} }; class disasm_error : public std::runtime_error { public: disasm_error(const std::string& what) : std::runtime_error("[ERROR]:disassembler: "s + what) {} }; class comp_error : public std::runtime_error { public: comp_error(const location& loc, const std::string& what) : std::runtime_error("[ERROR]:compiler:" + loc.print() + ": " + what) {} }; class decomp_error : public std::runtime_error { public: decomp_error(const std::string& what) : std::runtime_error("[ERROR]:decompiler: "s + what) {} }; } // namespace xsk::arc