by::exprMaker Class Reference

Factory for creating expressions with source location information. More...

#include <exprMaker.hpp>

Inheritance diagram for by::exprMaker:
by::typeProvidable by::clonable

Public Member Functions

 exprMaker (const srcFile &s, ncnt row, ncnt col)
 
me & addRow ()
 
me & addRow (ncnt step)
 
me & addCol ()
 
me & addCol (ncnt step)
 
me & setRow (ncnt row)
 
me & setCol (ncnt col)
 
me & setSrcFile (const srcFile &s)
 
void rel ()
 
const pointgetPos () const
 
const srcFilegetSrcFile () const
 
tstr< srcmakeSrc (const std::string &name) const
 
template<typename T , typename... Args>
T * birth (const std::string &name, const Args &... args) const
 
template<typename T , typename... Args>
T * make (const Args &... args) const
 
funcmakeExpandFunc (const defBlock &blk) const
 
assignExprmakeAssignExprFrom (const defVarExpr &e) const
 
funcmakeCommonFunc (const defBlock &blk) 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)
 

Detailed Description

Factory for creating expressions with source location information.

Creates expression objects with proper source file and position metadata. Used by parser to track source locations for debugging and error reporting.

Member Function Documentation

◆ birth()

template<typename T , typename... Args>
T * by::exprMaker::birth ( const std::string &  name,
const Args &...  args 
) const
inline
Note
when you birth your child, you must name it.

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