17 const ntype& getType()
const override {
22 const baseObj& getOrigin()
const override {
29 str run(
const args& a)
override {
30 const params& ps = getParams();
31 WHEN(a.len() != ps.len())
32 .err(
"length of args(%d) and typs(%d) doesn't match.", a.len(), ps.len()).ret(
nullptr);
34 const node& org = ps[0].getOrigin();
35 tstr<T> evaluated = a[0].asImpli(*org.as<T>());
36 WHEN(!evaluated) .err(
"evaluation of arg[%s] -> param[%s] has been failed.", a[0], org).ret(
str());
38 std::cout << evaluated->get();
Function call arguments container.
Definition: args.hpp:13
Base class for all function types.
Definition: baseFunc.hpp:18
Base class for all objects in byeol language.
Definition: baseObj.hpp:24
Managed type for byeol objects.
Definition: mgdType.hpp:17
Base class for all AST nodes in byeol language.
Definition: node.hpp:30
Native type system for byeol language.
Definition: ntype.hpp:19
Managed object in byeol programming environment.
Definition: obj.hpp:19
Function parameter definition.
Definition: param.hpp:13
Function parameter list container.
Definition: params.hpp:15
Template print function for output operations.
Definition: printFunc.hpp:13
Template type wrapper for type metadata management.
Definition: ttype.hpp:16