mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
remove garbage
This commit is contained in:
parent
45893d20d2
commit
4dc39ecfcd
@ -1,41 +0,0 @@
|
||||
#include "PikaMath_Operator.h"
|
||||
|
||||
int PikaMath_Operator_AND(PikaObj* self, int flag1, int flag2) {
|
||||
return flag1 && flag2;
|
||||
}
|
||||
int PikaMath_Operator_NOT(PikaObj* self, int flag) {
|
||||
return !flag;
|
||||
}
|
||||
int PikaMath_Operator_OR(PikaObj* self, int flag1, int flag2) {
|
||||
return flag1 || flag2;
|
||||
}
|
||||
int PikaMath_Operator_equalFloat(PikaObj* self, float num1, float num2) {
|
||||
return num1 == num2;
|
||||
}
|
||||
int PikaMath_Operator_equalInt(PikaObj* self, int num1, int num2) {
|
||||
return num1 == num2;
|
||||
}
|
||||
int PikaMath_Operator_graterThanFloat(PikaObj* self, float num1, float num2) {
|
||||
return num1 > num2;
|
||||
}
|
||||
int PikaMath_Operator_graterThanInt(PikaObj* self, int num1, int num2) {
|
||||
return num1 > num2;
|
||||
}
|
||||
int PikaMath_Operator_lessThanFloat(PikaObj* self, float num1, float num2) {
|
||||
return num1 < num2;
|
||||
}
|
||||
int PikaMath_Operator_lessThanInt(PikaObj* self, int num1, int num2) {
|
||||
return num1 < num2;
|
||||
}
|
||||
float PikaMath_Operator_minusFloat(PikaObj* self, float num1, float num2) {
|
||||
return num1 - num2;
|
||||
}
|
||||
int PikaMath_Operator_minusInt(PikaObj* self, int num1, int num2) {
|
||||
return num1 - num2;
|
||||
}
|
||||
float PikaMath_Operator_plusFloat(PikaObj* self, float num1, float num2) {
|
||||
return num1 + num2;
|
||||
}
|
||||
int PikaMath_Operator_plusInt(PikaObj* self, int num1, int num2) {
|
||||
return num1 + num2;
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
#include "PikaStdData_Dict.h"
|
||||
#include "BaseObj.h"
|
||||
#include "PikaObj.h"
|
||||
#include "PikaStdLib_SysObj.h"
|
||||
|
||||
Arg* PikaStdData_Dict_get(PikaObj* self, char* key) {
|
||||
PikaObj* pyload = obj_getObj(self, "pyload", 0);
|
||||
return arg_copy(obj_getArg(pyload, key));
|
||||
}
|
||||
|
||||
void PikaStdData_Dict___init__(PikaObj* self) {
|
||||
obj_newObj(self, "pyload", "", New_TinyObj);
|
||||
}
|
||||
|
||||
void PikaStdData_Dict_set(PikaObj* self, Arg* arg, char* key) {
|
||||
PikaObj* pyload = obj_getObj(self, "pyload", 0);
|
||||
obj_setArg(pyload, key, arg);
|
||||
}
|
||||
|
||||
void PikaStdData_Dict_remove(PikaObj* self, char* key) {
|
||||
PikaObj* pyload = obj_getObj(self, "pyload", 0);
|
||||
obj_removeArg(pyload, key);
|
||||
}
|
||||
|
||||
Arg* PikaStdData_Dict___iter__(PikaObj* self) {
|
||||
obj_setInt(self, "__iter_i", 0);
|
||||
return arg_setPtr(NULL, "", TYPE_POINTER, self);
|
||||
}
|
||||
|
||||
Arg* PikaStdData_Dict___next__(PikaObj* self) {
|
||||
int __iter_i = args_getInt(self->list, "__iter_i");
|
||||
PikaObj* pyload = obj_getObj(self, "pyload", 0);
|
||||
Arg* res = arg_copy(args_getArg_index(pyload->list, __iter_i));
|
||||
if (TYPE_POINTER == arg_getType(res)) {
|
||||
arg_deinit(res);
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
if (NULL == res) {
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
args_setInt(self->list, "__iter_i", __iter_i + 1);
|
||||
return res;
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
#include "BaseObj.h"
|
||||
#include "PikaObj.h"
|
||||
|
||||
void PikaStdData_List_append(PikaObj* self, Arg* arg) {
|
||||
int top = obj_getInt(self, "top");
|
||||
char buff[11];
|
||||
char* topStr = fast_itoa(buff, top);
|
||||
PikaObj* pyload = obj_getObj(self, "pyload", 0);
|
||||
obj_setArg(pyload, topStr, arg);
|
||||
/* top++ */
|
||||
obj_setInt(self, "top", top + 1);
|
||||
}
|
||||
|
||||
int PikaStdData_List_len(PikaObj* self) {
|
||||
return obj_getInt(self, "top");
|
||||
}
|
||||
|
||||
Arg* PikaStdData_List_get(PikaObj* self, int i) {
|
||||
char buff[11];
|
||||
char* index = fast_itoa(buff, i);
|
||||
PikaObj* pyload = obj_getObj(self, "pyload", 0);
|
||||
return arg_copy(obj_getArg(pyload, index));
|
||||
}
|
||||
void PikaStdData_List___init__(PikaObj* self) {
|
||||
/* set top index for append */
|
||||
obj_setInt(self, "top", 0);
|
||||
obj_newObj(self, "pyload", "", New_TinyObj);
|
||||
}
|
||||
|
||||
void PikaStdData_List_set(PikaObj* self, Arg* arg, int i) {
|
||||
char buff[11];
|
||||
char* i_str = fast_itoa(buff, i);
|
||||
int top = obj_getInt(self, "top");
|
||||
if (i > top) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error]: index exceeded lengh of list.");
|
||||
}
|
||||
PikaObj* pyload = obj_getObj(self, "pyload", 0);
|
||||
obj_setArg(pyload, i_str, arg);
|
||||
}
|
||||
|
||||
Arg* PikaStdData_List___iter__(PikaObj* self) {
|
||||
obj_setInt(self, "__iter_i", 0);
|
||||
return arg_setPtr(NULL, "", TYPE_POINTER, self);
|
||||
}
|
||||
|
||||
Arg* PikaStdData_List___next__(PikaObj* self) {
|
||||
int __iter_i = args_getInt(self->list, "__iter_i");
|
||||
Arg* res = PikaStdData_List_get(self, __iter_i);
|
||||
if(NULL == res){
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
args_setInt(self->list, "__iter_i", __iter_i + 1);
|
||||
return res;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
#include "PikaObj.h"
|
||||
|
||||
Arg* PikaStdData_String___iter__(PikaObj* self){
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
|
||||
Arg* PikaStdData_String___next__(PikaObj* self){
|
||||
return arg_setNull(NULL);
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
#include "PikaStdDevice_ADC.h"
|
||||
#include "BaseObj.h"
|
||||
|
||||
void PikaStdDevice_ADC_enable(PikaObj* self) {
|
||||
obj_run(self, "platformEnable()");
|
||||
}
|
||||
|
||||
void PikaStdDevice_ADC_init(PikaObj* self) {
|
||||
obj_setStr(self, "pin", "PA0");
|
||||
}
|
||||
|
||||
void PikaStdDevice_ADC___init__(PikaObj* self) {
|
||||
PikaStdDevice_ADC_init(self);
|
||||
}
|
||||
|
||||
float PikaStdDevice_ADC_read(PikaObj* self) {
|
||||
obj_run(self, "platformRead()");
|
||||
return obj_getFloat(self, "val");
|
||||
}
|
||||
|
||||
void PikaStdDevice_ADC_setPin(PikaObj* self, char* pin) {
|
||||
obj_setStr(self, "pin", pin);
|
||||
}
|
||||
|
||||
void PikaStdDevice_ADC_platformEnable(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_ADC_platformRead(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
#include "BaseObj.h"
|
||||
#include "PikaStdDevice_GPIO.h"
|
||||
|
||||
void PikaStdDevice_GPIO_init(PikaObj* self) {
|
||||
obj_setInt(self, "isEnable", 0);
|
||||
obj_setStr(self, "pin", "PA0");
|
||||
obj_setStr(self, "mode", "out");
|
||||
obj_setInt(self, "isOn", 0);
|
||||
obj_setStr(self, "pull", "none");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO___init__(PikaObj* self) {
|
||||
PikaStdDevice_GPIO_init(self);
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_disable(PikaObj* self) {
|
||||
obj_setInt(self, "isEnable", 0);
|
||||
obj_run(self, "platformDisable()");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_enable(PikaObj* self) {
|
||||
obj_setInt(self, "isEnable", 1);
|
||||
obj_run(self, "platformEnable()");
|
||||
}
|
||||
|
||||
char* PikaStdDevice_GPIO_getMode(PikaObj* self) {
|
||||
return obj_getStr(self, "mode");
|
||||
}
|
||||
|
||||
char* PikaStdDevice_GPIO_getPin(PikaObj* self) {
|
||||
return obj_getStr(self, "pin");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_low(PikaObj* self) {
|
||||
obj_setInt(self, "isOn", 0);
|
||||
obj_run(self, "platformLow()");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_high(PikaObj* self) {
|
||||
obj_setInt(self, "isOn", 1);
|
||||
obj_run(self, "platformHigh()");
|
||||
}
|
||||
|
||||
int PikaStdDevice_GPIO_read(PikaObj *self){
|
||||
obj_run(self, "platformRead()");
|
||||
return obj_getInt(self, "readBuff");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_setMode(PikaObj* self, char* mode) {
|
||||
if(strEqu(mode, "out")||strEqu(mode, "in")){
|
||||
obj_setStr(self, "mode", mode);
|
||||
obj_run(self, "platformSetMode()");
|
||||
}else{
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] GPIO mode should be 'out' or 'in'.");
|
||||
}
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_setPull(PikaObj *self, char * pull){
|
||||
if(strEqu(pull, "up")||strEqu(pull, "down")||strEqu(pull, "none")){
|
||||
obj_setStr(self, "pull", pull);
|
||||
}else{
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] GPIO pull should be 'up', 'down' or 'none'.");
|
||||
}
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_setPin(PikaObj* self, char *pinName) {
|
||||
obj_setStr(self, "pin", pinName);
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_platformDisable(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_platformEnable(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
void PikaStdDevice_GPIO_platformLow(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_platformHigh(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_platformSetMode(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_platformOff(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_platformOn(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_GPIO_platformRead(PikaObj *self){
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
#include "PikaStdDevice_IIC.h"
|
||||
#include "BaseObj.h"
|
||||
#include "PikaObj.h"
|
||||
void PikaStdDevice_IIC_init(PikaObj *self){
|
||||
obj_run(self, "deviceAddr = 0");
|
||||
obj_run(self, "SCLpin = 'PA0'");
|
||||
obj_run(self, "SDApin = 'PA1'");
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC___init__(PikaObj* self) {
|
||||
PikaStdDevice_IIC_init(self);
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_enable(PikaObj *self){
|
||||
obj_run(self, "platformEnable()");
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_setDeviceAddr(PikaObj *self, int addr){
|
||||
obj_setInt(self, "deviceAddr", addr);
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_setPinSCL(PikaObj *self, char * pin){
|
||||
obj_setStr(self, "SCLpin", pin);
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_setPinSDA(PikaObj *self, char * pin){
|
||||
obj_setStr(self, "SDApin", pin);
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_write(PikaObj *self, int addr, char * data){
|
||||
obj_setStr(self, "writeData", data);
|
||||
obj_setInt(self, "writeAddr", addr);
|
||||
obj_run(self, "platformWrite()");
|
||||
}
|
||||
|
||||
char * PikaStdDevice_IIC_read(PikaObj *self, int addr, int length){
|
||||
obj_setInt(self, "length", length);
|
||||
obj_setInt(self, "readAddr", addr);
|
||||
obj_run(self, "platformRead()");
|
||||
return obj_getStr(self, "readData");
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_platformWrite(PikaObj *self){
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_platformEnable(PikaObj *self){
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
|
||||
void PikaStdDevice_IIC_platformRead(PikaObj *self){
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
#include "PikaStdDevice_PWM.h"
|
||||
#include "BaseObj.h"
|
||||
|
||||
void PikaStdDevice_PWM_init(PikaObj* self) {
|
||||
obj_setStr(self, "pin", "PA8");
|
||||
obj_setInt(self, "freq", 1000);
|
||||
obj_setFloat(self, "duty", 0.5f);
|
||||
}
|
||||
|
||||
void PikaStdDevice_PWM___init__(PikaObj* self) {
|
||||
PikaStdDevice_PWM_init(self);
|
||||
}
|
||||
|
||||
void PikaStdDevice_PWM_setPin(PikaObj* self, char* pin) {
|
||||
obj_setStr(self, "pin", pin);
|
||||
}
|
||||
|
||||
void PikaStdDevice_PWM_setFrequency(PikaObj* self, int freq) {
|
||||
obj_setInt(self, "freq", freq);
|
||||
obj_run(self, "platformSetFrequency()");
|
||||
}
|
||||
|
||||
void PikaStdDevice_PWM_setDuty(PikaObj* self, float duty) {
|
||||
obj_setFloat(self, "duty", duty);
|
||||
obj_run(self, "platformSetDuty()");
|
||||
}
|
||||
|
||||
void PikaStdDevice_PWM_enable(PikaObj* self) {
|
||||
obj_run(self, "platformEnable()");
|
||||
}
|
||||
|
||||
float PikaStdDevice_PWM_getDuty(PikaObj* self) {
|
||||
return obj_getFloat(self, "duty");
|
||||
}
|
||||
|
||||
int PikaStdDevice_PWM_getFrequency(PikaObj* self) {
|
||||
return obj_getInt(self, "freq");
|
||||
}
|
||||
|
||||
void PikaStdDevice_PWM_platformEnable(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
void PikaStdDevice_PWM_platformSetDuty(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
void PikaStdDevice_PWM_platformSetFrequency(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
#include "PikaStdDevice_Time.h"
|
||||
#include "BaseObj.h"
|
||||
|
||||
void PikaStdDevice_Time_sleep_ms(PikaObj* self, int ms) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
void PikaStdDevice_Time_sleep_s(PikaObj* self, int s) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
#include "PikaStdDevice_UART.h"
|
||||
#include "BaseObj.h"
|
||||
|
||||
void PikaStdDevice_UART_enable(PikaObj* self) {
|
||||
obj_run(self, "platformEnable()");
|
||||
}
|
||||
void PikaStdDevice_UART_init(PikaObj* self) {
|
||||
obj_setInt(self, "baudRate", 115200);
|
||||
obj_setInt(self, "id", 1);
|
||||
obj_setStr(self, "readBuff", "");
|
||||
}
|
||||
|
||||
void PikaStdDevice_UART___init__(PikaObj* self) {
|
||||
PikaStdDevice_UART_init(self);
|
||||
}
|
||||
|
||||
char* PikaStdDevice_UART_read(PikaObj* self, int length) {
|
||||
obj_setInt(self, "length", length);
|
||||
obj_run(self, "platformRead()");
|
||||
return obj_getStr(self, "readData");
|
||||
}
|
||||
void PikaStdDevice_UART_setBaudRate(PikaObj* self, int baudRate) {
|
||||
obj_setInt(self, "baudRate", baudRate);
|
||||
}
|
||||
void PikaStdDevice_UART_setId(PikaObj* self, int id) {
|
||||
obj_setInt(self, "id", id);
|
||||
}
|
||||
void PikaStdDevice_UART_write(PikaObj* self, char* data) {
|
||||
obj_setStr(self, "writeData", data);
|
||||
obj_run(self, "platformWrite()");
|
||||
}
|
||||
|
||||
void PikaStdDevice_UART_platformEnable(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
void PikaStdDevice_UART_platformRead(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
||||
void PikaStdDevice_UART_platformWrite(PikaObj* self) {
|
||||
obj_setErrorCode(self, 1);
|
||||
obj_setSysOut(self, "[error] platform method need to be override.");
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
#include "PikaStdLib_MemChecker.h"
|
||||
#include "BaseObj.h"
|
||||
#include "dataStrs.h"
|
||||
|
||||
void PikaStdLib_MemChecker_max(PikaObj* self) {
|
||||
obj_sysPrintf(self, "%0.2f kB", pikaMemMax() / 1024.0);
|
||||
}
|
||||
|
||||
void PikaStdLib_MemChecker_now(PikaObj* self) {
|
||||
obj_sysPrintf(self, "%0.2f kB", pikaMemNow() / 1024.0);
|
||||
}
|
||||
|
||||
void PikaStdLib_MemChecker_resetMax(PikaObj* self) {
|
||||
pikaMemMaxReset();
|
||||
}
|
||||
|
||||
float PikaStdLib_MemChecker_getMax(PikaObj* self) {
|
||||
return pikaMemMax() / 1024.0;
|
||||
}
|
||||
|
||||
float PikaStdLib_MemChecker_getNow(PikaObj* self) {
|
||||
return pikaMemNow() / 1024.0;
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
#include "PikaObj.h"
|
||||
|
||||
Arg* PikaStdLib_RangeObj___next__(PikaObj* self) {
|
||||
int a1 = args_getInt(self->list, "a1");
|
||||
int a2 = args_getInt(self->list, "a2");
|
||||
int a3 = args_getInt(self->list, "a3");
|
||||
int start = 0;
|
||||
int end = 0;
|
||||
int foot = 1;
|
||||
/* only start and end */
|
||||
if (-999999999 == a3) {
|
||||
start = a1;
|
||||
end = a2;
|
||||
}
|
||||
/* start */
|
||||
int iter_i = args_getInt(self->list, "iter_i");
|
||||
/* iter_i is not inited */
|
||||
if (-999999999 == iter_i) {
|
||||
iter_i = start;
|
||||
}
|
||||
/* exit */
|
||||
if (iter_i >= end) {
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
args_setInt(self->list, "iter_i", iter_i + foot);
|
||||
return arg_setInt(NULL, "", iter_i);
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
#include "PikaObj.h"
|
||||
|
||||
Arg* PikaStdLib_StringObj___next__(PikaObj* self) {
|
||||
return arg_setNull(NULL);
|
||||
}
|
@ -1,139 +0,0 @@
|
||||
#include "BaseObj.h"
|
||||
#include "PikaStdLib_RangeObj.h"
|
||||
#include "PikaStdLib_StringObj.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;
|
||||
}
|
||||
}
|
||||
|
||||
void PikaStdLib_SysObj_type(PikaObj* self, Arg* arg) {
|
||||
if (NULL == arg) {
|
||||
obj_setSysOut(self, "[error] type: arg no found.");
|
||||
obj_setErrorCode(self, 1);
|
||||
return;
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
char* PikaStdLib_SysObj_str(PikaObj* self, Arg* arg) {
|
||||
ArgType type = arg_getType(arg);
|
||||
Args* buffs = New_strBuff();
|
||||
char* res = NULL;
|
||||
do {
|
||||
if (TYPE_INT == type) {
|
||||
int val = arg_getInt(arg);
|
||||
res = strsFormat(buffs, 11, "%d", val);
|
||||
break;
|
||||
}
|
||||
if (TYPE_FLOAT == type) {
|
||||
float val = arg_getFloat(arg);
|
||||
res = strsFormat(buffs, 11, "%f", val);
|
||||
break;
|
||||
}
|
||||
} while (0);
|
||||
obj_setStr(self, "__strtmp", res);
|
||||
args_deinit(buffs);
|
||||
return obj_getStr(self, "__strtmp");
|
||||
}
|
||||
|
||||
Arg* PikaStdLib_SysObj_iter(PikaObj* self, Arg* arg) {
|
||||
/* a String, return a StringObj */
|
||||
if (TYPE_STRING == arg_getType(arg)) {
|
||||
obj_setStr(self, "_sobj", arg_getStr(arg));
|
||||
return arg_setMetaObj("", "PikaStdLib_StringObj",
|
||||
New_PikaStdLib_StringObj);
|
||||
}
|
||||
/* a MATE object, return itself */
|
||||
if (TYPE_MATE_OBJECT == arg_getType(arg)) {
|
||||
return arg_copy(arg);
|
||||
}
|
||||
/* object */
|
||||
if (TYPE_POINTER == arg_getType(arg)) {
|
||||
PikaObj* arg_obj = arg_getPtr(arg);
|
||||
pikaVM_runAsm(arg_obj,
|
||||
"B0\n"
|
||||
"0 RUN __iter__\n"
|
||||
"0 OUT __res\n");
|
||||
return arg_copy(args_getArg(arg_obj->list, "__res"));
|
||||
}
|
||||
return arg_setNull(NULL);
|
||||
}
|
||||
|
||||
Arg* PikaStdLib_SysObj_next(PikaObj* self, Arg* arg) {
|
||||
PikaObj* arg_obj = arg_getPtr(arg);
|
||||
pikaVM_runAsm(arg_obj,
|
||||
"B0\n"
|
||||
"0 RUN __next__\n"
|
||||
"0 OUT __res\n");
|
||||
return arg_copy(args_getArg(arg_obj->list, "__res"));
|
||||
}
|
||||
|
||||
Arg* PikaStdLib_SysObj_range(PikaObj* self, int a1, int a2, int a3) {
|
||||
/* set template arg to create rangeObj */
|
||||
obj_setInt(self, "_r1", a1);
|
||||
obj_setInt(self, "_r2", a2);
|
||||
obj_setInt(self, "_r3", a3);
|
||||
return arg_setMetaObj("", "PikaStdLib_RangeObj", New_PikaStdLib_RangeObj);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user