set enable builtin list as default

This commit is contained in:
lyon1998 2022-04-14 15:58:24 +08:00
parent 920bd7a16a
commit eae58359f1
11 changed files with 27 additions and 20 deletions

View File

@ -51,9 +51,6 @@ class SysObj(BaseObj):
def list(self) -> any:
pass
def dict(self) -> any:
pass
class RangeObj(TinyObj):
def __next__(self) -> any:

View File

@ -217,12 +217,12 @@ int PikaStdLib_SysObj_len(PikaObj* self, Arg* arg) {
return -1;
}
extern PikaObj *New_PikaStdData_Dict(Args *args);
Arg * PikaStdLib_SysObj_dict(PikaObj *self){
return obj_newObjInPackage(New_PikaStdData_Dict);
}
extern PikaObj *New_PikaStdData_List(Args *args);
Arg* PikaStdLib_SysObj_list(PikaObj *self){
#if PIKA_BUILTIN_LIST_ENBALE
PikaObj *New_PikaStdData_List(Args *args);
return obj_newObjInPackage(New_PikaStdData_List);
#endif
obj_setErrorCode(self, 1);
__platform_printf("[Error] list: built-in list is not enabled.\r\n");
return arg_setNull(NULL);
}

View File

@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.0.0)
add_compile_options(-Wall -Wextra -Wno-unused-parameter)
OPTION(PIKA_CONFIG_ENABLE "pika config enable" OFF)
IF(PIKA_CONFIG_ENABLE)
ADD_DEFINITIONS(-DPIKA_CONFIG_ENABLE)
ENDIF(PIKA_CONFIG_ENABLE)
project(pikascript VERSION 0.1.0)

View File

@ -51,9 +51,6 @@ class SysObj(BaseObj):
def list(self) -> any:
pass
def dict(self) -> any:
pass
class RangeObj(TinyObj):
def __next__(self) -> any:

View File

@ -217,12 +217,12 @@ int PikaStdLib_SysObj_len(PikaObj* self, Arg* arg) {
return -1;
}
extern PikaObj *New_PikaStdData_Dict(Args *args);
Arg * PikaStdLib_SysObj_dict(PikaObj *self){
return obj_newObjInPackage(New_PikaStdData_Dict);
}
extern PikaObj *New_PikaStdData_List(Args *args);
Arg* PikaStdLib_SysObj_list(PikaObj *self){
#if PIKA_BUILTIN_LIST_ENBALE
PikaObj *New_PikaStdData_List(Args *args);
return obj_newObjInPackage(New_PikaStdData_List);
#endif
obj_setErrorCode(self, 1);
__platform_printf("[Error] list: built-in list is not enabled.\r\n");
return arg_setNull(NULL);
}

View File

@ -2772,6 +2772,7 @@ TEST(parser, _3_3) {
EXPECT_EQ(pikaMemNow(), 0);
}
#if PIKA_BUILTIN_LIST_ENBALE
TEST(parser, list_init) {
pikaMemInfo.heapUsedMax = 0;
Args* buffs = New_strBuff();
@ -2811,3 +2812,4 @@ TEST(parser, list_init_fun) {
args_deinit(buffs);
EXPECT_EQ(pikaMemNow(), 0);
}
#endif

View File

@ -1654,6 +1654,7 @@ TEST(pikaMain, list_sysobj) {
EXPECT_EQ(pikaMemNow(), 0);
}
#if PIKA_BUILTIN_LIST_ENBALE
TEST(pikaMain, list_init) {
/* init */
pikaMemInfo.heapUsedMax = 0;
@ -1673,3 +1674,4 @@ TEST(pikaMain, list_init) {
obj_deinit(pikaMain);
EXPECT_EQ(pikaMemNow(), 0);
}
#endif

View File

@ -917,6 +917,8 @@ AST* AST_parseStmt(AST* ast, char* stmt) {
AST_parseStmt(queueObj_getCurrentObj(ast), subStmt2);
goto exit;
}
#if PIKA_BUILTIN_LIST_ENBALE
/* solve list stmt */
if (STMT_list == stmtType) {
obj_setStr(ast, (char*)"list", "list");
@ -953,6 +955,8 @@ AST* AST_parseStmt(AST* ast, char* stmt) {
arg_deinit(subStmt);
goto exit;
}
#endif
/* solve method stmt */
if (STMT_method == stmtType) {
method = strsGetFirstToken(&buffs, right, '(');

View File

@ -278,9 +278,11 @@ exit:
strsDeinit(&buffs);
}
#if PIKA_BUILTIN_LIST_ENBALE
void PikaStdData_List_append(PikaObj* self, Arg* arg);
void PikaStdData_List___init__(PikaObj* self);
extern PikaObj* New_PikaStdData_List(Args* args);
PikaObj* New_PikaStdData_List(Args* args);
static Arg* VM_instruction_handler_LST(PikaObj* self, VMState* vs, char* data) {
uint8_t arg_num = VMState_getInputArgNum(vs);
Arg* list_arg = obj_newObjInPackage(New_PikaStdData_List);
@ -301,6 +303,7 @@ static Arg* VM_instruction_handler_LST(PikaObj* self, VMState* vs, char* data) {
stack_deinit(&stack);
return list_arg;
}
#endif
static Arg* VM_instruction_handler_RUN(PikaObj* self, VMState* vs, char* data) {
Args buffs = {0};

View File

@ -47,4 +47,6 @@ def_ins(GLB)
def_ins(RAS)
def_ins(NEW)
def_ins(CLS)
#if PIKA_BUILTIN_LIST_ENBALE
def_ins(LST)
#endif

View File

@ -35,6 +35,7 @@
#define PIKA_PATH_BUFF_SIZE 64
#define PIKA_ARG_ALIGN_ENABLE 1
#define PIKA_METHOD_CACHE_ENABLE 0
#define PIKA_BUILTIN_LIST_ENBALE 1
/* optimize options */
#define PIKA_OPTIMIZE_SIZE 0