This repository has been archived on 2024-03-07. You can view files and clone it, but cannot push or open issues/pull-requests.
zarn/libstd/fun.cpp

37 lines
768 B
C++
Raw Normal View History

#include "fun.hpp"
std::shared_ptr<Constant> println(STDARGS args)
{
std::string sep;
for (auto const& arg: args)
{
std::cout << sep << arg->string();
sep = " ";
}
std::cout << std::endl;
return std::make_shared<Constant>(TYPE_NIL, args[0]->loc());
}
std::shared_ptr<Constant> assert_eq(STDARGS args)
{
bool equals = args[0]->equals(*args[1]);
auto loc = args[0]->loc();
if (!equals)
{
std::cerr << loc.file_path().string() << ":" << loc.line();
std::cerr << " ASSERTION FAILED: ";
std::cerr << "expected '" << args[0]->string() << "', "
<< "got '" << args[1]->string() << "'."
<< std::endl;
exit(-1);
}
return std::make_shared<Constant>(TYPE_NIL, loc, 0);
}