1
This commit is contained in:
parent
8cf0d04a93
commit
bb2f76674d
@ -29,9 +29,10 @@ namespace a8
|
|||||||
value = symbol;
|
value = symbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
Value::Value(CProc cproc)
|
Value::Value(const std::string& proc_name, CProc cproc)
|
||||||
{
|
{
|
||||||
type = ValueType::kCProc;
|
type = ValueType::kCProc;
|
||||||
|
name = proc_name;
|
||||||
value = cproc;
|
value = cproc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,6 +68,8 @@ namespace a8
|
|||||||
case ValueType::kCProc:
|
case ValueType::kCProc:
|
||||||
{
|
{
|
||||||
auto obj = a8::MutableXObject::CreateObject();
|
auto obj = a8::MutableXObject::CreateObject();
|
||||||
|
obj->SetVal("type", "lambda");
|
||||||
|
obj->SetVal("name", name);
|
||||||
return *obj;
|
return *obj;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -86,7 +89,7 @@ namespace a8
|
|||||||
|
|
||||||
void Scope::RegisterCProc(const std::string& name, CProc proc)
|
void Scope::RegisterCProc(const std::string& name, CProc proc)
|
||||||
{
|
{
|
||||||
vars_[name] = std::make_shared<Value>(proc);
|
vars_[name] = std::make_shared<Value>(name, proc);
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalScope::GlobalScope()
|
GlobalScope::GlobalScope()
|
||||||
|
@ -36,12 +36,13 @@ namespace a8
|
|||||||
struct Value
|
struct Value
|
||||||
{
|
{
|
||||||
ValueType type;
|
ValueType type;
|
||||||
|
std::string name;
|
||||||
std::any value;
|
std::any value;
|
||||||
|
|
||||||
Value(Atom atom);
|
Value(Atom atom);
|
||||||
Value(List list);
|
Value(List list);
|
||||||
Value(Symbol symbol);
|
Value(Symbol symbol);
|
||||||
Value(CProc cproc);
|
Value(const std::string& proc_name, CProc cproc);
|
||||||
bool IsType(ValueType t) { return t == type; };
|
bool IsType(ValueType t) { return t == type; };
|
||||||
a8::XObject ToXObject();
|
a8::XObject ToXObject();
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user