You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
979 B

#pragma once
#include <cstddef>
#include <cstdint>
#include <llodisposition/llodisposition_types.hpp>
namespace llo::symbol
{
enum class symbol_type_t : std::uint8_t
{
s_invalid,
s_function,
s_data,
s_import,
s_export
};
class symbol_base_t
{
disposition_t disposition;
llo::utils::hash_t< std::string > symbol_name;
std::size_t symbol_size;
public:
explicit symbol_base_t( llo::utils::hash_t< std::string > &&symbol_name, llo::disposition_t &&disposition )
: disposition( disposition ), symbol_name( symbol_name )
{
}
symbol_base_t( llo::utils::hash_t< std::string > &symbol_name, llo::disposition_t &disposition )
: disposition( disposition ), symbol_name( symbol_name )
{
}
virtual symbol_type_t get_type() const = 0;
virtual std::size_t get_size() const = 0;
};
} // namespace llo::symbol