|
|
| 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 |
| |
| 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 |
| |
|
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 |
| |
|
void | inFrame () const |
| |
Function definition in byeol language.
Represents a user-defined function with parameters, return type, and executable block. Extends baseFunc to provide concrete function implementation with actual code body. Manages function execution context, parameter handling, and return value processing.
Function Execution
When a func is evaluated:
- Creates a new frame and registers it with is required to run an autopod
- Binds arguments to parameters in the frame's scope
- Executes the blockExpr body
- Processes return value and cleans up the frame
- Runs any endExpr statements (cleanup code)
Frame Interaction
func implements frameInteractable, meaning it interacts with the execution frame stack. During execution, it calls inFrame() to register its scope and parameters, then outFrame() to clean up when execution completes.
Abstract Functions
func can be abstract (no body) when used in type definitions. Use isAbstract() to check. Abstract functions have no blockExpr and cannot be executed directly.