2021-10-01 00:21:50 +08:00
|
|
|
#include "BaseObj.h"
|
|
|
|
#include "dataStrs.h"
|
|
|
|
|
|
|
|
void PikaStdLib_SysObj_remove(PikaObj* self, char* argPath) {
|
|
|
|
obj_setErrorCode(self, 0);
|
|
|
|
int32_t res = obj_removeArg(self, argPath);
|
|
|
|
if (1 == res) {
|
|
|
|
obj_setSysOut(self, "[error] del: object no found.");
|
|
|
|
obj_setErrorCode(self, 1);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (2 == res) {
|
|
|
|
obj_setSysOut(self, "[error] del: arg not match.");
|
|
|
|
obj_setErrorCode(self, 2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-20 09:33:38 +08:00
|
|
|
void PikaStdLib_SysObj_type(PikaObj* self, Arg* arg) {
|
2021-10-01 00:21:50 +08:00
|
|
|
if (NULL == arg) {
|
|
|
|
obj_setSysOut(self, "[error] type: arg no found.");
|
|
|
|
obj_setErrorCode(self, 1);
|
|
|
|
return;
|
|
|
|
}
|
2021-11-15 09:35:48 +08:00
|
|
|
ArgType type = arg_getType(arg);
|
|
|
|
if (TYPE_INT == type) {
|
|
|
|
obj_setSysOut(self, "int");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (TYPE_FLOAT == type) {
|
|
|
|
obj_setSysOut(self, "float");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (TYPE_STRING == type) {
|
|
|
|
obj_setSysOut(self, "string");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (TYPE_POINTER == type) {
|
|
|
|
obj_setSysOut(self, "pointer");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (TYPE_MATE_OBJECT == type) {
|
|
|
|
obj_setSysOut(self, "mate_object");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (TYPE_METHOD == type) {
|
|
|
|
obj_setSysOut(self, "method");
|
|
|
|
return;
|
|
|
|
}
|
2021-10-01 00:21:50 +08:00
|
|
|
}
|
2021-11-20 09:28:21 +08:00
|
|
|
|
|
|
|
float PikaStdLib_SysObj_float(PikaObj* self, Arg* arg) {
|
|
|
|
ArgType type = arg_getType(arg);
|
|
|
|
if (TYPE_INT == type) {
|
|
|
|
return (float)arg_getInt(arg);
|
|
|
|
}
|
|
|
|
if (TYPE_FLOAT == type) {
|
|
|
|
return (float)arg_getFloat(arg);
|
|
|
|
}
|
|
|
|
obj_setSysOut(self, "[error] convert to float type faild.");
|
|
|
|
obj_setErrorCode(self, 1);
|
|
|
|
return -99999.99999;
|
|
|
|
}
|
|
|
|
|
|
|
|
int PikaStdLib_SysObj_int(PikaObj* self, Arg* arg) {
|
|
|
|
ArgType type = arg_getType(arg);
|
|
|
|
if (TYPE_INT == type) {
|
|
|
|
return (int)arg_getInt(arg);
|
|
|
|
}
|
|
|
|
if (TYPE_FLOAT == type) {
|
|
|
|
return (int)arg_getFloat(arg);
|
|
|
|
}
|
|
|
|
obj_setSysOut(self, "[error] convert to int type faild.");
|
|
|
|
obj_setErrorCode(self, 1);
|
|
|
|
return -999999999;
|
2021-12-24 22:44:56 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
Arg * PikaStdLib_SysObj_iter(PikaObj *self, Arg * arg){
|
|
|
|
PikaObj* arg_obj = arg_getPtr(arg);
|
|
|
|
obj_run(arg_obj, "__res = __iter__()");
|
|
|
|
return arg_copy(args_getArg(arg_obj->list, "__res"));
|
|
|
|
}
|
|
|
|
Arg * PikaStdLib_SysObj_next(PikaObj *self, Arg * arg){
|
2021-12-24 23:10:50 +08:00
|
|
|
PikaObj* arg_obj = arg_getPtr(arg);
|
|
|
|
obj_run(arg_obj, "__res = __next__()");
|
|
|
|
return arg_copy(args_getArg(arg_obj->list, "__res"));
|
2021-12-24 22:44:56 +08:00
|
|
|
}
|
2021-12-27 21:41:17 +08:00
|
|
|
|
|
|
|
Arg * PikaStdLib_SysObj_range(PikaObj *self){
|
|
|
|
return NULL;
|
|
|
|
}
|