Files
BlitzLLVM/code_compiler/source/error.cpp
T

44 lines
1.0 KiB
C++
Raw Normal View History

2024-06-25 18:59:15 +02:00
// AUTOGENERATED COPYRIGHT HEADER START
// Copyright (C) 2024-2025 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
2024-06-25 18:59:15 +02:00
// AUTOGENERATED COPYRIGHT HEADER END
2024-06-26 00:31:06 +02:00
#include "error.hpp"
2025-01-25 16:27:50 +01:00
#include <cstdarg>
2024-06-26 00:31:06 +02:00
blitz::error::~error() {}
blitz::error::error(std::filesystem::path file, std::pair<uint64_t, uint64_t> base, std::pair<uint64_t, uint64_t> at, std::string reason) : std::runtime_error(reason)
{
_file = file;
_base = base;
_at = at;
}
std::filesystem::path const& blitz::error::file() const
{
return _file;
}
std::pair<uint64_t, uint64_t> const& blitz::error::base() const
{
return _base;
}
std::pair<uint64_t, uint64_t> const& blitz::error::at() const
{
return _at;
}
2025-01-25 16:27:50 +01:00
std::string blitz::format(const char* format, ...)
{
va_list arg1;
va_list arg2;
va_start(arg1, format);
va_copy(arg2, arg1);
int length = vsnprintf(nullptr, 0, format, arg1);
std::vector<char> buffer(length + 1);
vsnprintf(buffer.data(), buffer.size(), format, arg2);
va_end(arg1);
va_end(arg2);
return {buffer.data(), buffer.data() + length};
}