Loading...
Searching...
No Matches
by::generalizer Class Reference

Visitor for generic type parameter replacement. More...

#include <generalizer.hpp>

Inheritance diagram for by::generalizer:
by::visitor by::tworker< void, node >

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)
 
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
 

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
 

Detailed Description

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.

Member Function Documentation

◆ _onWork()

void by::generalizer::_onWork ( )
overrideprotectedvirtual

◆ add()

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

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