로딩중...
검색중...
일치하는것 없음
by::baseFunc 클래스 참조abstract

Base class for all function types 더 자세히 ...

#include <baseFunc.hpp>

by::baseFunc에 대한 상속 다이어그램 :
by::node by::frameInteractable by::tbaseBridgeFunc< T, T, tmarshaling, Args... > by::tbaseBridgeFunc< Ret, T, Marshaling, Args... > by::tbaseBridgeFunc< void, T, Marshaling, Args... > by::baseCtor by::closure by::func by::inputFunc by::printFunc< T > by::tbaseBridgeFunc< Ret, T, Marshaling, Args > by::tbridgeClosure< Ret, T, Marshaling, Args > by::tbridgeClosure< void, T, Marshaling, Args... >

Public 멤버 함수

scopesubs () override
 
priorType prioritize (const args &a) const override
 
virtual paramsgetParams ()
 
const paramsgetParams () const BY_CONST_FUNC(getParams())
 
virtual const nodegetRet () const
 
const srcgetSrc () const override
 
const modifiergetModifier () const override
 
virtual const baseObjgetOrigin () const =0
 
- by::node(으)로부터 상속된 Public 멤버 함수
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
 Returns a tstr to a container of immediate sub-nodes (excluding inherited or chained ones).
 
const nodepromote (const node &it) const
 
const nodepromote (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
 
virtual str eval (const args &a)=0
 
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
 
- by::frameInteractable(으)로부터 상속된 Public 멤버 함수
void inFrame () const
 

정적 Public 멤버 함수

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 속성

static const std::string ME = "me"
 

Protected 멤버 함수

void _setSrc (const src &newSrc) override
 
- by::node(으)로부터 상속된 Protected 멤버 함수
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)
 

추가로 상속된 멤버들

- by::node(으)로부터 상속된 Public 속성
T sub name
 
T sub nullptr
 
tpriorities< T > subAll< T > name
 
priorType prioritize it
 
priorType prioritize NO_MATCH
 
str eval name
 

상세한 설명

Base class for all function types

Abstract base class providing common functionality for all function types including func, closure, and bridged functions like tbridgeFunc. Manages parameters, return types, modifier, and function execution semantics.

Function Hierarchy

The function class hierarchy in byeol:

  • baseFunc - Abstract base for all functions
    • func - User-defined functions with blockExpr bodies
    • closure - Nested functions with captured scope
    • tbridgeFunc - C++ native functions exposed to byeol
    • ctor - Constructor functions

Parameters and Return

baseFunc manages:

  • Parameters via getParams() - function parameter list with names and types
  • Return type via getRet() - the type this function returns when called
  • Modifiers via getModifier() - access control (public/protected/override)

Note: getRet() returns the return type, not the function's own type. The function's type is obtained via getType() or infer().

Argument Prioritization

baseFunc implements sophisticated prioritize() logic to select the best matching function overload based on argument types. This enables function overloading in byeol.

멤버 함수 문서화

◆ _setSrc()

void by::baseFunc::_setSrc ( const src & newSrc)
overrideprotectedvirtual

by::node(으)로부터 재구현되었습니다.

◆ getModifier()

const modifier & by::baseFunc::getModifier ( ) const
overridevirtual

by::node(으)로부터 재구현되었습니다.

◆ getParams()

virtual params & by::baseFunc::getParams ( )
virtual
반환값
parameters of eval() func. parameter is just a type. and I don't care about the value of each parameters. that is the reason why I uses a ref to represents parameter.

I need the name and which types should be casted and binded from given arguments are matters.

by::closure에서 재구현되었습니다.

◆ getRet()

virtual const node * by::baseFunc::getRet ( ) const
virtual
반환값
node which has same type of the func. in byeol lang, even type is an object. that's why I return this as a node.
Remarks
please don't confuse this to node::infer(). evaluate means program just read the code and expand or calculate then replace it to the accurate another identifier or variable. so evalType of the func is just the func itself because there is nothing to calculate or eval. that's completely different to Return type of the function. if there is a evalExpr instance, and it takes the func and proper argument, then it can be evaluated and its evalType is the return type of the func.

by::closure에서 재구현되었습니다.

◆ getSrc()

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

by::node(으)로부터 재구현되었습니다.

◆ isFuncButNotClosure()

static nbool by::baseFunc::isFuncButNotClosure ( const node & n)
static

Checks if the given node represents a function that is not a closure.

매개변수
nThe node to check.
반환값
true if the node is a function but not a closure, false otherwise.

◆ prioritize()

priorType by::baseFunc::prioritize ( const args & a) const
overridevirtual

by::node를 구현.

◆ subs()

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

by::node를 구현.


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.:
to Top