Nested function with captured scope. More...
#include <nestedFunc.hpp>
Protected Member Functions | |
| str | _interactFrame (node &meObj, scope &s, nidx exN) override |
| Overrides base class to handle frame interaction and local scope capture for nested functions. | |
Protected Member Functions inherited from by::func | |
| str | _run (nidx exN) |
Protected Member Functions inherited from by::baseFunc | |
| void | _setSrc (const src &newSrc) override |
Protected Member Functions inherited from by::node | |
| virtual str | _onEvalSub (node &sub, const args &a) |
| Protected virtual method for evaluating a sub-node. | |
| void | _setSrc (const src *it) BY_SIDE_FUNC(_setSrc) |
Additional Inherited Members | |
Public Member Functions inherited from by::func | |
| func (const modifier &mod, const funcType &type) | |
| func (const modifier &mod, const funcType &type, const blockExpr &newBlock) | |
| func (const modifier &mod, const funcType &type, const scope &subs, const blockExpr &newBlock) | |
| const ntype & | getType () const override |
| blockExpr & | getBlock () |
| const blockExpr & | getBlock () const |
| void | setBlock (const blockExpr &new1) |
| scope & | subs () override |
| str | eval (const args &a) override |
| void | inFrame (const bicontainable *args) const override |
| void | outFrame () const override |
| const baseObj & | getOrigin () const override |
| ends & | getEnds () |
Gets the list of endExpr (defer-like statements) registered for this function. | |
| const ends & | getEnds () const BY_CONST_FUNC(getEnds()) void onCloneDeep(const clonable &from) override |
| nbool | isAbstract () const |
Public Member Functions inherited from by::baseFunc | |
| priorType | prioritize (const args &a) const override |
| virtual params & | getParams () |
| const params & | getParams () const BY_CONST_FUNC(getParams()) |
| virtual const node * | getRet () const |
| const src & | getSrc () const override |
| const modifier & | getModifier () 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 scope & | subs () const BY_CONST_FUNC(subs()) virtual tstr< nbicontainer > mySubs() const |
| Returns a tstr to a container of immediate sub-nodes (excluding inherited or chained ones). | |
| const node * | promote (const node &it) const |
| const node * | promote (const node *it) const BY_SIDE_FUNC(promote) |
| 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, strTactic > | subAll (std::function< nbool(const std::string &, const T &)> l) const |
| template<typename T = me> | |
| tnarr< T, strTactic > | subAll () 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 | canEval (const args &a) const |
| priorType | prioritize (const args *it) const BY_SIDE_FUNC(it |
| str | eval (const args *it) BY_SIDE_FUNC(eval) |
| str | eval (const std::string &name, const args &a) |
| str | eval (const std::string &name, const args *a) BY_SIDE_FUNC(a |
| str | eval (name, a) |
| str | str ()) |
| str | eval (const std::string *name, const args &a) BY_SIDE_FUNC(name |
| str eval | str ()) |
| str | eval (const std::string *name, const args *a) BY_SIDE_FUNC(name &&a |
| str eval | str ()) |
| str | eval (const std::string &name) |
| str | eval (const std::string *it) BY_SIDE_FUNC(eval) |
| str | eval () |
| 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 |
| virtual nbool | isImpli (const type &to) 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 | infer () const |
| virtual void | accept (const visitInfo &i, visitor &v) |
| void | inFrame (const bicontainable *args) const override |
| void | outFrame () const override |
| virtual void | inFrame (const bicontainable *args) const=0 |
| void | inFrame () const |
| virtual void | outFrame () const=0 |
Public Member Functions inherited from by::frameInteractable | |
| void | inFrame () const |
Static Public Member Functions inherited from by::baseFunc | |
| static nbool | isFuncButNotClosure (const node &n) |
| Checks if the given node represents a function that is not a closure. | |
| static nbool | isFuncButNotClosure (const node *it) BY_SIDE_FUNC(isFuncButNotClosure) |
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 eval | name |
Static Public Attributes inherited from by::func | |
| static const std::string | LAMBDA_NAME = "@lambda" |
| static const std::string | CTOR_NAME = "@ctor" |
| static const std::string | GETTER_NAME = "@get" |
| static const std::string | SETTER_NAME = "@set" |
| static const std::array< std::string, 4 > | SPECIAL_FUNC_NAMES |
Static Public Attributes inherited from by::baseFunc | |
| static const std::string | ME = "me" |
Nested function with captured scope.
Function that captures local scope at creation time. Clones function with shallow copied block scope for variable capture in closures.
Overrides base class to handle frame interaction and local scope capture for nested functions.
This method ensures that the nested function correctly captures and maintains its local scope from its creation context, which is crucial for closures.
| meObj | The "me" object (context) for this nested function call. |
| s | The scope associated with this function. |
| exN | An index related to exception handling. |
str object representing the result of the frame interaction. Reimplemented from by::func.