Base class for representing byeol objects. More...
#include <baseObj.hpp>
Public Member Functions | |
| str | eval (const args &a) override |
| scope & | subs () override |
| state | getState () const override |
| void | setState (state new1) override |
| priorType | prioritize (const args &a) const override |
| virtual const baseObj & | getOrigin () const |
| void | inFrame (const bicontainable *args) const override |
| void | outFrame () const override |
| const src & | getSrc () const override |
| virtual const node & | getSubPod () const |
| Retrieves a sub-pod represented as a node. | |
| virtual baseObj * | make () const |
| 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 Attributes | |
| static const std::string | COMMON_NAME = "@common" |
| static const std::string | EXPAND_NAME = "@expand" |
Protected Member Functions | |
| baseObj ()=default | |
| Default constructor for baseObj. | |
| baseObj (const baseObj *org, nbool isScripted) | |
| Constructs a baseObj from an existing origin object. | |
| str | _onEvalSub (node &sub, const args &a) override |
| Protected virtual method for evaluating a sub-node. | |
| void | _setSrc (const src &s) override |
| virtual void | _inFrame (frame &fr, const bicontainable *args) const |
| Enters this object's frame into the current execution stack. | |
| virtual void | _setType (const mgdType &new1) |
| Sets the script type for this base object. | |
| virtual void | _setModifier (const modifier &mod) |
| virtual str | _onBeforeCtor () |
| Hook method called before the object's constructor is fully executed. | |
Protected Member Functions inherited from by::node | |
| void | _setSrc (const src *it) BY_SIDE_FUNC(_setSrc) |
Protected Attributes | |
| tstr< baseObj > | _org |
Friends | |
| class | coreInternal |
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 eval | name |
Base class for representing byeol objects.
The base class for representing objects in byeol. The core module uses both objects in the byeol runtime environment written in byeol language (obj) and objects in the native environment written using C++ code (baseObj) without distinction. Both are node and baseObj. To achieve this, obj inherits from baseObj, grouping them into the same class hierarchy. Therefore, baseObj only has functionality common to native and script objects. In other words, managed object obj always has more functionality than baseObj.
The original type defined by users in the byeol language is called an origin object. Constructor calls like ctor all create by copy-constructing origin objects.
To define a new baseObj in C++ code for use in byeol code, create a C++ class inheriting baseObj and override getOrigin() to return the appropriate baseObj origin object. For example:
tbaseObjOrigin is a class template added for convenience. See that class for details. Using tbridger allows exposing native functions as script functions in one simple line without additional code. nStr has a good example.
obj represents objects written in byeol language. Among these, origin objects written with the def keyword are represented as instances of the origin class. In contrast, baseObj cannot be used by itself; there exist C++ classes that inherit from it. Understand the difference well. From C++ code's perspective, baseObj's origin is static while obj's origin is dynamic. For example:
|
explicitprotecteddefault |
Default constructor for baseObj.
If no sub-objects are provided, internal sub-containers will be assigned to a dummy array. This is typically called in the constructor of derived classes.
|
protectedvirtual |
Enters this object's frame into the current execution stack.
This protected virtual method is a key part of the frame interaction mechanism, allowing the object's associated scope and symbols to become active in the current execution context.
| fr | The frame to interact with. |
| args | Optional arguments to be pushed onto the frame. |
Hook method called before the object's constructor is fully executed.
This protected virtual method provides a mechanism for derived classes or the runtime to inject logic or perform setup just before the main constructor body.
str object representing a pre-constructor state or result. Reimplemented in by::obj.
Protected virtual method for evaluating a sub-node.
This method is a crucial part of the evaluation mechanism, allowing derived classes to define how a specific sub-node is evaluated within the context of the current node.
| sub | The sub-node to be evaluated. |
| a | The arguments for evaluation. |
str object. Reimplemented from by::node.
Reimplemented in by::genericOrigin.
|
overridevirtual |
Implements by::statable.
Retrieves a sub-pod represented as a node.
This method is used to access nested pod structures or components within this base object.
Reimplemented in by::origin.
|
overridevirtual |
Implements by::frameInteractable.
|
overridevirtual |
Implements by::frameInteractable.
|
overridevirtual |
Implements by::statable.