Type information for expression nodes More...
#include <expr.hpp>
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 ntype * | deduce (const ntype &r) const |
| const ntype * | deduce (const ntype *it) const BY_SIDE_FUNC(deduce) |
| const ntype * | deduce (const typeProvidable &r) const |
| const ntype * | deduce (const typeProvidable *it) const BY_SIDE_FUNC(deduce) |
| template<typename T > | |
| const ntype * | deduce () const |
| static const ntype | deduce (l, *r) |
| const params & | getParams () const BY_CONST_FUNC(getParams()) virtual params &getParams() |
| virtual const node * | getRet () 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 type & | getSuper () 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 type & | getStatic () 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 ntype * | deduce (const ntype &l, const ntype &r) |
| static const ntype * | deduce (const ntype &l, const ntype *r) BY_SIDE_FUNC(r |
| static const ntype * | deduce (const ntype *l, const ntype &r) BY_SIDE_FUNC(l |
| static const ntype * | deduce (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 |
Type information for expression nodes
Provides type metadata and conversion rules for expressions.
Reimplemented from by::ntype.
|
overridevirtual |
Reimplemented from by::ntype.