by::generalizer Class Reference

Visitor for generic type parameter replacement. More...

#include <generalizer.hpp>

Inheritance diagram for by::generalizer:
by::visitor by::worker< void, node > by::typeProvidable by::clonable

Public Member Functions

me & add (const obj &origin)
 
me & add (const param &newParam)
 
me & add (const params &newParams)
 
nbool onVisit (const visitInfo &i, asExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, blockExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, defVarExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, runExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, baseFunc &me, nbool) override
 
nbool onVisit (const visitInfo &i, ctor &me, nbool) override
 
nbool onVisit (const visitInfo &i, baseCtor &me, nbool) override
 
nbool onVisit (const visitInfo &i, params &me)
 
nbool onVisit (const visitInfo &i, FBOExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, baseObj &me, nbool) override
 
nbool onVisit (const visitInfo &i, getGenericExpr &me, nbool) override
 
- Public Member Functions inherited from by::visitor
 visitor (nbool isReturnable)
 
void setReturnable (nbool isReturnable)
 
nbool isReturnable () const
 
virtual void visit (const visitInfo &i, node &me)
 
virtual nbool onVisit (const visitInfo &i, node &me, nbool alreadyVisited)
 
virtual void onLeave (const visitInfo &i, node &me, nbool alreadyVisited)
 
virtual void onTraverse (const visitInfo &i, node &me)
 
virtual void onTraverse (const visitInfo &i, asExpr &a)
 
virtual void onTraverse (const visitInfo &i, assignExpr &a)
 
virtual void onTraverse (const visitInfo &i, blockExpr &b)
 
virtual void onTraverse (const visitInfo &i, defVarExpr &d)
 
virtual void onTraverse (const visitInfo &i, FBOExpr &f)
 
virtual void onTraverse (const visitInfo &i, getExpr &e)
 
virtual void onTraverse (const visitInfo &i, retExpr &b)
 
virtual void onTraverse (const visitInfo &i, runExpr &e)
 
virtual void onTraverse (runExpr &e, node &subject)
 
virtual void onTraverse (const visitInfo &i, func &f)
 
virtual void onTraverse (const visitInfo &i, frame &f)
 
virtual void onTraverse (const visitInfo &i, forExpr &f)
 
virtual void onTraverse (const visitInfo &i, retStateExpr &r)
 
virtual void onTraverse (const visitInfo &i, ifExpr &f)
 
virtual void onTraverse (const visitInfo &i, whileExpr &w)
 
virtual void onTraverse (const visitInfo &i, defArrayExpr &d)
 
virtual void onTraverse (const visitInfo &i, defNestedFuncExpr &e)
 
virtual void onTraverse (const visitInfo &i, genericOrigin &g)
 
virtual void onTraverse (const visitInfo &i, obj &o)
 
- Public Member Functions inherited from by::worker< void, node >
errReportgetReport ()
 
const errReportgetReport () const BY_CONST_FUNC(getReport()) me &setReport(errReport &rpt)
 
me & setFlag (nint newFlag)
 
me & addFlag (nint flag)
 
me & delFlag (nint clear)
 
nbool isFlag (nint flag) const
 
nint getFlag () const
 
me & setTask (const node &root)
 
me & setTask (const node *it) BY_SIDE_FUNC(it
 
nodegetTask ()
 
const nodegetTask () const BY_CONST_FUNC(getTask()) virtual void rel()
 
void work ()
 
const areagetArea () const BY_CONST_FUNC(_getArea()) nbool isOk() const
 
- Public Member Functions inherited from by::typeProvidable
nbool operator== (const me &rhs) const
 
nbool operator!= (const me &rhs) const
 
virtual const typegetType () const =0
 
nbool isSub (const type &it) const
 
nbool isSub (const type *it) const BY_SIDE_FUNC(isSub)
 
nbool isSub (const me &it) const
 
nbool isSub (const me *it) const BY_SIDE_FUNC(isSub)
 
nbool isSuper (const type &it) const
 
nbool isSuper (const type *it) const BY_SIDE_FUNC(isSuper)
 
nbool isSuper (const me &it) const
 
nbool isSuper (const me *it) const BY_SIDE_FUNC(isSuper)
 
template<typename T >
nint isSub () const
 
template<typename T >
nint isSuper () const
 
template<typename T >
T * cast ()
 
template<typename T >
const T * cast () const BY_CONST_FUNC(cast< T >()) virtual void *cast(const type &to)
 
const void * cast (const type &to) const BY_CONST_FUNC(cast(to)) void *cast(const type *it) BY_SIDE_FUNC(cast)
 
- Public Member Functions inherited from by::clonable
virtual me * clone () const =0
 
virtual me * cloneDeep () const
 
virtual void onCloneDeep (const me &from)
 

Additional Inherited Members

- Public Types inherited from by::worker< void, node >
enum  logFlag
 
- Public Attributes inherited from by::worker< void, node >
me setTask it
 
me setTask * this
 
- Protected Member Functions inherited from by::visitor
void _onWork () override
 
void _prepare () override
 
- Protected Member Functions inherited from by::worker< void, node >
void _report (baseErr *e)
 
virtual void _onEndWork ()
 
area_getArea ()
 
void _onEndErrReport (const errReport &rpt) const
 

Detailed Description

Visitor for generic type parameter replacement.

Replaces generic type parameters with concrete types in AST nodes. Used during generic type instantiation to create specialized types.

Member Function Documentation

◆ add()

me & by::generalizer::add ( const obj origin)
Parameters
originof generic object.

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