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

Preorder visitor for the stela AST. More...

#include <stelaVisitor.hpp>

Inheritance diagram for by::stelaVisitor:
by::typeProvidable by::clonable by::stelaWriter

Public Member Functions

void work (stela &root)
 
virtual nbool onVisit (const stelaVisitInfo &i, valStela &it)
 
virtual void onLeave (const stelaVisitInfo &i, valStela &it)
 
virtual void visit (const stelaVisitInfo &i, stela &it)
 
virtual nbool onVisit (const stelaVisitInfo &i, stela &it)
 
virtual void onLeave (const stelaVisitInfo &i, stela &it)
 
virtual void onTraverse (const stelaVisitInfo &i, stela &it)
 
- 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 >
Tcast ()
 
template<typename T >
const Tcast () const BY_CONST_FUNC(cast< T >()) virtual void *cast(const type &to)
 Safe cast to target type using type hierarchy information.
 
const voidcast (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 meclone () const =0
 
virtual mecloneDeep () const
 
virtual void onCloneDeep (const me &from)
 

Detailed Description

Preorder visitor for the stela AST.

Mirrors byeol's visitor in miniature. Each visit goes through three phases:

  1. onVisit() — inspect the node; return false to skip the subtree.
  2. onTraverse() — descend into children (default: iterate the child map).
  3. onLeave() — post-visit hook.

Typed overloads (onVisit(..., valStela&)) are dispatched from each subclass's accept() (injected by the VISIT macro). A type-specific override that is not provided chains up to onVisit(..., stela&) via the super typedef, matching byeol's convention.

stela trees are pure (no shared subgraphs), so unlike byeol's visitor no visited-set is maintained.


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