by::expr::exprType Class Reference

Type information for expression nodes More...

#include <expr.hpp>

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

Public Member Functions

nbool isImpli (const type &to) const override
 
str asImpli (const node &from, const type &to) const override
 
- Public Member Functions inherited from by::ntype
nbool operator== (const type &rhs) const override
 
template<typename T >
nbool isImpli () const
 whether variable 'it' can be a subtype of T
 
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 >)
 
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...
 

Additional Inherited Members

- Static Public Member Functions inherited from by::ntype
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 inherited from by::ntype
str asImpli from
 
str as from
 
static const ntype nullptr
 
static const ntype deduce l
 
static const ntype deduce nullptr
 
- Static Public Attributes inherited from by::ntype
static const std::string META_TYPENAME = "ntype"
 
- Protected Member Functions inherited from by::ntype
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
 

Detailed Description

Type information for expression nodes

Provides type metadata and conversion rules for expressions.

Member Function Documentation

◆ asImpli()

str by::expr::exprType::asImpli ( const node from,
const type to 
) const
overridevirtual

Reimplemented from by::ntype.

◆ isImpli()

nbool by::expr::exprType::isImpli ( const type to) const
overridevirtual

Reimplemented from by::ntype.


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