by::expr Class Reference

Base class for all expressions. More...

#include <expr.hpp>

Inheritance diagram for by::expr:
by::node by::instance by::frameInteractable by::typeProvidable by::clonable by::FBOExpr by::FUOExpr by::asExpr by::assignExpr by::blockExpr by::defArrayExpr by::defNestedFuncExpr by::defSeqExpr by::defVarExpr by::getExpr by::ifExpr by::isExpr by::loopExpr by::retStateExpr by::runExpr

Classes

class  exprType
 Type information for expression nodes More...
 

Public Member Functions

scopesubs () override
 
nbool isImpli (const type &to) const override
 
priorType prioritize (const args &a) const override
 
const srcgetSrc () const override
 
- Public Member Functions inherited from by::node
me & operator[] (const std::string &name)
 
const me & operator[] (const std::string &name) const BY_CONST_FUNC(operator[](name))
 
me & operator[] (const std::string *it)
 
const me & operator[] (const std::string *it) const BY_CONST_FUNC(operator[](it))
 
me & operator[] (const nchar *name)
 
const me & operator[] (const nchar *name) const BY_CONST_FUNC(operator[](name))
 
nbool in (const node &elem) const
 
nbool in (const node *elem) const
 
const scopesubs () const BY_CONST_FUNC(subs()) virtual tstr< nbicontainer > mySubs() const
 
const nodededuce (const node &it) const
 
const nodededuce (const node *it) const BY_SIDE_FUNC(deduce)
 
template<typename T >
T * sub (std::function< nbool(const std::string &, const T &)> l)
 
template<typename T >
const T * sub (std::function< nbool(const std::string &, const T &)> l) const BY_CONST_FUNC(sub< T >(l)) template< typename T
 
template<typename T = me>
const T * sub () const BY_CONST_FUNC(sub< T >()) template< typename T
 
template<typename T = me>
T * sub (const std::string *it) BY_SIDE_FUNC(sub)
 
template<typename T = me>
const T * sub (const std::string &name) const BY_CONST_FUNC(sub< T >(name)) template< typename T
 
template<typename T = me>
T * sub (const std::string *name, const args &a) BY_SIDE_FUNC(name
 
template<typename T = me>
const T * sub (const std::string &name, const args &a) const BY_CONST_FUNC(sub< T >(name
 
template<typename T = me>
const T a const T * sub (const std::string *name, const args &a) const BY_CONST_FUNC(sub< T >(name
 
template<typename T >
const T a const T a tnarr< T, strTacticsubAll (std::function< nbool(const std::string &, const T &)> l) const
 
template<typename T = me>
tnarr< T, strTacticsubAll () const
 
template<typename T = me>
tpriorities< T > subAll (const std::string &name) const
 
template<typename T = me>
tpriorities< T > subAll (const std::string *it) const BY_SIDE_FUNC(subAll< T >) template< typename T
 
template<typename T = me>
tpriorities< T > subAll (const std::string &name, const args &a) const
 
template<typename T = me>
tpriorities< T > subAll (const std::string *name, const args *a) const BY_SIDE_FUNC(name
 
tpriorities< T > subAll< T > tpriorities ())
 
template<typename T = me>
tpriorities< T > subAll (const std::string *name, const args &a) const BY_SIDE_FUNC(name
 
tpriorities< T > subAll< T > tpriorities ())
 
bool canRun (const args &a) const
 
priorType prioritize (const args *it) const BY_SIDE_FUNC(it
 
virtual str run (const args &a)=0
 
str run (const args *it) BY_SIDE_FUNC(run)
 
str run (const std::string &name, const args &a)
 
str run (const std::string &name, const args *a) BY_SIDE_FUNC(a
 
str run (name, a)
 
str str ())
 
str run (const std::string *name, const args &a) BY_SIDE_FUNC(name
 
str run str ())
 
str run (const std::string *name, const args *a) BY_SIDE_FUNC(name &&a
 
str run str ())
 
str run (const std::string &name)
 
str run (const std::string *it) BY_SIDE_FUNC(run)
 
str run ()
 
virtual void rel ()
 
template<typename T >
nbool is () const
 
nbool is (const typeProvidable &to) const
 
nbool is (const typeProvidable *it) const BY_SIDE_FUNC(is)
 
nbool is (const type &to) const
 
nbool is (const type *it) const BY_SIDE_FUNC(is)
 
template<typename T >
tstr< T > as () const
 
str as (const typeProvidable &to) const
 
str as (const typeProvidable *it) const BY_SIDE_FUNC(as)
 
str as (const type &to) const
 
str as (const type *it) const BY_SIDE_FUNC(as)
 
template<typename T >
nbool isImpli () const
 
nbool isImpli (const typeProvidable &to) const
 
nbool isImpli (const typeProvidable *it) const BY_SIDE_FUNC(isImpli)
 
template<typename T >
tstr< T > asImpli () const
 
virtual str asImpli (const type &to) const
 
str asImpli (const typeProvidable &to) const
 
str asImpli (const typeProvidable *it) const BY_SIDE_FUNC(asImpli)
 
virtual nbool isComplete () const
 
virtual str getEval () const
 
virtual void accept (const visitInfo &i, visitor &v)
 
void inFrame (const bicontainable *args) const override
 
void outFrame () const override
 
virtual const modifiergetModifier () const
 
virtual void inFrame (const bicontainable *args) const=0
 
void inFrame () const
 
virtual void outFrame () const=0
 
- Public Member Functions inherited from by::instance
 instance (id newId)
 
 instance (const me &rhs)
 
me & operator= (const me &rhs)=default
 
void * operator new (size_t sz) noexcept
 
void operator delete (void *pt, size_t sz) noexcept
 
virtual id getId () const
 
virtual nbool isHeap () const
 
const bindTaggetBindTag () 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)
 
- Public Member Functions inherited from by::frameInteractable
void inFrame () const
 

Protected Attributes

tstr< src_src
 
point _pos
 

Friends

class exprMaker
 
struct ::exprTest
 

Additional Inherited Members

- Public Attributes inherited from by::node
T sub name
 
T sub nullptr
 
tpriorities< T > subAll< T > name
 
priorType prioritize it
 
priorType prioritize NO_MATCH
 
str run name
 
- Protected Member Functions inherited from by::node
virtual str _onRunSub (node &sub, const args &a)
 
void _setSrc (const src *it) BY_SIDE_FUNC(_setSrc)
 
- Protected Member Functions inherited from by::instance
nbool _setId (id new1)
 
- Static Protected Member Functions inherited from by::instance
static instancer_getMgr ()
 

Detailed Description

Base class for all expressions.

Abstract base class for all expression nodes in the AST. Provides evaluation semantics and expression-specific type handling.

Member Function Documentation

◆ getSrc()

const src & by::expr::getSrc ( ) const
overridevirtual

Reimplemented from by::node.

◆ isImpli()

nbool by::expr::isImpli ( const type to) const
overridevirtual

Reimplemented from by::node.

◆ prioritize()

priorType by::expr::prioritize ( const args a) const
overridevirtual

run of expr class get treated like 'evaluate' in byeol. it should not take any arguments to run

Implements by::node.

Reimplemented in by::retExpr.

◆ subs()

scope & by::expr::subs ( )
overridevirtual

Implements by::node.


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