rendered paste body#include "luawrap.h"
luawrap::Number sum(const luawrap::Arguments& args)
{
luawrap::Number n = 0;
for (luawrap::Arguments::iterator it = args.begin(); it != args.end(); ++it) {
try {
n += luawrap::cast<luawrap::Number>(*it);
} catch (luawrap::bad_cast& e) {
throw luawrap::error("number expected, but %s given", it->typestr());
}
}
return n;
}
luawrap::Table iota(int n)
{
luawrap::Table result;
for (int i = 0; i < n; ++i) result.append(i);
return result;
}
int main()
{
luawrap::State L = luawrap::createState();
L.global("sum") = sum;
L.global("iota") = iota;
L.global("TheAnswer") = 42;
L << "print \"The answer should be:\", sum(TheAnswer, -1, +1)";
std::ifstream ifs("test.lua");
L << ifs;
return 0;
}