5 #include "wrapper_util.hpp"
7 void print_squirrel_stack(HSQUIRRELVM v)
9 printf("--------------------------------------------------------------\n");
10 int count = sq_gettop(v);
11 for(int i = 1; i <= count; ++i) {
13 switch(sq_gettype(v, i))
20 sq_getinteger(v, i, &val);
21 printf("integer (%d)", val);
26 sq_getfloat(v, i, &val);
27 printf("float (%f)", val);
32 sq_getstring(v, i, &val);
33 printf("string (%s)", val);
46 printf("closure(function)");
48 case OT_NATIVECLOSURE:
49 printf("native closure(C function)");
55 printf("userpointer");
72 printf("--------------------------------------------------------------\n");
75 //----------------------------------------------------------------------------
77 SquirrelError::SquirrelError(HSQUIRRELVM v, const std::string& message) throw()
79 std::ostringstream msg;
80 msg << "SQuirrel error: " << message << " (";
83 if(sq_gettype(v, -1) != OT_STRING) {
84 lasterr = "no error info";
86 sq_getstring(v, -1, &lasterr);
89 msg << lasterr << ")";
90 this->message = msg.str();
93 SquirrelError::~SquirrelError() throw()
97 SquirrelError::what() const throw()
99 return message.c_str();