by::verifier Class Reference

AST verifier for semantic analysis. More...

#include <verifier.hpp>

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

Public Member Functions

void onLeave (const visitInfo &i, node &me, nbool) override
 
void onLeave (const visitInfo &i, asExpr &me, nbool) override
 
void onLeave (const visitInfo &i, isExpr &me, nbool) override
 
void onLeave (const visitInfo &i, assignExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, blockExpr &me, nbool) override
 
void onLeave (const visitInfo &i, blockExpr &me, nbool) override
 
void onLeave (const visitInfo &i, defVarExpr &me, nbool) override
 
void onLeave (const visitInfo &i, defPropExpr &me, nbool) override
 
void onLeave (const visitInfo &i, defAssignExpr &me, nbool) override
 
void onLeave (const visitInfo &i, defSeqExpr &me, nbool) override
 
void onLeave (const visitInfo &i, defArrayExpr &me, nbool) override
 
void onLeave (const visitInfo &i, defNestedFuncExpr &me, nbool) override
 
void onLeave (const visitInfo &i, FBOExpr &me, nbool) override
 
void onLeave (const visitInfo &i, FUOExpr &me, nbool) override
 
void onLeave (const visitInfo &i, getExpr &me, nbool) override
 
void onLeave (const visitInfo &i, retExpr &me, nbool) override
 
void onLeave (const visitInfo &i, runExpr &me, nbool) override
 
void onTraverse (runExpr &me, node &subject) override
 
nbool onVisit (const visitInfo &i, func &me, nbool) override
 
void onLeave (const visitInfo &i, func &me, nbool) override
 
nbool onVisit (const visitInfo &i, closure &me, nbool) override
 
void onLeave (const visitInfo &i, closure &me, nbool) override
 
nbool onVisit (const visitInfo &i, ctor &me, nbool) override
 
void onLeave (const visitInfo &i, ctor &me, nbool) override
 
nbool onVisit (const visitInfo &i, baseObj &me, nbool) override
 
void onLeave (const visitInfo &i, baseObj &me, nbool) override
 
nbool onVisit (const visitInfo &i, genericOrigin &me, nbool) override
 
void onLeave (const visitInfo &i, genericOrigin &me, nbool) override
 
nbool onVisit (const visitInfo &i, forExpr &me, nbool) override
 
void onLeave (const visitInfo &i, forExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, whileExpr &me, nbool) override
 
void onLeave (const visitInfo &i, breakExpr &me, nbool) override
 
void onLeave (const visitInfo &i, nextExpr &me, nbool) override
 
nbool onVisit (const visitInfo &i, ifExpr &me, nbool) override
 
void onLeave (const visitInfo &i, ifExpr &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 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 (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)
 

Protected Member Functions

void _prepare () override
 
void _onEndWork () override
 
- 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)
 
area_getArea ()
 
void _onEndErrReport (const errReport &rpt) const
 

Friends

struct ::verifierTest
 
class genericOrigin
 

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
 

Detailed Description

AST verifier for semantic analysis.

Performs semantic analysis and type checking on AST nodes. Validates code correctness, type compatibility, and language semantics.

Member Function Documentation

◆ _onEndWork()

void by::verifier::_onEndWork ( )
overrideprotectedvirtual

Reimplemented from by::worker< void, node >.

◆ _prepare()

void by::verifier::_prepare ( )
overrideprotectedvirtual

Reimplemented from by::worker< void, node >.

◆ onLeave()

void by::verifier::onLeave ( const visitInfo i,
node me,
nbool   
)
overridevirtual

Reimplemented from by::visitor.

◆ onTraverse()

void by::verifier::onTraverse ( runExpr me,
node subject 
)
overridevirtual

Reimplemented from by::visitor.


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