Byte array (#1)

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
2026-04-27 09:42:03 -05:00
parent 9fc093e3fb
commit 3f097b0ba8
11 changed files with 423 additions and 0 deletions

36
src/bytecode/bytearray.hh Normal file
View File

@@ -0,0 +1,36 @@
#ifndef TYCHE_BYTEARRAY_HH
#define TYCHE_BYTEARRAY_HH
#include <cstdint>
#include <stdexcept>
#include <string>
#include <vector>
namespace tyche {
class ByteArray {
public:
void add_byte(uint32_t addr, uint8_t byte);
void add_int(uint32_t addr, int32_t value);
void add_float(uint32_t addr, float value);
void add_string(uint32_t addr, std::string const& str);
[[nodiscard]] uint8_t get_byte(uint32_t addr) const;
[[nodiscard]] std::pair<int32_t, size_t> get_int(uint32_t addr) const;
[[nodiscard]] std::pair<float, size_t> get_float(uint32_t addr) const;
[[nodiscard]] std::pair<std::string, size_t> get_string(uint32_t addr) const;
[[nodiscard]] std::vector<uint8_t> const& data() const { return data_; }
private:
std::vector<uint8_t> data_;
};
class BytecodeParsingError : public std::runtime_error {
public:
explicit BytecodeParsingError(std::string const& str) : std::runtime_error(str.c_str()) {}
};
}
#endif //TYCHE_BYTEARRAY_HH