by::ntype Class Reference

Native type system for byeol language. More...

#include <ntype.hpp>

Inheritance diagram for by::ntype:
by::type by::expr::exprType by::mgdType by::funcMgdType

Public Member Functions

nbool operator== (const type &rhs) const override
 
template<typename T >
nbool isImpli () const
 whether variable 'it' can be a subtype of T
 
virtual nbool isImpli (const type &to) const
 
nbool isImpli (const type *it) const BY_SIDE_FUNC(isImpli)
 
nbool isImpli (const typeProvidable &to) const
 
nbool isImpli (const typeProvidable *it) const BY_SIDE_FUNC(isImpli)
 
template<typename T >
tstr< T > asImpli (const node &it) const
 
template<typename T >
tstr< T > asImpli (const node *it) const BY_SIDE_FUNC(asImpli< T >)
 
virtual str asImpli (const node &from, const type &to) const
 
str asImpli (const node &from, const type *to) const BY_SIDE_FUNC(to
 
str asImpli (from, *to)
 
str str ())
 
str asImpli (const node *from, const type &to) const BY_SIDE_FUNC(from
 
str asImpli str ())
 
str asImpli (const node *from, const type *to) const BY_SIDE_FUNC(from &&to
 
str asImpli str ())
 
virtual nbool isCustom () const
 
template<typename T >
nbool is () const
 
nbool is (const type &to) const
 
nbool is (const type *it) const BY_SIDE_FUNC(is)
 
template<typename T >
tstr< T > as (const node &it) const
 
template<typename T >
tstr< T > as (const node *it) const BY_SIDE_FUNC(as< T >)
 
str as (const node &from, const type &to) const
 
str as (const node &from, const type *to) const BY_SIDE_FUNC(to
 
str as (from, *to)
 
str str ())
 
str as (const node *from, const type &to) const BY_SIDE_FUNC(from
 
str as str ())
 
str as (const node *from, const type *to) const BY_SIDE_FUNC(from &&to
 
str as str ())
 
virtual nbool isImmutable () const
 
const ntypededuce (const ntype &r) const
 
const ntypededuce (const ntype *it) const BY_SIDE_FUNC(deduce)
 
const ntypededuce (const typeProvidable &r) const
 
const ntypededuce (const typeProvidable *it) const BY_SIDE_FUNC(deduce)
 
template<typename T >
const ntypededuce () const
 
static const ntype deduce (l, *r)
 
const paramsgetParams () const BY_CONST_FUNC(getParams()) virtual params &getParams()
 
virtual const nodegetRet () const
 
virtual void setRet (const node &new1)
 
void setRet (const node *it) BY_SIDE_FUNC(setRet)
 
std::string createNameWithParams () const
 
const nchar * getMetaTypeName () const override
 
- Public Member Functions inherited from by::type
virtual nbool operator== (const me &rhs) const
 
nbool operator!= (const me &rhs) const
 
virtual nbool isTemplate () const =0
 
virtual nbool isAbstract () const =0
 
virtual const std::string & getName () const
 
virtual void * make () const =0
 create an instance to be refered this type. More...
 
template<typename T >
T * makeAs () const
 
virtual ncnt size () const =0
 
virtual nbool init ()
 
virtual nbool rel ()
 
virtual const typegetSuper () const =0
 
virtual const nbool & isInit () const =0
 
const types & getLeafs () const
 returns all most derived class from this class.
 
const types & getSubs () const
 
const types & getSupers () const
 
virtual nbool isSuper (const type &it) const
 
nbool isSuper (const type *it) const BY_SIDE_FUNC(isSuper)
 
template<typename T >
nbool isSuper () const
 
nbool isSub (const type &it) const
 
nbool isSub (const type *it) const BY_SIDE_FUNC(isSub)
 
template<typename T >
nbool isSub () const
 
const typegetStatic () const BY_CONST_FUNC(_getStatic()) virtual const nchar *getMetaTypeName() const
 Get meta type name for efficient type checking. More...
 

Static Public Member Functions

static const ntypededuce (const ntype &l, const ntype &r)
 
static const ntypededuce (const ntype &l, const ntype *r) BY_SIDE_FUNC(r
 
static const ntypededuce (const ntype *l, const ntype &r) BY_SIDE_FUNC(l
 
static const ntypededuce (const ntype *l, const ntype *r) BY_SIDE_FUNC(l &&r
 

Public Attributes

str asImpli from
 
str as from
 
static const ntype nullptr
 
static const ntype deduce l
 
static const ntype deduce nullptr
 

Static Public Attributes

static const std::string META_TYPENAME = "ntype"
 

Protected Member Functions

virtual const impliAses_getImpliAses () const
 
virtual const ases_getAses () const
 
- Protected Member Functions inherited from by::type
virtual types & _getSubs ()=0
 
virtual types & _getSupers ()=0
 
virtual type_getStatic () const =0
 
void _setInit (nbool newState)
 
virtual void _onAddSubClass (const me &subClass)
 
virtual types ** _onGetLeafs () const =0
 
void _setLeafs (types *newLeafs) const
 
virtual const std::string & _getNativeName () const
 

Friends

class seq
 
class arr
 
class genericOrigin
 

Detailed Description

Native type system for byeol language.

Core type class that provides type information, type conversion, and type deduction. Supports implicit/explicit casting, type compatibility checking, and parameter management.

Member Function Documentation

◆ deduce() [1/2]

static const ntype * by::ntype::deduce ( const ntype l,
const ntype r 
)
static
Returns
null it it's not relative between l & r.

◆ deduce() [2/2]

const ntype * by::ntype::deduce ( const ntype r) const
Returns
null if it's not relative between l & r.

◆ isCustom()

virtual nbool by::ntype::isCustom ( ) const
inlinevirtual
Returns
whether this's a custom type.

The documentation for this class was generated from the following file: