30 lines
468 B
C++
30 lines
468 B
C++
#include "Function.hpp"
|
|
#include "Value.hpp"
|
|
|
|
namespace jk
|
|
{
|
|
/*explicit*/ Function::Function(foreign_t foreign)
|
|
: m_foreign { foreign }
|
|
{
|
|
}
|
|
|
|
/*explicit*/ Function::Function(std::shared_ptr<Program> program)
|
|
: m_program { program }
|
|
{
|
|
}
|
|
|
|
/*virtual*/ Function::~Function()
|
|
{
|
|
}
|
|
|
|
value_t Function::call(std::vector<value_t> const& args)
|
|
{
|
|
if (m_foreign)
|
|
{
|
|
return m_foreign(args);
|
|
}
|
|
|
|
return Value::make_nil();
|
|
}
|
|
}
|