#ifndef fk_SYMENTRY_HPP #define fk_SYMENTRY_HPP #include "commons.hpp" #include "Loc.hpp" namespace fk { class Node; class SymEntry { public: explicit SymEntry(std::string const& name, addr_t addr, bool is_global, int scope, std::shared_ptr parent, Loc const& loc); virtual ~SymEntry(); std::string name() const { return m_name; } addr_t addr() const { return m_addr; } bool is_global() const { return m_is_global; } int scope() const { return m_scope; } std::shared_ptr parent() const { return m_parent; } Loc loc() const { return m_loc; } void set_global(bool global) { m_is_global = global; } void set_addr(addr_t addr) { m_addr = addr; } std::string string() const; private: std::string m_name; addr_t m_addr; bool m_is_global = false; int m_scope; std::shared_ptr m_parent; Loc m_loc; }; } #endif