roza/lib/Type.hpp

32 lines
455 B
C++
Raw Normal View History

2023-08-30 18:06:26 +00:00
#ifndef roza_TYPE_HPP
#define roza_TYPE_HPP
#include "commons.hpp"
#define BASE_TYPE(G) \
2023-08-31 09:07:03 +00:00
G(TY_INT), G(TY_BOOL)
2023-08-30 18:06:26 +00:00
namespace roza
{
MAKE_ENUM(BASE_TYPE, BaseType)
class Type
{
public:
explicit Type(BaseType base);
virtual ~Type();
BaseType base() const { return m_base; }
2023-08-30 22:31:19 +00:00
std::string string() const;
2023-08-30 18:06:26 +00:00
bool equals(BaseType rhs) const;
bool equals(Type const& rhs) const;
private:
BaseType m_base;
};
}
#endif