Visitor for generic type parameter replacement. More...
#include <generalizer.hpp>
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, evalExpr &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, evalExpr &e) |
| virtual void | onTraverse (evalExpr &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::tworker< void, node > | |
| tworker (const errReport &rpt) | |
| errReport & | getReport () |
| const errReport & | getReport () 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 |
| node * | getTask () |
| const node * | getTask () const BY_CONST_FUNC(getTask()) virtual void rel() |
| void | work () |
| const area & | getArea () 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 type & | getType () 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) |
| Safe cast to target type using type hierarchy information. | |
| 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) |
Protected Member Functions | |
| void | _onWork () override |
Protected Member Functions inherited from by::visitor | |
| void | _onWork () override |
| void | _prepare () override |
| Protected virtual method for preparation before starting the work. | |
Protected Member Functions inherited from by::tworker< void, node > | |
| void | _report (baseErr *e) |
| virtual void | _onEndWork () |
| Protected virtual method called after the work is completed. | |
| area & | _getArea () |
| void | _onEndErrReport (const errReport &rpt) const |
Additional Inherited Members | |
Public Types inherited from by::tworker< void, node > | |
| enum | logFlag |
Public Attributes inherited from by::tworker< void, node > | |
| me setTask | it |
| me setTask * | this |
Visitor for generic type parameter replacement.
A class that handles generic type creation based on visitor. Mainly used by getGenericExpr, so refer to that class first. The most important part is the first line where inside a genericOrigin instance called SomeGeneric, an origin object called SomeGeneric<myObj> is stored with the key myObj. generalizer is used to create SomeGeneric<myObj> from SomeGeneric<T>, and at this time it simply finds getExpr objects whose args is T and replaces them with getExpr whose args is myObj, performing this across all nodes.
|
overrideprotectedvirtual |
Implements by::tworker< void, node >.