diff --git a/bsp/pico-dev/MDK/mdk/template.uvoptx b/bsp/pico-dev/MDK/mdk/template.uvoptx
index 5d5764838..975ff124a 100644
--- a/bsp/pico-dev/MDK/mdk/template.uvoptx
+++ b/bsp/pico-dev/MDK/mdk/template.uvoptx
@@ -1540,6 +1540,18 @@
0
0
+
+ 4
+ 58
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\src\PikaCompiler.c
+ PikaCompiler.c
+ 0
+ 0
+
@@ -1550,7 +1562,7 @@
0
5
- 58
+ 59
1
0
0
@@ -1562,7 +1574,7 @@
5
- 59
+ 60
1
0
0
@@ -1574,7 +1586,7 @@
5
- 60
+ 61
1
0
0
@@ -1586,7 +1598,7 @@
5
- 61
+ 62
1
0
0
@@ -1598,7 +1610,7 @@
5
- 62
+ 63
1
0
0
@@ -1610,7 +1622,7 @@
5
- 63
+ 64
1
0
0
@@ -1622,7 +1634,7 @@
5
- 64
+ 65
1
0
0
@@ -1634,7 +1646,7 @@
5
- 65
+ 66
1
0
0
@@ -1646,7 +1658,7 @@
5
- 66
+ 67
1
0
0
@@ -1660,13 +1672,13 @@
pikascript-api
- 0
+ 1
0
0
0
6
- 67
+ 68
1
0
0
@@ -1678,7 +1690,7 @@
6
- 68
+ 69
1
0
0
@@ -1690,7 +1702,7 @@
6
- 69
+ 70
1
0
0
@@ -1702,7 +1714,7 @@
6
- 70
+ 71
1
0
0
@@ -1714,7 +1726,7 @@
6
- 71
+ 72
1
0
0
@@ -1726,7 +1738,7 @@
6
- 72
+ 73
1
0
0
@@ -1738,7 +1750,7 @@
6
- 73
+ 74
1
0
0
@@ -1750,7 +1762,7 @@
6
- 74
+ 75
1
0
0
@@ -1762,7 +1774,7 @@
6
- 75
+ 76
1
0
0
@@ -1774,7 +1786,7 @@
6
- 76
+ 77
1
0
0
@@ -1786,7 +1798,7 @@
6
- 77
+ 78
1
0
0
@@ -1798,7 +1810,7 @@
6
- 78
+ 79
1
0
0
@@ -1808,17 +1820,89 @@
0
0
+
+ 6
+ 80
+ 1
+ 0
+ 0
+ 0
+ ..\..\pikascript\pikascript-api\__asset_pikaModules_py_a.c
+ __asset_pikaModules_py_a.c
+ 0
+ 0
+
+
+ 6
+ 81
+ 1
+ 0
+ 0
+ 0
+ ..\..\pikascript\pikascript-api\PikaDebug_Debuger-api.c
+ PikaDebug_Debuger-api.c
+ 0
+ 0
+
+
+ 6
+ 82
+ 1
+ 0
+ 0
+ 0
+ ..\..\pikascript\pikascript-api\PikaDebug-api.c
+ PikaDebug-api.c
+ 0
+ 0
+
+
+ 6
+ 83
+ 1
+ 0
+ 0
+ 0
+ ..\..\pikascript\pikascript-api\PikaStdData_ByteArray-api.c
+ PikaStdData_ByteArray-api.c
+ 0
+ 0
+
+
+ 6
+ 84
+ 1
+ 0
+ 0
+ 0
+ ..\..\pikascript\pikascript-api\PikaStdTask_Task-api.c
+ PikaStdTask_Task-api.c
+ 0
+ 0
+
+
+ 6
+ 85
+ 1
+ 0
+ 0
+ 0
+ ..\..\pikascript\pikascript-api\PikaStdTask-api.c
+ PikaStdTask-api.c
+ 0
+ 0
+
Python
- 0
+ 1
0
0
0
7
- 79
+ 86
5
0
0
diff --git a/bsp/pico-dev/MDK/mdk/template.uvprojx b/bsp/pico-dev/MDK/mdk/template.uvprojx
index 4e4e899a3..b522ec125 100644
--- a/bsp/pico-dev/MDK/mdk/template.uvprojx
+++ b/bsp/pico-dev/MDK/mdk/template.uvprojx
@@ -900,6 +900,11 @@
1
..\..\..\..\src\TinyObj.c
+
+ PikaCompiler.c
+ 1
+ ..\..\..\..\src\PikaCompiler.c
+
@@ -1015,6 +1020,36 @@
1
..\..\pikascript\pikascript-api\PikaStdLib_PikaObj-api.c
+
+ __asset_pikaModules_py_a.c
+ 1
+ ..\..\pikascript\pikascript-api\__asset_pikaModules_py_a.c
+
+
+ PikaDebug_Debuger-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug_Debuger-api.c
+
+
+ PikaDebug-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug-api.c
+
+
+ PikaStdData_ByteArray-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdData_ByteArray-api.c
+
+
+ PikaStdTask_Task-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask_Task-api.c
+
+
+ PikaStdTask-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask-api.c
+
@@ -1932,6 +1967,11 @@
1
..\..\..\..\src\TinyObj.c
+
+ PikaCompiler.c
+ 1
+ ..\..\..\..\src\PikaCompiler.c
+
@@ -2047,6 +2087,36 @@
1
..\..\pikascript\pikascript-api\PikaStdLib_PikaObj-api.c
+
+ __asset_pikaModules_py_a.c
+ 1
+ ..\..\pikascript\pikascript-api\__asset_pikaModules_py_a.c
+
+
+ PikaDebug_Debuger-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug_Debuger-api.c
+
+
+ PikaDebug-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug-api.c
+
+
+ PikaStdData_ByteArray-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdData_ByteArray-api.c
+
+
+ PikaStdTask_Task-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask_Task-api.c
+
+
+ PikaStdTask-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask-api.c
+
@@ -2963,6 +3033,11 @@
1
..\..\..\..\src\TinyObj.c
+
+ PikaCompiler.c
+ 1
+ ..\..\..\..\src\PikaCompiler.c
+
@@ -3078,6 +3153,36 @@
1
..\..\pikascript\pikascript-api\PikaStdLib_PikaObj-api.c
+
+ __asset_pikaModules_py_a.c
+ 1
+ ..\..\pikascript\pikascript-api\__asset_pikaModules_py_a.c
+
+
+ PikaDebug_Debuger-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug_Debuger-api.c
+
+
+ PikaDebug-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug-api.c
+
+
+ PikaStdData_ByteArray-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdData_ByteArray-api.c
+
+
+ PikaStdTask_Task-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask_Task-api.c
+
+
+ PikaStdTask-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask-api.c
+
@@ -3994,6 +4099,11 @@
1
..\..\..\..\src\TinyObj.c
+
+ PikaCompiler.c
+ 1
+ ..\..\..\..\src\PikaCompiler.c
+
@@ -4109,6 +4219,36 @@
1
..\..\pikascript\pikascript-api\PikaStdLib_PikaObj-api.c
+
+ __asset_pikaModules_py_a.c
+ 1
+ ..\..\pikascript\pikascript-api\__asset_pikaModules_py_a.c
+
+
+ PikaDebug_Debuger-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug_Debuger-api.c
+
+
+ PikaDebug-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaDebug-api.c
+
+
+ PikaStdData_ByteArray-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdData_ByteArray-api.c
+
+
+ PikaStdTask_Task-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask_Task-api.c
+
+
+ PikaStdTask-api.c
+ 1
+ ..\..\pikascript\pikascript-api\PikaStdTask-api.c
+
diff --git a/bsp/pico-dev/pikascript/PikaDebug.pyi b/bsp/pico-dev/pikascript/PikaDebug.pyi
new file mode 100644
index 000000000..dc1db98f7
--- /dev/null
+++ b/bsp/pico-dev/pikascript/PikaDebug.pyi
@@ -0,0 +1,10 @@
+#api
+from PikaObj import *
+
+class Debuger(TinyObj):
+ def __init__(self):
+ pass
+
+ def set_trace(self):
+ pass
+
\ No newline at end of file
diff --git a/bsp/pico-dev/pikascript/PikaObj.py b/bsp/pico-dev/pikascript/PikaObj.pyi
similarity index 53%
rename from bsp/pico-dev/pikascript/PikaObj.py
rename to bsp/pico-dev/pikascript/PikaObj.pyi
index ab97533ba..3dba31fec 100644
--- a/bsp/pico-dev/pikascript/PikaObj.py
+++ b/bsp/pico-dev/pikascript/PikaObj.pyi
@@ -1,3 +1,4 @@
+#api
class TinyObj:
pass
@@ -5,10 +6,14 @@ class TinyObj:
class BaseObj(TinyObj):
pass
+class pointer:
+ pass
def print(val: any):
pass
-
-def set(argPath: str, val: any):
+def printNoEnd(val: any):
+ pass
+
+def taskLoop(task: any):
pass
diff --git a/bsp/pico-dev/pikascript/PikaStdData.py b/bsp/pico-dev/pikascript/PikaStdData.py
deleted file mode 100644
index b3353ccbd..000000000
--- a/bsp/pico-dev/pikascript/PikaStdData.py
+++ /dev/null
@@ -1,89 +0,0 @@
-from PikaObj import *
-
-
-class List(TinyObj):
- def __init__():
- pass
-
- # add an arg after the end of list
- def append(arg: any):
- pass
-
- # get an arg by the index
- def get(i: int) -> any:
- pass
-
- # set an arg by the index
- def set(i: int, arg: any):
- pass
-
- # get the length of list
- def len() -> int:
- pass
- # support for loop
- def __iter__() -> any:
- pass
-
- # support for loop
- def __next__() -> any:
- pass
-
- # support list[] = val
- def __set__():
- pass
-
- # support val = list[]
- def __get__() -> any:
- pass
-
-class Dict(TinyObj):
- def __init__():
- pass
-
- # get an arg by the key
- def get(key: str) -> any:
- pass
-
- # set an arg by the key
- def set(key: str, arg: any):
- pass
-
- # remove an arg by the key
- def remove(key: str):
- pass
-
- def __iter__() -> any:
- pass
-
- def __next__() -> any:
- pass
-
- # support dict[] = val
- def __set__():
- pass
-
- # support val = dict[]
- def __get__() -> any:
- pass
-
-
-class String(TinyObj):
- def set(s:str):
- pass
-
- def get()->str:
- pass
-
- def __iter__() -> any:
- pass
-
- def __next__() -> any:
- pass
-
- # support string[] = val
- def __set__():
- pass
-
- # support val = string[]
- def __get__() -> any:
- pass
\ No newline at end of file
diff --git a/bsp/pico-dev/pikascript/PikaStdData.pyi b/bsp/pico-dev/pikascript/PikaStdData.pyi
new file mode 100644
index 000000000..c04006fc1
--- /dev/null
+++ b/bsp/pico-dev/pikascript/PikaStdData.pyi
@@ -0,0 +1,98 @@
+#api
+from PikaObj import *
+
+
+class List(TinyObj):
+ def __init__(self):
+ pass
+
+ # add an arg after the end of list
+ def append(self, arg: any):
+ pass
+
+ # get an arg by the index
+ def get(self, i: int) -> any:
+ pass
+
+ # set an arg by the index
+ def set(self, i: int, arg: any):
+ pass
+
+ # get the length of list
+ def len(self) -> int:
+ pass
+ # support for loop
+ def __iter__(self) -> any:
+ pass
+
+ # support for loop
+ def __next__(self) -> any:
+ pass
+
+ # support list[] = val
+ def __set__(self, __key: any, __val: any):
+ pass
+
+ # support val = list[]
+ def __get__(self, __key: any) -> any:
+ pass
+
+class Dict(TinyObj):
+ def __init__(self):
+ pass
+
+ # get an arg by the key
+ def get(self, key: str) -> any:
+ pass
+
+ # set an arg by the key
+ def set(self, key: str, arg: any):
+ pass
+
+ # remove an arg by the key
+ def remove(self, key: str):
+ pass
+
+ def __iter__(self) -> any:
+ pass
+
+ def __next__(self) -> any:
+ pass
+
+ # support dict[] = val
+ def __set__(self, __key: any, __val: any):
+ pass
+
+ # support val = dict[]
+ def __get__(self, __key: any) -> any:
+ pass
+
+
+class String(TinyObj):
+ def __init__(self, s:str):
+ pass
+
+ def set(self, s:str):
+ pass
+
+ def get(self)->str:
+ pass
+
+ def __iter__(self) -> any:
+ pass
+
+ def __next__(self) -> any:
+ pass
+
+ # support string[] = val
+ def __set__(self, __key: any, __val: any):
+ pass
+
+ # support val = string[]
+ def __get__(self, __key: any) -> any:
+ pass
+
+class ByteArray(List):
+ # convert a string to ByteArray
+ def fromString(self, s:str):
+ pass
diff --git a/bsp/pico-dev/pikascript/PikaStdLib.py b/bsp/pico-dev/pikascript/PikaStdLib.py
deleted file mode 100644
index 0de637b76..000000000
--- a/bsp/pico-dev/pikascript/PikaStdLib.py
+++ /dev/null
@@ -1,60 +0,0 @@
-from PikaObj import *
-
-
-class MemChecker(TinyObj):
- def max():
- pass
-
- def now():
- pass
-
- def getMax() -> float:
- pass
-
- def getNow() -> float:
- pass
-
- def resetMax():
- pass
-
-
-class SysObj(BaseObj):
- def type(arg: any):
- pass
-
- def remove(argPath: str):
- pass
-
- def int(arg: any) -> int:
- pass
-
- def float(arg: any) -> float:
- pass
-
- def str(arg: any) -> str:
- pass
-
- def iter(arg: any) -> any:
- pass
-
- def range(a1: int, a2: int, a3: int) -> any:
- pass
-
- def __set__(obj: any, key: any, val: any, obj_str: str):
- pass
-
- def __get__(obj: any, key: any) -> any:
- pass
-
-
-class RangeObj(TinyObj):
- def __next__() -> any:
- pass
-
-
-class StringObj(TinyObj):
- def __next__() -> any:
- pass
-
-class PikaObj(TinyObj):
- pass
diff --git a/bsp/pico-dev/pikascript/PikaStdLib.pyi b/bsp/pico-dev/pikascript/PikaStdLib.pyi
new file mode 100644
index 000000000..65848e400
--- /dev/null
+++ b/bsp/pico-dev/pikascript/PikaStdLib.pyi
@@ -0,0 +1,33 @@
+#api
+from PikaObj import *
+
+class MemChecker(TinyObj):
+ def max(self):...
+ def now(self):...
+ def getMax(self) -> float:...
+ def getNow(self) -> float:...
+ def resetMax(self):...
+
+
+class SysObj(BaseObj):
+ def type(self, arg: any):...
+ def remove(self, argPath: str):...
+ def int(self, arg: any) -> int:...
+ def float(self, arg: any) -> float:...
+ def str(self, arg: any) -> str:...
+ def iter(self, arg: any) -> any:...
+ def range(self, a1: int, a2: int) -> any:...
+ def __set__(self, obj: any, key: any, val: any, obj_str: str):...
+ def __get__(self, obj: any, key: any) -> any:...
+ def len(self, arg:any) -> int:...
+ def list(self) -> any:...
+ def dict(self) -> any:...
+
+class RangeObj(TinyObj):
+ def __next__(self) -> any:...
+
+
+class StringObj(TinyObj):
+ def __next__(self) -> any:...
+
+class PikaObj(TinyObj):...
diff --git a/bsp/pico-dev/pikascript/PikaStdTask.pyi b/bsp/pico-dev/pikascript/PikaStdTask.pyi
new file mode 100644
index 000000000..1d2ee16dc
--- /dev/null
+++ b/bsp/pico-dev/pikascript/PikaStdTask.pyi
@@ -0,0 +1,38 @@
+#api
+from PikaObj import *
+import PikaStdData
+
+
+class Task(TinyObj):
+ calls = PikaStdData.List()
+
+ def __init__(self):
+ pass
+
+ # regist a function to be called always
+ def call_always(self, fun_todo: any):
+ pass
+
+ # regist a function to be called when fun_when() return 'True'
+ def call_when(self, fun_todo: any, fun_when: any):
+ pass
+
+ # regist a function to be called periodically
+ def call_period_ms(self, fun_todo: any, period_ms: int):
+ pass
+
+ # run all registed function once
+ def run_once(self):
+ pass
+
+ # run all registed function forever
+ def run_forever(self):
+ pass
+
+ # run all registed function until time is up
+ def run_until_ms(self, until_ms: int):
+ pass
+
+ # need be overried to supply the system tick
+ def platformGetTick(self):
+ pass
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaDebug-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug-api.c
new file mode 100644
index 000000000..42362a5f6
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug-api.c
@@ -0,0 +1,20 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaDebug.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaDebug_DebugerMethod(PikaObj *self, Args *args){
+ Arg* res = PikaDebug_Debuger(self);
+ method_returnArg(args, res);
+}
+
+PikaObj *New_PikaDebug(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineConstructor(self, "Debuger()->any", PikaDebug_DebugerMethod);
+ return self;
+}
+
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaDebug.h b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug.h
new file mode 100644
index 000000000..994b15fc1
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug.h
@@ -0,0 +1,14 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaDebug__H
+#define __PikaDebug__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaDebug(Args *args);
+
+Arg* PikaDebug_Debuger(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaDebug_Debuger-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug_Debuger-api.c
new file mode 100644
index 000000000..3d4058a00
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug_Debuger-api.c
@@ -0,0 +1,27 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaDebug_Debuger.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaDebug_Debuger___init__Method(PikaObj *self, Args *args){
+ PikaDebug_Debuger___init__(self);
+}
+
+void PikaDebug_Debuger_set_traceMethod(PikaObj *self, Args *args){
+ PikaDebug_Debuger_set_trace(self);
+}
+
+PikaObj *New_PikaDebug_Debuger(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineMethod(self, "__init__()", PikaDebug_Debuger___init__Method);
+ class_defineMethod(self, "set_trace()", PikaDebug_Debuger_set_traceMethod);
+ return self;
+}
+
+Arg *PikaDebug_Debuger(PikaObj *self){
+ return obj_newObjInPackage(New_PikaDebug_Debuger);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaDebug_Debuger.h b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug_Debuger.h
new file mode 100644
index 000000000..a3647a33e
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaDebug_Debuger.h
@@ -0,0 +1,15 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaDebug_Debuger__H
+#define __PikaDebug_Debuger__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaDebug_Debuger(Args *args);
+
+void PikaDebug_Debuger___init__(PikaObj *self);
+void PikaDebug_Debuger_set_trace(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaMain-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaMain-api.c
new file mode 100644
index 000000000..8adb683e7
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaMain-api.c
@@ -0,0 +1,21 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaMain.h"
+#include "PikaStdLib_SysObj.h"
+#include "PikaStdData.h"
+#include "PikaStdLib.h"
+#include
+#include
+#include "BaseObj.h"
+
+PikaObj *New_PikaMain(Args *args){
+ PikaObj *self = New_PikaStdLib_SysObj(args);
+ obj_newObj(self, "PikaStdData", "PikaStdData", New_PikaStdData);
+ obj_newObj(self, "PikaStdLib", "PikaStdLib", New_PikaStdLib);
+ return self;
+}
+
+Arg *PikaMain(PikaObj *self){
+ return obj_newObjInPackage(New_PikaMain);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaMain.h b/bsp/pico-dev/pikascript/pikascript-api/PikaMain.h
new file mode 100644
index 000000000..36803c79d
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaMain.h
@@ -0,0 +1,13 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaMain__H
+#define __PikaMain__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaMain(Args *args);
+
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData-api.c
new file mode 100644
index 000000000..33379babb
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData-api.c
@@ -0,0 +1,38 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdData.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdData_ByteArrayMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_ByteArray(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_DictMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_Dict(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_ListMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_List(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_StringMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_String(self);
+ method_returnArg(args, res);
+}
+
+PikaObj *New_PikaStdData(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineConstructor(self, "ByteArray()->any", PikaStdData_ByteArrayMethod);
+ class_defineConstructor(self, "Dict()->any", PikaStdData_DictMethod);
+ class_defineConstructor(self, "List()->any", PikaStdData_ListMethod);
+ class_defineConstructor(self, "String()->any", PikaStdData_StringMethod);
+ return self;
+}
+
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData.h
new file mode 100644
index 000000000..c301eae08
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData.h
@@ -0,0 +1,17 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdData__H
+#define __PikaStdData__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdData(Args *args);
+
+Arg* PikaStdData_ByteArray(PikaObj *self);
+Arg* PikaStdData_Dict(PikaObj *self);
+Arg* PikaStdData_List(PikaObj *self);
+Arg* PikaStdData_String(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_ByteArray-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_ByteArray-api.c
new file mode 100644
index 000000000..ce6bb8cda
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_ByteArray-api.c
@@ -0,0 +1,23 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdData_ByteArray.h"
+#include "PikaStdData_List.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdData_ByteArray_fromStringMethod(PikaObj *self, Args *args){
+ char* s = args_getStr(args, "s");
+ PikaStdData_ByteArray_fromString(self, s);
+}
+
+PikaObj *New_PikaStdData_ByteArray(Args *args){
+ PikaObj *self = New_PikaStdData_List(args);
+ class_defineMethod(self, "fromString(s:str)", PikaStdData_ByteArray_fromStringMethod);
+ return self;
+}
+
+Arg *PikaStdData_ByteArray(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdData_ByteArray);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_ByteArray.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_ByteArray.h
new file mode 100644
index 000000000..3e1f968e2
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_ByteArray.h
@@ -0,0 +1,14 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdData_ByteArray__H
+#define __PikaStdData_ByteArray__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdData_ByteArray(Args *args);
+
+void PikaStdData_ByteArray_fromString(PikaObj *self, char* s);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_Dict-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_Dict-api.c
new file mode 100644
index 000000000..976245b6d
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_Dict-api.c
@@ -0,0 +1,68 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdData_Dict.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdData_Dict___get__Method(PikaObj *self, Args *args){
+ Arg* __key = args_getArg(args, "__key");
+ Arg* res = PikaStdData_Dict___get__(self, __key);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_Dict___init__Method(PikaObj *self, Args *args){
+ PikaStdData_Dict___init__(self);
+}
+
+void PikaStdData_Dict___iter__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_Dict___iter__(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_Dict___next__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_Dict___next__(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_Dict___set__Method(PikaObj *self, Args *args){
+ Arg* __key = args_getArg(args, "__key");
+ Arg* __val = args_getArg(args, "__val");
+ PikaStdData_Dict___set__(self, __key, __val);
+}
+
+void PikaStdData_Dict_getMethod(PikaObj *self, Args *args){
+ char* key = args_getStr(args, "key");
+ Arg* res = PikaStdData_Dict_get(self, key);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_Dict_removeMethod(PikaObj *self, Args *args){
+ char* key = args_getStr(args, "key");
+ PikaStdData_Dict_remove(self, key);
+}
+
+void PikaStdData_Dict_setMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ char* key = args_getStr(args, "key");
+ PikaStdData_Dict_set(self, arg, key);
+}
+
+PikaObj *New_PikaStdData_Dict(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineMethod(self, "__get__(__key:any)->any", PikaStdData_Dict___get__Method);
+ class_defineMethod(self, "__init__()", PikaStdData_Dict___init__Method);
+ class_defineMethod(self, "__iter__()->any", PikaStdData_Dict___iter__Method);
+ class_defineMethod(self, "__next__()->any", PikaStdData_Dict___next__Method);
+ class_defineMethod(self, "__set__(__key:any,__val:any)", PikaStdData_Dict___set__Method);
+ class_defineMethod(self, "get(key:str)->any", PikaStdData_Dict_getMethod);
+ class_defineMethod(self, "remove(key:str)", PikaStdData_Dict_removeMethod);
+ class_defineMethod(self, "set(key:str,arg:any)", PikaStdData_Dict_setMethod);
+ return self;
+}
+
+Arg *PikaStdData_Dict(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdData_Dict);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_Dict.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_Dict.h
new file mode 100644
index 000000000..2d1336f40
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_Dict.h
@@ -0,0 +1,21 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdData_Dict__H
+#define __PikaStdData_Dict__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdData_Dict(Args *args);
+
+Arg* PikaStdData_Dict___get__(PikaObj *self, Arg* __key);
+void PikaStdData_Dict___init__(PikaObj *self);
+Arg* PikaStdData_Dict___iter__(PikaObj *self);
+Arg* PikaStdData_Dict___next__(PikaObj *self);
+void PikaStdData_Dict___set__(PikaObj *self, Arg* __key, Arg* __val);
+Arg* PikaStdData_Dict_get(PikaObj *self, char* key);
+void PikaStdData_Dict_remove(PikaObj *self, char* key);
+void PikaStdData_Dict_set(PikaObj *self, Arg* arg, char* key);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_List-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_List-api.c
new file mode 100644
index 000000000..ee840e62d
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_List-api.c
@@ -0,0 +1,74 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdData_List.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdData_List___get__Method(PikaObj *self, Args *args){
+ Arg* __key = args_getArg(args, "__key");
+ Arg* res = PikaStdData_List___get__(self, __key);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_List___init__Method(PikaObj *self, Args *args){
+ PikaStdData_List___init__(self);
+}
+
+void PikaStdData_List___iter__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_List___iter__(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_List___next__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_List___next__(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_List___set__Method(PikaObj *self, Args *args){
+ Arg* __key = args_getArg(args, "__key");
+ Arg* __val = args_getArg(args, "__val");
+ PikaStdData_List___set__(self, __key, __val);
+}
+
+void PikaStdData_List_appendMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ PikaStdData_List_append(self, arg);
+}
+
+void PikaStdData_List_getMethod(PikaObj *self, Args *args){
+ int i = args_getInt(args, "i");
+ Arg* res = PikaStdData_List_get(self, i);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_List_lenMethod(PikaObj *self, Args *args){
+ int res = PikaStdData_List_len(self);
+ method_returnInt(args, res);
+}
+
+void PikaStdData_List_setMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ int i = args_getInt(args, "i");
+ PikaStdData_List_set(self, arg, i);
+}
+
+PikaObj *New_PikaStdData_List(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineMethod(self, "__get__(__key:any)->any", PikaStdData_List___get__Method);
+ class_defineMethod(self, "__init__()", PikaStdData_List___init__Method);
+ class_defineMethod(self, "__iter__()->any", PikaStdData_List___iter__Method);
+ class_defineMethod(self, "__next__()->any", PikaStdData_List___next__Method);
+ class_defineMethod(self, "__set__(__key:any,__val:any)", PikaStdData_List___set__Method);
+ class_defineMethod(self, "append(arg:any)", PikaStdData_List_appendMethod);
+ class_defineMethod(self, "get(i:int)->any", PikaStdData_List_getMethod);
+ class_defineMethod(self, "len()->int", PikaStdData_List_lenMethod);
+ class_defineMethod(self, "set(i:int,arg:any)", PikaStdData_List_setMethod);
+ return self;
+}
+
+Arg *PikaStdData_List(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdData_List);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_List.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_List.h
new file mode 100644
index 000000000..c3e7049db
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_List.h
@@ -0,0 +1,22 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdData_List__H
+#define __PikaStdData_List__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdData_List(Args *args);
+
+Arg* PikaStdData_List___get__(PikaObj *self, Arg* __key);
+void PikaStdData_List___init__(PikaObj *self);
+Arg* PikaStdData_List___iter__(PikaObj *self);
+Arg* PikaStdData_List___next__(PikaObj *self);
+void PikaStdData_List___set__(PikaObj *self, Arg* __key, Arg* __val);
+void PikaStdData_List_append(PikaObj *self, Arg* arg);
+Arg* PikaStdData_List_get(PikaObj *self, int i);
+int PikaStdData_List_len(PikaObj *self);
+void PikaStdData_List_set(PikaObj *self, Arg* arg, int i);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_String-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_String-api.c
new file mode 100644
index 000000000..cfad2f6cf
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_String-api.c
@@ -0,0 +1,61 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdData_String.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdData_String___get__Method(PikaObj *self, Args *args){
+ Arg* __key = args_getArg(args, "__key");
+ Arg* res = PikaStdData_String___get__(self, __key);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_String___init__Method(PikaObj *self, Args *args){
+ char* s = args_getStr(args, "s");
+ PikaStdData_String___init__(self, s);
+}
+
+void PikaStdData_String___iter__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_String___iter__(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_String___next__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdData_String___next__(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdData_String___set__Method(PikaObj *self, Args *args){
+ Arg* __key = args_getArg(args, "__key");
+ Arg* __val = args_getArg(args, "__val");
+ PikaStdData_String___set__(self, __key, __val);
+}
+
+void PikaStdData_String_getMethod(PikaObj *self, Args *args){
+ char* res = PikaStdData_String_get(self);
+ method_returnStr(args, res);
+}
+
+void PikaStdData_String_setMethod(PikaObj *self, Args *args){
+ char* s = args_getStr(args, "s");
+ PikaStdData_String_set(self, s);
+}
+
+PikaObj *New_PikaStdData_String(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineMethod(self, "__get__(__key:any)->any", PikaStdData_String___get__Method);
+ class_defineMethod(self, "__init__(s:str)", PikaStdData_String___init__Method);
+ class_defineMethod(self, "__iter__()->any", PikaStdData_String___iter__Method);
+ class_defineMethod(self, "__next__()->any", PikaStdData_String___next__Method);
+ class_defineMethod(self, "__set__(__key:any,__val:any)", PikaStdData_String___set__Method);
+ class_defineMethod(self, "get()->str", PikaStdData_String_getMethod);
+ class_defineMethod(self, "set(s:str)", PikaStdData_String_setMethod);
+ return self;
+}
+
+Arg *PikaStdData_String(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdData_String);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_String.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_String.h
new file mode 100644
index 000000000..5dbd1540b
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdData_String.h
@@ -0,0 +1,20 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdData_String__H
+#define __PikaStdData_String__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdData_String(Args *args);
+
+Arg* PikaStdData_String___get__(PikaObj *self, Arg* __key);
+void PikaStdData_String___init__(PikaObj *self, char* s);
+Arg* PikaStdData_String___iter__(PikaObj *self);
+Arg* PikaStdData_String___next__(PikaObj *self);
+void PikaStdData_String___set__(PikaObj *self, Arg* __key, Arg* __val);
+char* PikaStdData_String_get(PikaObj *self);
+void PikaStdData_String_set(PikaObj *self, char* s);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib-api.c
new file mode 100644
index 000000000..43c12d0d3
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib-api.c
@@ -0,0 +1,44 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdLib.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdLib_MemCheckerMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_MemChecker(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_PikaObjMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_PikaObj(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_RangeObjMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_RangeObj(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_StringObjMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_StringObj(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_SysObjMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_SysObj(self);
+ method_returnArg(args, res);
+}
+
+PikaObj *New_PikaStdLib(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineConstructor(self, "MemChecker()->any", PikaStdLib_MemCheckerMethod);
+ class_defineConstructor(self, "PikaObj()->any", PikaStdLib_PikaObjMethod);
+ class_defineConstructor(self, "RangeObj()->any", PikaStdLib_RangeObjMethod);
+ class_defineConstructor(self, "StringObj()->any", PikaStdLib_StringObjMethod);
+ class_defineConstructor(self, "SysObj()->any", PikaStdLib_SysObjMethod);
+ return self;
+}
+
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib.h
new file mode 100644
index 000000000..1d2368df4
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib.h
@@ -0,0 +1,18 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdLib__H
+#define __PikaStdLib__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdLib(Args *args);
+
+Arg* PikaStdLib_MemChecker(PikaObj *self);
+Arg* PikaStdLib_PikaObj(PikaObj *self);
+Arg* PikaStdLib_RangeObj(PikaObj *self);
+Arg* PikaStdLib_StringObj(PikaObj *self);
+Arg* PikaStdLib_SysObj(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_MemChecker-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_MemChecker-api.c
new file mode 100644
index 000000000..92765e533
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_MemChecker-api.c
@@ -0,0 +1,44 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdLib_MemChecker.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdLib_MemChecker_getMaxMethod(PikaObj *self, Args *args){
+ float res = PikaStdLib_MemChecker_getMax(self);
+ method_returnFloat(args, res);
+}
+
+void PikaStdLib_MemChecker_getNowMethod(PikaObj *self, Args *args){
+ float res = PikaStdLib_MemChecker_getNow(self);
+ method_returnFloat(args, res);
+}
+
+void PikaStdLib_MemChecker_maxMethod(PikaObj *self, Args *args){
+ PikaStdLib_MemChecker_max(self);
+}
+
+void PikaStdLib_MemChecker_nowMethod(PikaObj *self, Args *args){
+ PikaStdLib_MemChecker_now(self);
+}
+
+void PikaStdLib_MemChecker_resetMaxMethod(PikaObj *self, Args *args){
+ PikaStdLib_MemChecker_resetMax(self);
+}
+
+PikaObj *New_PikaStdLib_MemChecker(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineMethod(self, "getMax()->float", PikaStdLib_MemChecker_getMaxMethod);
+ class_defineMethod(self, "getNow()->float", PikaStdLib_MemChecker_getNowMethod);
+ class_defineMethod(self, "max()", PikaStdLib_MemChecker_maxMethod);
+ class_defineMethod(self, "now()", PikaStdLib_MemChecker_nowMethod);
+ class_defineMethod(self, "resetMax()", PikaStdLib_MemChecker_resetMaxMethod);
+ return self;
+}
+
+Arg *PikaStdLib_MemChecker(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdLib_MemChecker);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_MemChecker.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_MemChecker.h
new file mode 100644
index 000000000..c673e9c9f
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_MemChecker.h
@@ -0,0 +1,18 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdLib_MemChecker__H
+#define __PikaStdLib_MemChecker__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdLib_MemChecker(Args *args);
+
+float PikaStdLib_MemChecker_getMax(PikaObj *self);
+float PikaStdLib_MemChecker_getNow(PikaObj *self);
+void PikaStdLib_MemChecker_max(PikaObj *self);
+void PikaStdLib_MemChecker_now(PikaObj *self);
+void PikaStdLib_MemChecker_resetMax(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_PikaObj-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_PikaObj-api.c
new file mode 100644
index 000000000..bd5d8e511
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_PikaObj-api.c
@@ -0,0 +1,17 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdLib_PikaObj.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+PikaObj *New_PikaStdLib_PikaObj(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ return self;
+}
+
+Arg *PikaStdLib_PikaObj(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdLib_PikaObj);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_PikaObj.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_PikaObj.h
new file mode 100644
index 000000000..cd79aa86a
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_PikaObj.h
@@ -0,0 +1,13 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdLib_PikaObj__H
+#define __PikaStdLib_PikaObj__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdLib_PikaObj(Args *args);
+
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_RangeObj-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_RangeObj-api.c
new file mode 100644
index 000000000..67097d338
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_RangeObj-api.c
@@ -0,0 +1,23 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdLib_RangeObj.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdLib_RangeObj___next__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_RangeObj___next__(self);
+ method_returnArg(args, res);
+}
+
+PikaObj *New_PikaStdLib_RangeObj(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineMethod(self, "__next__()->any", PikaStdLib_RangeObj___next__Method);
+ return self;
+}
+
+Arg *PikaStdLib_RangeObj(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdLib_RangeObj);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_RangeObj.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_RangeObj.h
new file mode 100644
index 000000000..0723123d2
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_RangeObj.h
@@ -0,0 +1,14 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdLib_RangeObj__H
+#define __PikaStdLib_RangeObj__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdLib_RangeObj(Args *args);
+
+Arg* PikaStdLib_RangeObj___next__(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_StringObj-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_StringObj-api.c
new file mode 100644
index 000000000..cc60693e3
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_StringObj-api.c
@@ -0,0 +1,23 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdLib_StringObj.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdLib_StringObj___next__Method(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_StringObj___next__(self);
+ method_returnArg(args, res);
+}
+
+PikaObj *New_PikaStdLib_StringObj(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineMethod(self, "__next__()->any", PikaStdLib_StringObj___next__Method);
+ return self;
+}
+
+Arg *PikaStdLib_StringObj(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdLib_StringObj);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_StringObj.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_StringObj.h
new file mode 100644
index 000000000..537d6805d
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_StringObj.h
@@ -0,0 +1,14 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdLib_StringObj__H
+#define __PikaStdLib_StringObj__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdLib_StringObj(Args *args);
+
+Arg* PikaStdLib_StringObj___next__(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_SysObj-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_SysObj-api.c
new file mode 100644
index 000000000..b25719e4f
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_SysObj-api.c
@@ -0,0 +1,101 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdLib_SysObj.h"
+#include "BaseObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdLib_SysObj___get__Method(PikaObj *self, Args *args){
+ Arg* key = args_getArg(args, "key");
+ Arg* obj = args_getArg(args, "obj");
+ Arg* res = PikaStdLib_SysObj___get__(self, key, obj);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_SysObj___set__Method(PikaObj *self, Args *args){
+ Arg* key = args_getArg(args, "key");
+ Arg* obj = args_getArg(args, "obj");
+ char* obj_str = args_getStr(args, "obj_str");
+ Arg* val = args_getArg(args, "val");
+ PikaStdLib_SysObj___set__(self, key, obj, obj_str, val);
+}
+
+void PikaStdLib_SysObj_dictMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_SysObj_dict(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_SysObj_floatMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ float res = PikaStdLib_SysObj_float(self, arg);
+ method_returnFloat(args, res);
+}
+
+void PikaStdLib_SysObj_intMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ int res = PikaStdLib_SysObj_int(self, arg);
+ method_returnInt(args, res);
+}
+
+void PikaStdLib_SysObj_iterMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ Arg* res = PikaStdLib_SysObj_iter(self, arg);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_SysObj_lenMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ int res = PikaStdLib_SysObj_len(self, arg);
+ method_returnInt(args, res);
+}
+
+void PikaStdLib_SysObj_listMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdLib_SysObj_list(self);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_SysObj_rangeMethod(PikaObj *self, Args *args){
+ int a1 = args_getInt(args, "a1");
+ int a2 = args_getInt(args, "a2");
+ Arg* res = PikaStdLib_SysObj_range(self, a1, a2);
+ method_returnArg(args, res);
+}
+
+void PikaStdLib_SysObj_removeMethod(PikaObj *self, Args *args){
+ char* argPath = args_getStr(args, "argPath");
+ PikaStdLib_SysObj_remove(self, argPath);
+}
+
+void PikaStdLib_SysObj_strMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ char* res = PikaStdLib_SysObj_str(self, arg);
+ method_returnStr(args, res);
+}
+
+void PikaStdLib_SysObj_typeMethod(PikaObj *self, Args *args){
+ Arg* arg = args_getArg(args, "arg");
+ PikaStdLib_SysObj_type(self, arg);
+}
+
+PikaObj *New_PikaStdLib_SysObj(Args *args){
+ PikaObj *self = New_BaseObj(args);
+ class_defineMethod(self, "__get__(obj:any,key:any)->any", PikaStdLib_SysObj___get__Method);
+ class_defineMethod(self, "__set__(obj:any,key:any,val:any,obj_str:str)", PikaStdLib_SysObj___set__Method);
+ class_defineMethod(self, "dict()->any", PikaStdLib_SysObj_dictMethod);
+ class_defineMethod(self, "float(arg:any)->float", PikaStdLib_SysObj_floatMethod);
+ class_defineMethod(self, "int(arg:any)->int", PikaStdLib_SysObj_intMethod);
+ class_defineMethod(self, "iter(arg:any)->any", PikaStdLib_SysObj_iterMethod);
+ class_defineMethod(self, "len(arg:any)->int", PikaStdLib_SysObj_lenMethod);
+ class_defineMethod(self, "list()->any", PikaStdLib_SysObj_listMethod);
+ class_defineMethod(self, "range(a1:int,a2:int)->any", PikaStdLib_SysObj_rangeMethod);
+ class_defineMethod(self, "remove(argPath:str)", PikaStdLib_SysObj_removeMethod);
+ class_defineMethod(self, "str(arg:any)->str", PikaStdLib_SysObj_strMethod);
+ class_defineMethod(self, "type(arg:any)", PikaStdLib_SysObj_typeMethod);
+ return self;
+}
+
+Arg *PikaStdLib_SysObj(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdLib_SysObj);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_SysObj.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_SysObj.h
new file mode 100644
index 000000000..866618cbc
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdLib_SysObj.h
@@ -0,0 +1,25 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdLib_SysObj__H
+#define __PikaStdLib_SysObj__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdLib_SysObj(Args *args);
+
+Arg* PikaStdLib_SysObj___get__(PikaObj *self, Arg* key, Arg* obj);
+void PikaStdLib_SysObj___set__(PikaObj *self, Arg* key, Arg* obj, char* obj_str, Arg* val);
+Arg* PikaStdLib_SysObj_dict(PikaObj *self);
+float PikaStdLib_SysObj_float(PikaObj *self, Arg* arg);
+int PikaStdLib_SysObj_int(PikaObj *self, Arg* arg);
+Arg* PikaStdLib_SysObj_iter(PikaObj *self, Arg* arg);
+int PikaStdLib_SysObj_len(PikaObj *self, Arg* arg);
+Arg* PikaStdLib_SysObj_list(PikaObj *self);
+Arg* PikaStdLib_SysObj_range(PikaObj *self, int a1, int a2);
+void PikaStdLib_SysObj_remove(PikaObj *self, char* argPath);
+char* PikaStdLib_SysObj_str(PikaObj *self, Arg* arg);
+void PikaStdLib_SysObj_type(PikaObj *self, Arg* arg);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask-api.c
new file mode 100644
index 000000000..2cc68f9e0
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask-api.c
@@ -0,0 +1,20 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdTask.h"
+#include "TinyObj.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdTask_TaskMethod(PikaObj *self, Args *args){
+ Arg* res = PikaStdTask_Task(self);
+ method_returnArg(args, res);
+}
+
+PikaObj *New_PikaStdTask(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ class_defineConstructor(self, "Task()->any", PikaStdTask_TaskMethod);
+ return self;
+}
+
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask.h
new file mode 100644
index 000000000..9502bf1a8
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask.h
@@ -0,0 +1,14 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdTask__H
+#define __PikaStdTask__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdTask(Args *args);
+
+Arg* PikaStdTask_Task(PikaObj *self);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask_Task-api.c b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask_Task-api.c
new file mode 100644
index 000000000..b0f530d71
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask_Task-api.c
@@ -0,0 +1,65 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaStdTask_Task.h"
+#include "TinyObj.h"
+#include "PikaStdData_List.h"
+#include
+#include
+#include "BaseObj.h"
+
+void PikaStdTask_Task___init__Method(PikaObj *self, Args *args){
+ PikaStdTask_Task___init__(self);
+}
+
+void PikaStdTask_Task_call_alwaysMethod(PikaObj *self, Args *args){
+ Arg* fun_todo = args_getArg(args, "fun_todo");
+ PikaStdTask_Task_call_always(self, fun_todo);
+}
+
+void PikaStdTask_Task_call_period_msMethod(PikaObj *self, Args *args){
+ Arg* fun_todo = args_getArg(args, "fun_todo");
+ int period_ms = args_getInt(args, "period_ms");
+ PikaStdTask_Task_call_period_ms(self, fun_todo, period_ms);
+}
+
+void PikaStdTask_Task_call_whenMethod(PikaObj *self, Args *args){
+ Arg* fun_todo = args_getArg(args, "fun_todo");
+ Arg* fun_when = args_getArg(args, "fun_when");
+ PikaStdTask_Task_call_when(self, fun_todo, fun_when);
+}
+
+void PikaStdTask_Task_platformGetTickMethod(PikaObj *self, Args *args){
+ PikaStdTask_Task_platformGetTick(self);
+}
+
+void PikaStdTask_Task_run_foreverMethod(PikaObj *self, Args *args){
+ PikaStdTask_Task_run_forever(self);
+}
+
+void PikaStdTask_Task_run_onceMethod(PikaObj *self, Args *args){
+ PikaStdTask_Task_run_once(self);
+}
+
+void PikaStdTask_Task_run_until_msMethod(PikaObj *self, Args *args){
+ int until_ms = args_getInt(args, "until_ms");
+ PikaStdTask_Task_run_until_ms(self, until_ms);
+}
+
+PikaObj *New_PikaStdTask_Task(Args *args){
+ PikaObj *self = New_TinyObj(args);
+ obj_newObj(self, "calls", "PikaStdData_List", New_PikaStdData_List);
+ class_defineMethod(self, "__init__()", PikaStdTask_Task___init__Method);
+ class_defineMethod(self, "call_always(fun_todo:any)", PikaStdTask_Task_call_alwaysMethod);
+ class_defineMethod(self, "call_period_ms(fun_todo:any,period_ms:int)", PikaStdTask_Task_call_period_msMethod);
+ class_defineMethod(self, "call_when(fun_todo:any,fun_when:any)", PikaStdTask_Task_call_whenMethod);
+ class_defineMethod(self, "platformGetTick()", PikaStdTask_Task_platformGetTickMethod);
+ class_defineMethod(self, "run_forever()", PikaStdTask_Task_run_foreverMethod);
+ class_defineMethod(self, "run_once()", PikaStdTask_Task_run_onceMethod);
+ class_defineMethod(self, "run_until_ms(until_ms:int)", PikaStdTask_Task_run_until_msMethod);
+ return self;
+}
+
+Arg *PikaStdTask_Task(PikaObj *self){
+ return obj_newObjInPackage(New_PikaStdTask_Task);
+}
diff --git a/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask_Task.h b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask_Task.h
new file mode 100644
index 000000000..d676cde63
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/PikaStdTask_Task.h
@@ -0,0 +1,21 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __PikaStdTask_Task__H
+#define __PikaStdTask_Task__H
+#include
+#include
+#include "PikaObj.h"
+
+PikaObj *New_PikaStdTask_Task(Args *args);
+
+void PikaStdTask_Task___init__(PikaObj *self);
+void PikaStdTask_Task_call_always(PikaObj *self, Arg* fun_todo);
+void PikaStdTask_Task_call_period_ms(PikaObj *self, Arg* fun_todo, int period_ms);
+void PikaStdTask_Task_call_when(PikaObj *self, Arg* fun_todo, Arg* fun_when);
+void PikaStdTask_Task_platformGetTick(PikaObj *self);
+void PikaStdTask_Task_run_forever(PikaObj *self);
+void PikaStdTask_Task_run_once(PikaObj *self);
+void PikaStdTask_Task_run_until_ms(PikaObj *self, int until_ms);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/pikascript-api/__asset_pikaModules_py_a.c b/bsp/pico-dev/pikascript/pikascript-api/__asset_pikaModules_py_a.c
new file mode 100644
index 000000000..df322732f
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/__asset_pikaModules_py_a.c
@@ -0,0 +1,168 @@
+const unsigned char pikaModules_py_a[] = {
+ 0x7f, 0x70, 0x79, 0x61, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x84, 0x07, 0x00, 0x00, 0xc4, 0x04, 0x00, 0x96, 0x01, 0x00, 0x30, 0x81,
+ 0x09, 0x00, 0x20, 0x08, 0x12, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x08,
+ 0x12, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x96, 0x14, 0x00, 0x00, 0x96,
+ 0x1f, 0x00, 0x00, 0x82, 0x2b, 0x00, 0x00, 0x04, 0x41, 0x00, 0x00, 0x82,
+ 0x45, 0x00, 0x00, 0x89, 0x52, 0x00, 0x00, 0x06, 0x76, 0x00, 0x11, 0x83,
+ 0x78, 0x00, 0x01, 0x02, 0x87, 0x00, 0x11, 0x81, 0x8d, 0x00, 0x01, 0x02,
+ 0x87, 0x00, 0x11, 0x81, 0x97, 0x00, 0x11, 0x01, 0x9d, 0x00, 0x01, 0x08,
+ 0xa6, 0x00, 0x01, 0x07, 0x76, 0x00, 0x12, 0x83, 0xa9, 0x00, 0x02, 0x02,
+ 0x87, 0x00, 0x12, 0x81, 0x8d, 0x00, 0x02, 0x02, 0x87, 0x00, 0x12, 0x83,
+ 0xb1, 0x00, 0x02, 0x02, 0x87, 0x00, 0x12, 0x81, 0x9d, 0x00, 0x02, 0x02,
+ 0x87, 0x00, 0x12, 0x83, 0xc2, 0x00, 0x02, 0x02, 0x87, 0x00, 0x12, 0x81,
+ 0x97, 0x00, 0x02, 0x02, 0x87, 0x00, 0x02, 0x81, 0xd0, 0x00, 0x02, 0x07,
+ 0xd5, 0x00, 0x03, 0x85, 0x76, 0x00, 0x03, 0x04, 0xd7, 0x00, 0x02, 0x86,
+ 0xe2, 0x00, 0x01, 0x8b, 0x76, 0x00, 0x12, 0x83, 0xe5, 0x00, 0x02, 0x02,
+ 0x87, 0x00, 0x01, 0x8a, 0x00, 0x00, 0x00, 0x85, 0xed, 0x00, 0x00, 0x04,
+ 0xef, 0x00, 0x20, 0x85, 0xed, 0x00, 0x20, 0x05, 0xf1, 0x00, 0x10, 0x02,
+ 0xf4, 0x00, 0x00, 0x02, 0xfa, 0x00, 0x00, 0x04, 0xff, 0x00, 0x00, 0x01,
+ 0x03, 0x01, 0x00, 0x01, 0x07, 0x01, 0x00, 0x04, 0x0b, 0x01, 0x00, 0x04,
+ 0x12, 0x01, 0x00, 0x82, 0x19, 0x01, 0x00, 0x04, 0x26, 0x01, 0x00, 0x0d,
+ 0x26, 0x01, 0x00, 0x07, 0xd5, 0x00, 0x11, 0x81, 0x26, 0x01, 0x11, 0x05,
+ 0x28, 0x01, 0x01, 0x08, 0x2a, 0x01, 0x01, 0x07, 0x76, 0x00, 0x02, 0x8f,
+ 0x00, 0x00, 0x11, 0x81, 0xef, 0x00, 0x11, 0x01, 0x26, 0x01, 0x01, 0x08,
+ 0x2d, 0x01, 0x01, 0x04, 0xef, 0x00, 0x00, 0x86, 0xe2, 0x00, 0x00, 0x8c,
+ 0xff, 0x00, 0x10, 0x83, 0x2f, 0x01, 0x10, 0x01, 0xef, 0x00, 0x10, 0x05,
+ 0x3f, 0x01, 0x00, 0x02, 0x42, 0x01, 0x00, 0x85, 0xed, 0x00, 0x00, 0x04,
+ 0xef, 0x00, 0x20, 0x85, 0xed, 0x00, 0x20, 0x05, 0xf1, 0x00, 0x10, 0x02,
+ 0xf4, 0x00, 0x00, 0x02, 0xfa, 0x00, 0x00, 0x04, 0xff, 0x00, 0x00, 0x01,
+ 0x03, 0x01, 0x00, 0x01, 0x07, 0x01, 0x00, 0x04, 0x0b, 0x01, 0x00, 0x04,
+ 0x12, 0x01, 0x00, 0x82, 0x19, 0x01, 0x00, 0x04, 0x26, 0x01, 0x00, 0x0d,
+ 0x26, 0x01, 0x00, 0x07, 0xd5, 0x00, 0x11, 0x81, 0x26, 0x01, 0x11, 0x05,
+ 0x28, 0x01, 0x01, 0x08, 0x2a, 0x01, 0x01, 0x07, 0x76, 0x00, 0x02, 0x8e,
+ 0x00, 0x00, 0x11, 0x81, 0xef, 0x00, 0x11, 0x01, 0x26, 0x01, 0x01, 0x08,
+ 0x2d, 0x01, 0x01, 0x04, 0xef, 0x00, 0x00, 0x86, 0xe2, 0x00, 0x00, 0x8c,
+ 0xff, 0x00, 0x10, 0x83, 0x4c, 0x01, 0x10, 0x01, 0xef, 0x00, 0x10, 0x05,
+ 0xf1, 0x00, 0x00, 0x02, 0x42, 0x01, 0x00, 0x85, 0xed, 0x00, 0x00, 0x04,
+ 0xef, 0x00, 0x20, 0x85, 0xed, 0x00, 0x20, 0x05, 0xf1, 0x00, 0x10, 0x02,
+ 0xf4, 0x00, 0x00, 0x02, 0xfa, 0x00, 0x00, 0x04, 0xff, 0x00, 0x00, 0x01,
+ 0x03, 0x01, 0x00, 0x01, 0x07, 0x01, 0x00, 0x04, 0x0b, 0x01, 0x00, 0x04,
+ 0x12, 0x01, 0x00, 0x82, 0x19, 0x01, 0x00, 0x04, 0x26, 0x01, 0x00, 0x0d,
+ 0x26, 0x01, 0x00, 0x07, 0xd5, 0x00, 0x21, 0x85, 0xed, 0x00, 0x21, 0x05,
+ 0x59, 0x01, 0x11, 0x02, 0xf4, 0x00, 0x01, 0x02, 0xfa, 0x00, 0x01, 0x04,
+ 0x5b, 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x01, 0x07, 0x01, 0x01, 0x04,
+ 0x5f, 0x01, 0x01, 0x04, 0x66, 0x01, 0x01, 0x82, 0x6d, 0x01, 0x01, 0x04,
+ 0x7a, 0x01, 0x01, 0x0d, 0x7a, 0x01, 0x01, 0x07, 0xd5, 0x00, 0x12, 0x81,
+ 0xef, 0x00, 0x12, 0x01, 0x7a, 0x01, 0x02, 0x08, 0x2d, 0x01, 0x02, 0x04,
+ 0xef, 0x00, 0x01, 0x86, 0xe2, 0x00, 0x01, 0x8c, 0x5b, 0x01, 0x00, 0x86,
+ 0xe2, 0x00, 0x00, 0x8c, 0xff, 0x00, 0x10, 0x83, 0x7c, 0x01, 0x10, 0x01,
+ 0xef, 0x00, 0x10, 0x05, 0x8d, 0x01, 0x00, 0x02, 0x42, 0x01, 0x00, 0x85,
+ 0xed, 0x00, 0x00, 0x04, 0xef, 0x00, 0x20, 0x85, 0xed, 0x00, 0x20, 0x05,
+ 0xf1, 0x00, 0x10, 0x02, 0xf4, 0x00, 0x00, 0x02, 0xfa, 0x00, 0x00, 0x04,
+ 0xff, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x01, 0x07, 0x01, 0x00, 0x04,
+ 0x0b, 0x01, 0x00, 0x04, 0x12, 0x01, 0x00, 0x82, 0x19, 0x01, 0x00, 0x04,
+ 0x26, 0x01, 0x00, 0x0d, 0x26, 0x01, 0x00, 0x07, 0xd5, 0x00, 0x11, 0x81,
+ 0xef, 0x00, 0x11, 0x01, 0x26, 0x01, 0x01, 0x08, 0x2d, 0x01, 0x01, 0x04,
+ 0xef, 0x00, 0x00, 0x86, 0xe2, 0x00, 0x00, 0x8c, 0xff, 0x00, 0x10, 0x83,
+ 0x90, 0x01, 0x10, 0x01, 0xef, 0x00, 0x10, 0x05, 0x9d, 0x01, 0x00, 0x02,
+ 0x42, 0x01, 0x00, 0x82, 0xa0, 0x01, 0x00, 0x04, 0xb1, 0x01, 0x10, 0x85,
+ 0xb6, 0x01, 0x00, 0x02, 0xb8, 0x01, 0x10, 0x83, 0xc4, 0x01, 0x00, 0x02,
+ 0xb8, 0x01, 0x00, 0x82, 0xc8, 0x01, 0x00, 0x04, 0xd1, 0x01, 0x10, 0x81,
+ 0xb1, 0x01, 0x00, 0x02, 0xfa, 0x00, 0x00, 0x04, 0xff, 0x00, 0x00, 0x82,
+ 0x19, 0x01, 0x00, 0x04, 0xd5, 0x01, 0x00, 0x0d, 0xd5, 0x01, 0x00, 0x07,
+ 0xd5, 0x00, 0x01, 0x81, 0xd5, 0x01, 0x01, 0x04, 0xef, 0x00, 0x00, 0x86,
+ 0xe2, 0x00, 0x00, 0x8c, 0xff, 0x00, 0x10, 0x83, 0xda, 0x01, 0x10, 0x01,
+ 0xef, 0x00, 0x10, 0x03, 0xc4, 0x01, 0x00, 0x02, 0x42, 0x01, 0x00, 0x82,
+ 0xa0, 0x01, 0x00, 0x04, 0xb1, 0x01, 0x10, 0x85, 0xb6, 0x01, 0x00, 0x02,
+ 0xb8, 0x01, 0x10, 0x83, 0xc4, 0x01, 0x00, 0x02, 0xb8, 0x01, 0x00, 0x82,
+ 0xc8, 0x01, 0x00, 0x04, 0xd1, 0x01, 0x10, 0x85, 0xed, 0x00, 0x00, 0x02,
+ 0xe8, 0x01, 0x00, 0x04, 0xf1, 0x01, 0x10, 0x85, 0x76, 0x00, 0x00, 0x02,
+ 0xe8, 0x01, 0x00, 0x04, 0xf4, 0x01, 0x10, 0x81, 0xb1, 0x01, 0x00, 0x02,
+ 0xfa, 0x00, 0x00, 0x04, 0xf7, 0x01, 0x10, 0x83, 0xfa, 0x00, 0x10, 0x01,
+ 0xf7, 0x01, 0x10, 0x01, 0xb1, 0x01, 0x00, 0x02, 0x42, 0x01, 0x00, 0x82,
+ 0xfb, 0x01, 0x00, 0x04, 0x0c, 0x02, 0x10, 0x83, 0xef, 0x00, 0x10, 0x05,
+ 0x76, 0x00, 0x00, 0x02, 0x11, 0x02, 0x10, 0x83, 0x1a, 0x02, 0x10, 0x05,
+ 0xd5, 0x00, 0x00, 0x02, 0x11, 0x02, 0x10, 0x83, 0x1a, 0x02, 0x00, 0x02,
+ 0x1c, 0x02, 0x10, 0x83, 0xef, 0x00, 0x00, 0x02, 0x28, 0x02, 0x00, 0x04,
+ 0xef, 0x00, 0x10, 0x83, 0x1a, 0x02, 0x00, 0x02, 0x28, 0x02, 0x00, 0x04,
+ 0x1a, 0x02, 0x10, 0x83, 0x1f, 0x00, 0x10, 0x01, 0xef, 0x00, 0x10, 0x05,
+ 0x76, 0x00, 0x00, 0x02, 0x42, 0x01, 0x10, 0x83, 0x31, 0x02, 0x10, 0x01,
+ 0x1a, 0x02, 0x10, 0x05, 0xed, 0x00, 0x00, 0x02, 0x42, 0x01, 0x00, 0x85,
+ 0xed, 0x00, 0x00, 0x04, 0x3f, 0x02, 0x00, 0x85, 0xd5, 0x00, 0x00, 0x04,
+ 0x26, 0x01, 0x20, 0x85, 0xd5, 0x00, 0x20, 0x05, 0x8d, 0x01, 0x10, 0x02,
+ 0xf4, 0x00, 0x00, 0x02, 0xfa, 0x00, 0x00, 0x04, 0xff, 0x00, 0x00, 0x01,
+ 0x03, 0x01, 0x00, 0x01, 0x07, 0x01, 0x00, 0x04, 0x0b, 0x01, 0x00, 0x04,
+ 0x12, 0x01, 0x00, 0x82, 0x19, 0x01, 0x00, 0x04, 0x26, 0x01, 0x00, 0x0d,
+ 0x26, 0x01, 0x00, 0x07, 0xd5, 0x00, 0x01, 0x85, 0xd5, 0x00, 0x01, 0x04,
+ 0x43, 0x02, 0x01, 0x85, 0x76, 0x00, 0x01, 0x04, 0x45, 0x02, 0x21, 0x85,
+ 0xd5, 0x00, 0x21, 0x01, 0x26, 0x01, 0x11, 0x02, 0xf4, 0x00, 0x01, 0x02,
+ 0xfa, 0x00, 0x01, 0x04, 0x5b, 0x01, 0x01, 0x01, 0x03, 0x01, 0x01, 0x01,
+ 0x07, 0x01, 0x01, 0x04, 0x5f, 0x01, 0x01, 0x04, 0x66, 0x01, 0x01, 0x82,
+ 0x6d, 0x01, 0x01, 0x04, 0x43, 0x02, 0x01, 0x0d, 0x43, 0x02, 0x01, 0x07,
+ 0xd5, 0x00, 0x22, 0x81, 0x26, 0x01, 0x22, 0x01, 0x43, 0x02, 0x12, 0x08,
+ 0x4e, 0x02, 0x12, 0x05, 0xed, 0x00, 0x02, 0x08, 0x2a, 0x01, 0x02, 0x07,
+ 0x76, 0x00, 0x03, 0x85, 0xed, 0x00, 0x03, 0x04, 0x45, 0x02, 0x03, 0x8e,
+ 0x00, 0x00, 0x01, 0x86, 0xe2, 0x00, 0x01, 0x8c, 0x5b, 0x01, 0x01, 0x81,
+ 0x45, 0x02, 0x01, 0x07, 0x76, 0x00, 0x12, 0x81, 0x3f, 0x02, 0x12, 0x01,
+ 0x26, 0x01, 0x02, 0x08, 0x2d, 0x01, 0x02, 0x04, 0x3f, 0x02, 0x00, 0x86,
+ 0xe2, 0x00, 0x00, 0x8c, 0xff, 0x00, 0x10, 0x83, 0x50, 0x02, 0x10, 0x01,
+ 0x3f, 0x02, 0x10, 0x05, 0x60, 0x02, 0x00, 0x02, 0x42, 0x01, 0x10, 0x83,
+ 0x64, 0x02, 0x00, 0x02, 0x87, 0x00, 0x10, 0x83, 0x79, 0x02, 0x00, 0x02,
+ 0x87, 0x00, 0x10, 0x83, 0x64, 0x02, 0x00, 0x02, 0x87, 0x00, 0x10, 0x83,
+ 0x8e, 0x02, 0x00, 0x02, 0x87, 0x00, 0x00, 0x82, 0x9c, 0x02, 0x10, 0x83,
+ 0xa4, 0x02, 0x00, 0x02, 0x87, 0x00, 0x10, 0x83, 0xb1, 0x02, 0x00, 0x02,
+ 0x87, 0x00, 0xb9, 0x02, 0x00, 0x50, 0x69, 0x6b, 0x61, 0x4f, 0x62, 0x6a,
+ 0x00, 0x50, 0x69, 0x6b, 0x61, 0x4f, 0x62, 0x6a, 0x2e, 0x00, 0x2a, 0x00,
+ 0x50, 0x69, 0x6b, 0x61, 0x53, 0x74, 0x64, 0x4c, 0x69, 0x62, 0x00, 0x50,
+ 0x69, 0x6b, 0x61, 0x53, 0x74, 0x64, 0x44, 0x61, 0x74, 0x61, 0x00, 0x50,
+ 0x69, 0x6b, 0x61, 0x53, 0x74, 0x64, 0x4c, 0x69, 0x62, 0x2e, 0x4d, 0x65,
+ 0x6d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x72, 0x00, 0x6d, 0x65, 0x6d,
+ 0x00, 0x6d, 0x65, 0x6d, 0x2e, 0x72, 0x65, 0x73, 0x65, 0x74, 0x4d, 0x61,
+ 0x78, 0x00, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x51, 0x28,
+ 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x69, 0x6e,
+ 0x70, 0x75, 0x74, 0x2c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64,
+ 0x29, 0x00, 0x31, 0x00, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x54, 0x45, 0x53,
+ 0x54, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x00, 0x70, 0x72, 0x69, 0x6e, 0x74,
+ 0x00, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0x69,
+ 0x6e, 0x70, 0x75, 0x74, 0x00, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65,
+ 0x64, 0x00, 0x21, 0x3d, 0x00, 0x5b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5d,
+ 0x00, 0x5b, 0x69, 0x6e, 0x66, 0x6f, 0x5d, 0x20, 0x45, 0x78, 0x70, 0x65,
+ 0x63, 0x74, 0x65, 0x64, 0x3a, 0x00, 0x5b, 0x69, 0x6e, 0x66, 0x6f, 0x5d,
+ 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x3a, 0x00, 0x54, 0x72, 0x75, 0x65,
+ 0x00, 0x32, 0x00, 0x69, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x20, 0x6f, 0x72,
+ 0x20, 0x00, 0x2d, 0x31, 0x00, 0x5b, 0x20, 0x4f, 0x4b, 0x20, 0x20, 0x5d,
+ 0x00, 0x30, 0x00, 0x61, 0x00, 0x31, 0x30, 0x00, 0x72, 0x61, 0x6e, 0x67,
+ 0x65, 0x00, 0x69, 0x74, 0x65, 0x72, 0x00, 0x5f, 0x6c, 0x30, 0x00, 0x5f,
+ 0x72, 0x31, 0x00, 0x5f, 0x72, 0x32, 0x00, 0x5f, 0x6c, 0x30, 0x2e, 0x61,
+ 0x32, 0x00, 0x5f, 0x6c, 0x30, 0x2e, 0x61, 0x31, 0x00, 0x5f, 0x6c, 0x30,
+ 0x2e, 0x5f, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f, 0x00, 0x69, 0x00,
+ 0x35, 0x00, 0x3d, 0x3d, 0x00, 0x2b, 0x00, 0x66, 0x6f, 0x72, 0x5f, 0x69,
+ 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x00, 0x34,
+ 0x30, 0x00, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x45, 0x51, 0x00,
+ 0x66, 0x6f, 0x72, 0x5f, 0x69, 0x66, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b,
+ 0x00, 0x33, 0x00, 0x5f, 0x6c, 0x31, 0x00, 0x5f, 0x6c, 0x31, 0x2e, 0x61,
+ 0x32, 0x00, 0x5f, 0x6c, 0x31, 0x2e, 0x61, 0x31, 0x00, 0x5f, 0x6c, 0x31,
+ 0x2e, 0x5f, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f, 0x00, 0x6b, 0x00,
+ 0x66, 0x6f, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x5f, 0x72,
+ 0x61, 0x6e, 0x67, 0x65, 0x00, 0x33, 0x30, 0x00, 0x66, 0x6f, 0x72, 0x5f,
+ 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x34, 0x35, 0x00,
+ 0x50, 0x69, 0x6b, 0x61, 0x53, 0x74, 0x64, 0x44, 0x61, 0x74, 0x61, 0x2e,
+ 0x4c, 0x69, 0x73, 0x74, 0x00, 0x6c, 0x69, 0x73, 0x74, 0x00, 0x37, 0x00,
+ 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x00,
+ 0x65, 0x65, 0x65, 0x00, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x6c, 0x65, 0x6e,
+ 0x00, 0x6c, 0x65, 0x6e, 0x00, 0x69, 0x74, 0x65, 0x6d, 0x00, 0x6c, 0x69,
+ 0x73, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x00,
+ 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x00, 0x61, 0x31, 0x00,
+ 0x61, 0x32, 0x00, 0x72, 0x65, 0x73, 0x00, 0x50, 0x69, 0x6b, 0x61, 0x53,
+ 0x74, 0x64, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x00,
+ 0x64, 0x69, 0x63, 0x74, 0x00, 0x64, 0x69, 0x63, 0x74, 0x2e, 0x73, 0x65,
+ 0x74, 0x00, 0x62, 0x00, 0x64, 0x69, 0x63, 0x74, 0x2e, 0x72, 0x65, 0x6d,
+ 0x6f, 0x76, 0x65, 0x00, 0x64, 0x69, 0x63, 0x74, 0x2e, 0x67, 0x65, 0x74,
+ 0x00, 0x50, 0x69, 0x6b, 0x61, 0x53, 0x74, 0x64, 0x44, 0x61, 0x74, 0x61,
+ 0x5f, 0x32, 0x00, 0x6e, 0x75, 0x6d, 0x00, 0x6a, 0x00, 0x69, 0x73, 0x5f,
+ 0x70, 0x72, 0x69, 0x6d, 0x65, 0x00, 0x25, 0x00, 0x70, 0x72, 0x69, 0x6d,
+ 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x33, 0x30, 0x00,
+ 0x31, 0x32, 0x39, 0x00, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
+ 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,
+ 0x00, 0x5b, 0x55, 0x6e, 0x69, 0x74, 0x20, 0x54, 0x65, 0x73, 0x74, 0x73,
+ 0x20, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x5d, 0x00, 0x6d, 0x65,
+ 0x6d, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x78, 0x3a, 0x00,
+ 0x6d, 0x65, 0x6d, 0x2e, 0x6d, 0x61, 0x78, 0x00, 0x74, 0x65, 0x73, 0x74,
+ 0x5c, 0x72, 0x5c, 0x6e, 0x5c, 0x72, 0x5c, 0x6e, 0x00, 0x65, 0x6e, 0x64,
+ 0x5c, 0x72, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/bsp/pico-dev/pikascript/pikascript-api/compiler-info.txt b/bsp/pico-dev/pikascript/pikascript-api/compiler-info.txt
new file mode 100644
index 000000000..168682397
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/compiler-info.txt
@@ -0,0 +1 @@
+Compiler { dist_path: "pikascript-api/", source_path: "", class_list: {"PikaDebug": ClassInfo { this_class_name: "PikaDebug", this_class_name_without_file: "PikaDebug", super_class_name: "TinyObj", method_list: {"Debuger": MethodInfo { class_name: "PikaDebug", name: "Debuger", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: true }, "PikaDebug_Debuger": ClassInfo { this_class_name: "PikaDebug_Debuger", this_class_name_without_file: "Debuger", super_class_name: "TinyObj", method_list: {"__init__": MethodInfo { class_name: "PikaDebug_Debuger", name: "__init__", arg_list: None, return_type: None, is_constructor: false }, "set_trace": MethodInfo { class_name: "PikaDebug_Debuger", name: "set_trace", arg_list: None, return_type: None, is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaMain": ClassInfo { this_class_name: "PikaMain", this_class_name_without_file: "PikaMain", super_class_name: "PikaStdLib_SysObj", method_list: {}, object_list: {"PikaStdData": ObjectInfo { class_name: "PikaMain", name: "PikaStdData", import_class_name: "PikaStdData" }, "PikaStdLib": ObjectInfo { class_name: "PikaMain", name: "PikaStdLib", import_class_name: "PikaStdLib" }}, import_list: {}, script_list: Script { content: "@BEGIN@import PikaStdLib@END@@BEGIN@import PikaStdData@END@@BEGIN@@END@@BEGIN@mem = PikaStdLib.MemChecker()@END@@BEGIN@mem.resetMax()@END@@BEGIN@def EXPECT_EQ(test_name, input, expected):@END@@BEGIN@ print('-----TEST-----')@END@@BEGIN@ print(test_name)@END@@BEGIN@ if input != expected:@END@@BEGIN@ print('[Error]')@END@@BEGIN@ print(test_name)@END@@BEGIN@ print('[info] Expected:')@END@@BEGIN@ print(expected)@END@@BEGIN@ print('[info] Input:')@END@@BEGIN@ print(input)@END@@BEGIN@ # error@END@@BEGIN@ while True:@END@@BEGIN@ is_error = 1@END@@BEGIN@ else:@END@@BEGIN@ print('[ OK ]')@END@@BEGIN@@END@@BEGIN@a = 0@END@@BEGIN@for i in range(0, 10):@END@@BEGIN@ if i == 5:@END@@BEGIN@ continue@END@@BEGIN@ a = a + i@END@@BEGIN@EXPECT_EQ('for_if_continue', a, 40)@END@@BEGIN@ @END@@BEGIN@a = 0@END@@BEGIN@for i in range(0, 10):@END@@BEGIN@ if i == 5:@END@@BEGIN@ break@END@@BEGIN@ a = a + i@END@@BEGIN@EXPECT_EQ('for_if_break', a, 10)@END@@BEGIN@@END@@BEGIN@a = 0@END@@BEGIN@for i in range(0, 10):@END@@BEGIN@ for k in range(0, 3):@END@@BEGIN@ # print(k)@END@@BEGIN@ a = a + k@END@@BEGIN@EXPECT_EQ('for_for_in_range', a, 30)@END@@BEGIN@@END@@BEGIN@a = 0@END@@BEGIN@for i in range(0, 10):@END@@BEGIN@ # print(i)@END@@BEGIN@ a = a + i@END@@BEGIN@EXPECT_EQ('for_in_range', a, 45)@END@@BEGIN@@END@@BEGIN@list = PikaStdData.List()@END@@BEGIN@list.append(7)@END@@BEGIN@list.append('eee')@END@@BEGIN@len = list.len()@END@@BEGIN@for item in list:@END@@BEGIN@ # print(item)@END@@BEGIN@ a = item@END@@BEGIN@EXPECT_EQ('list_for_loop', a, 'eee')@END@@BEGIN@@END@@BEGIN@@END@@BEGIN@list = PikaStdData.List()@END@@BEGIN@list.append(7)@END@@BEGIN@list.append('eee')@END@@BEGIN@len = list.len()@END@@BEGIN@a1 = list.get(0)@END@@BEGIN@a2 = list.get(1)@END@@BEGIN@res = iter(list)@END@@BEGIN@EXPECT_EQ('iter', res, list)@END@@BEGIN@@END@@BEGIN@dict = PikaStdData.Dict()@END@@BEGIN@dict.set('a', 1)@END@@BEGIN@dict.set('b', 2)@END@@BEGIN@dict.remove('b')@END@@BEGIN@a = dict.get('a')@END@@BEGIN@b = dict.get('b')@END@@BEGIN@EXPECT_EQ('PikaStdData', a, 1)@END@@BEGIN@EXPECT_EQ('PikaStdData_2', b, 0)@END@@BEGIN@@END@@BEGIN@num = 0@END@@BEGIN@i = 2@END@@BEGIN@for i in range(2,30):@END@@BEGIN@ j=2@END@@BEGIN@ is_prime = 1@END@@BEGIN@ for j in range(2,i):@END@@BEGIN@ if i%j==0 :@END@@BEGIN@ is_prime = 0@END@@BEGIN@ break@END@@BEGIN@ if is_prime:@END@@BEGIN@ num = num + i@END@@BEGIN@EXPECT_EQ('prime_number_30', num, 129)@END@@BEGIN@@END@@BEGIN@@END@@BEGIN@print('====================')@END@@BEGIN@print('[Unit Tests Succeed]')@END@@BEGIN@print('====================')@END@@BEGIN@print('mem used max:')@END@@BEGIN@mem.max()@END@@BEGIN@@END@@BEGIN@@END@@BEGIN@print(\"test\\r\\n\\r\\n\")@END@@BEGIN@print(\"end\\r\\n\")@END@" }, is_package: false }, "PikaStdData": ClassInfo { this_class_name: "PikaStdData", this_class_name_without_file: "PikaStdData", super_class_name: "TinyObj", method_list: {"ByteArray": MethodInfo { class_name: "PikaStdData", name: "ByteArray", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }, "Dict": MethodInfo { class_name: "PikaStdData", name: "Dict", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }, "List": MethodInfo { class_name: "PikaStdData", name: "List", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }, "String": MethodInfo { class_name: "PikaStdData", name: "String", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: true }, "PikaStdData_ByteArray": ClassInfo { this_class_name: "PikaStdData_ByteArray", this_class_name_without_file: "ByteArray", super_class_name: "PikaStdData_List", method_list: {"fromString": MethodInfo { class_name: "PikaStdData_ByteArray", name: "fromString", arg_list: Some(ArgList { py_arg_list: "s:str", list: {"s": PyArg { py_type: PyType { type_name: "str" }, name: "s" }} }), return_type: None, is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdData_Dict": ClassInfo { this_class_name: "PikaStdData_Dict", this_class_name_without_file: "Dict", super_class_name: "TinyObj", method_list: {"__get__": MethodInfo { class_name: "PikaStdData_Dict", name: "__get__", arg_list: Some(ArgList { py_arg_list: "__key:any", list: {"__key": PyArg { py_type: PyType { type_name: "any" }, name: "__key" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__init__": MethodInfo { class_name: "PikaStdData_Dict", name: "__init__", arg_list: None, return_type: None, is_constructor: false }, "__iter__": MethodInfo { class_name: "PikaStdData_Dict", name: "__iter__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__next__": MethodInfo { class_name: "PikaStdData_Dict", name: "__next__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__set__": MethodInfo { class_name: "PikaStdData_Dict", name: "__set__", arg_list: Some(ArgList { py_arg_list: "__key:any,__val:any", list: {"__key": PyArg { py_type: PyType { type_name: "any" }, name: "__key" }, "__val": PyArg { py_type: PyType { type_name: "any" }, name: "__val" }} }), return_type: None, is_constructor: false }, "get": MethodInfo { class_name: "PikaStdData_Dict", name: "get", arg_list: Some(ArgList { py_arg_list: "key:str", list: {"key": PyArg { py_type: PyType { type_name: "str" }, name: "key" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "remove": MethodInfo { class_name: "PikaStdData_Dict", name: "remove", arg_list: Some(ArgList { py_arg_list: "key:str", list: {"key": PyArg { py_type: PyType { type_name: "str" }, name: "key" }} }), return_type: None, is_constructor: false }, "set": MethodInfo { class_name: "PikaStdData_Dict", name: "set", arg_list: Some(ArgList { py_arg_list: "key:str,arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }, "key": PyArg { py_type: PyType { type_name: "str" }, name: "key" }} }), return_type: None, is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdData_List": ClassInfo { this_class_name: "PikaStdData_List", this_class_name_without_file: "List", super_class_name: "TinyObj", method_list: {"__get__": MethodInfo { class_name: "PikaStdData_List", name: "__get__", arg_list: Some(ArgList { py_arg_list: "__key:any", list: {"__key": PyArg { py_type: PyType { type_name: "any" }, name: "__key" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__init__": MethodInfo { class_name: "PikaStdData_List", name: "__init__", arg_list: None, return_type: None, is_constructor: false }, "__iter__": MethodInfo { class_name: "PikaStdData_List", name: "__iter__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__next__": MethodInfo { class_name: "PikaStdData_List", name: "__next__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__set__": MethodInfo { class_name: "PikaStdData_List", name: "__set__", arg_list: Some(ArgList { py_arg_list: "__key:any,__val:any", list: {"__key": PyArg { py_type: PyType { type_name: "any" }, name: "__key" }, "__val": PyArg { py_type: PyType { type_name: "any" }, name: "__val" }} }), return_type: None, is_constructor: false }, "append": MethodInfo { class_name: "PikaStdData_List", name: "append", arg_list: Some(ArgList { py_arg_list: "arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }} }), return_type: None, is_constructor: false }, "get": MethodInfo { class_name: "PikaStdData_List", name: "get", arg_list: Some(ArgList { py_arg_list: "i:int", list: {"i": PyArg { py_type: PyType { type_name: "int" }, name: "i" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "len": MethodInfo { class_name: "PikaStdData_List", name: "len", arg_list: None, return_type: Some(PyType { type_name: "int" }), is_constructor: false }, "set": MethodInfo { class_name: "PikaStdData_List", name: "set", arg_list: Some(ArgList { py_arg_list: "i:int,arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }, "i": PyArg { py_type: PyType { type_name: "int" }, name: "i" }} }), return_type: None, is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdData_String": ClassInfo { this_class_name: "PikaStdData_String", this_class_name_without_file: "String", super_class_name: "TinyObj", method_list: {"__get__": MethodInfo { class_name: "PikaStdData_String", name: "__get__", arg_list: Some(ArgList { py_arg_list: "__key:any", list: {"__key": PyArg { py_type: PyType { type_name: "any" }, name: "__key" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__init__": MethodInfo { class_name: "PikaStdData_String", name: "__init__", arg_list: Some(ArgList { py_arg_list: "s:str", list: {"s": PyArg { py_type: PyType { type_name: "str" }, name: "s" }} }), return_type: None, is_constructor: false }, "__iter__": MethodInfo { class_name: "PikaStdData_String", name: "__iter__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__next__": MethodInfo { class_name: "PikaStdData_String", name: "__next__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__set__": MethodInfo { class_name: "PikaStdData_String", name: "__set__", arg_list: Some(ArgList { py_arg_list: "__key:any,__val:any", list: {"__key": PyArg { py_type: PyType { type_name: "any" }, name: "__key" }, "__val": PyArg { py_type: PyType { type_name: "any" }, name: "__val" }} }), return_type: None, is_constructor: false }, "get": MethodInfo { class_name: "PikaStdData_String", name: "get", arg_list: None, return_type: Some(PyType { type_name: "str" }), is_constructor: false }, "set": MethodInfo { class_name: "PikaStdData_String", name: "set", arg_list: Some(ArgList { py_arg_list: "s:str", list: {"s": PyArg { py_type: PyType { type_name: "str" }, name: "s" }} }), return_type: None, is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdLib": ClassInfo { this_class_name: "PikaStdLib", this_class_name_without_file: "PikaStdLib", super_class_name: "TinyObj", method_list: {"MemChecker": MethodInfo { class_name: "PikaStdLib", name: "MemChecker", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }, "PikaObj": MethodInfo { class_name: "PikaStdLib", name: "PikaObj", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }, "RangeObj": MethodInfo { class_name: "PikaStdLib", name: "RangeObj", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }, "StringObj": MethodInfo { class_name: "PikaStdLib", name: "StringObj", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }, "SysObj": MethodInfo { class_name: "PikaStdLib", name: "SysObj", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: true }, "PikaStdLib_MemChecker": ClassInfo { this_class_name: "PikaStdLib_MemChecker", this_class_name_without_file: "MemChecker", super_class_name: "TinyObj", method_list: {"getMax": MethodInfo { class_name: "PikaStdLib_MemChecker", name: "getMax", arg_list: None, return_type: Some(PyType { type_name: "float" }), is_constructor: false }, "getNow": MethodInfo { class_name: "PikaStdLib_MemChecker", name: "getNow", arg_list: None, return_type: Some(PyType { type_name: "float" }), is_constructor: false }, "max": MethodInfo { class_name: "PikaStdLib_MemChecker", name: "max", arg_list: None, return_type: None, is_constructor: false }, "now": MethodInfo { class_name: "PikaStdLib_MemChecker", name: "now", arg_list: None, return_type: None, is_constructor: false }, "resetMax": MethodInfo { class_name: "PikaStdLib_MemChecker", name: "resetMax", arg_list: None, return_type: None, is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdLib_PikaObj": ClassInfo { this_class_name: "PikaStdLib_PikaObj", this_class_name_without_file: "PikaObj", super_class_name: "TinyObj", method_list: {}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdLib_RangeObj": ClassInfo { this_class_name: "PikaStdLib_RangeObj", this_class_name_without_file: "RangeObj", super_class_name: "TinyObj", method_list: {"__next__": MethodInfo { class_name: "PikaStdLib_RangeObj", name: "__next__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdLib_StringObj": ClassInfo { this_class_name: "PikaStdLib_StringObj", this_class_name_without_file: "StringObj", super_class_name: "TinyObj", method_list: {"__next__": MethodInfo { class_name: "PikaStdLib_StringObj", name: "__next__", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdLib_SysObj": ClassInfo { this_class_name: "PikaStdLib_SysObj", this_class_name_without_file: "SysObj", super_class_name: "BaseObj", method_list: {"__get__": MethodInfo { class_name: "PikaStdLib_SysObj", name: "__get__", arg_list: Some(ArgList { py_arg_list: "obj:any,key:any", list: {"key": PyArg { py_type: PyType { type_name: "any" }, name: "key" }, "obj": PyArg { py_type: PyType { type_name: "any" }, name: "obj" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "__set__": MethodInfo { class_name: "PikaStdLib_SysObj", name: "__set__", arg_list: Some(ArgList { py_arg_list: "obj:any,key:any,val:any,obj_str:str", list: {"key": PyArg { py_type: PyType { type_name: "any" }, name: "key" }, "obj": PyArg { py_type: PyType { type_name: "any" }, name: "obj" }, "obj_str": PyArg { py_type: PyType { type_name: "str" }, name: "obj_str" }, "val": PyArg { py_type: PyType { type_name: "any" }, name: "val" }} }), return_type: None, is_constructor: false }, "dict": MethodInfo { class_name: "PikaStdLib_SysObj", name: "dict", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "float": MethodInfo { class_name: "PikaStdLib_SysObj", name: "float", arg_list: Some(ArgList { py_arg_list: "arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }} }), return_type: Some(PyType { type_name: "float" }), is_constructor: false }, "int": MethodInfo { class_name: "PikaStdLib_SysObj", name: "int", arg_list: Some(ArgList { py_arg_list: "arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }} }), return_type: Some(PyType { type_name: "int" }), is_constructor: false }, "iter": MethodInfo { class_name: "PikaStdLib_SysObj", name: "iter", arg_list: Some(ArgList { py_arg_list: "arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "len": MethodInfo { class_name: "PikaStdLib_SysObj", name: "len", arg_list: Some(ArgList { py_arg_list: "arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }} }), return_type: Some(PyType { type_name: "int" }), is_constructor: false }, "list": MethodInfo { class_name: "PikaStdLib_SysObj", name: "list", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "range": MethodInfo { class_name: "PikaStdLib_SysObj", name: "range", arg_list: Some(ArgList { py_arg_list: "a1:int,a2:int", list: {"a1": PyArg { py_type: PyType { type_name: "int" }, name: "a1" }, "a2": PyArg { py_type: PyType { type_name: "int" }, name: "a2" }} }), return_type: Some(PyType { type_name: "any" }), is_constructor: false }, "remove": MethodInfo { class_name: "PikaStdLib_SysObj", name: "remove", arg_list: Some(ArgList { py_arg_list: "argPath:str", list: {"argPath": PyArg { py_type: PyType { type_name: "str" }, name: "argPath" }} }), return_type: None, is_constructor: false }, "str": MethodInfo { class_name: "PikaStdLib_SysObj", name: "str", arg_list: Some(ArgList { py_arg_list: "arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }} }), return_type: Some(PyType { type_name: "str" }), is_constructor: false }, "type": MethodInfo { class_name: "PikaStdLib_SysObj", name: "type", arg_list: Some(ArgList { py_arg_list: "arg:any", list: {"arg": PyArg { py_type: PyType { type_name: "any" }, name: "arg" }} }), return_type: None, is_constructor: false }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: false }, "PikaStdTask": ClassInfo { this_class_name: "PikaStdTask", this_class_name_without_file: "PikaStdTask", super_class_name: "TinyObj", method_list: {"Task": MethodInfo { class_name: "PikaStdTask", name: "Task", arg_list: None, return_type: Some(PyType { type_name: "any" }), is_constructor: true }}, object_list: {}, import_list: {}, script_list: Script { content: "" }, is_package: true }, "PikaStdTask_Task": ClassInfo { this_class_name: "PikaStdTask_Task", this_class_name_without_file: "Task", super_class_name: "TinyObj", method_list: {"__init__": MethodInfo { class_name: "PikaStdTask_Task", name: "__init__", arg_list: None, return_type: None, is_constructor: false }, "call_always": MethodInfo { class_name: "PikaStdTask_Task", name: "call_always", arg_list: Some(ArgList { py_arg_list: "fun_todo:any", list: {"fun_todo": PyArg { py_type: PyType { type_name: "any" }, name: "fun_todo" }} }), return_type: None, is_constructor: false }, "call_period_ms": MethodInfo { class_name: "PikaStdTask_Task", name: "call_period_ms", arg_list: Some(ArgList { py_arg_list: "fun_todo:any,period_ms:int", list: {"fun_todo": PyArg { py_type: PyType { type_name: "any" }, name: "fun_todo" }, "period_ms": PyArg { py_type: PyType { type_name: "int" }, name: "period_ms" }} }), return_type: None, is_constructor: false }, "call_when": MethodInfo { class_name: "PikaStdTask_Task", name: "call_when", arg_list: Some(ArgList { py_arg_list: "fun_todo:any,fun_when:any", list: {"fun_todo": PyArg { py_type: PyType { type_name: "any" }, name: "fun_todo" }, "fun_when": PyArg { py_type: PyType { type_name: "any" }, name: "fun_when" }} }), return_type: None, is_constructor: false }, "platformGetTick": MethodInfo { class_name: "PikaStdTask_Task", name: "platformGetTick", arg_list: None, return_type: None, is_constructor: false }, "run_forever": MethodInfo { class_name: "PikaStdTask_Task", name: "run_forever", arg_list: None, return_type: None, is_constructor: false }, "run_once": MethodInfo { class_name: "PikaStdTask_Task", name: "run_once", arg_list: None, return_type: None, is_constructor: false }, "run_until_ms": MethodInfo { class_name: "PikaStdTask_Task", name: "run_until_ms", arg_list: Some(ArgList { py_arg_list: "until_ms:int", list: {"until_ms": PyArg { py_type: PyType { type_name: "int" }, name: "until_ms" }} }), return_type: None, is_constructor: false }}, object_list: {"calls": ObjectInfo { class_name: "PikaStdTask_Task", name: "calls", import_class_name: "PikaStdData_List" }}, import_list: {}, script_list: Script { content: "" }, is_package: false }}, class_now_name: Some("PikaDebug_Debuger"), package_now_name: Some("PikaDebug"), compiled_list: ["main", "PikaStdLib", "PikaStdData", "PikaStdTask", "PikaStdData", "PikaStdData", "PikaDebug"] }
\ No newline at end of file
diff --git a/bsp/pico-dev/pikascript/pikascript-api/pikaModules.py.a b/bsp/pico-dev/pikascript/pikascript-api/pikaModules.py.a
new file mode 100644
index 000000000..cb6cdeee7
Binary files /dev/null and b/bsp/pico-dev/pikascript/pikascript-api/pikaModules.py.a differ
diff --git a/bsp/pico-dev/pikascript/pikascript-api/pikaScript.c b/bsp/pico-dev/pikascript/pikascript-api/pikaScript.c
new file mode 100644
index 000000000..570f71be8
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/pikaScript.c
@@ -0,0 +1,109 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#include "PikaMain.h"
+#include
+#include
+
+PikaObj *__pikaMain;
+PikaObj *pikaScriptInit(void){
+ __platform_printf("======[pikascript packages installed]======\r\n");
+ __platform_printf("===========================================\r\n");
+ __pikaMain = newRootObj("pikaMain", New_PikaMain);
+ extern unsigned char pikaModules_py_a[];
+ obj_linkLibrary(__pikaMain, pikaModules_py_a);
+#if PIKA_INIT_STRING_ENABLE
+ obj_run(__pikaMain,
+ "import PikaStdLib\n"
+ "import PikaStdData\n"
+ "mem = PikaStdLib.MemChecker()\n"
+ "mem.resetMax()\n"
+ "def EXPECT_EQ(test_name, input, expected):\n"
+ " print('-----TEST-----')\n"
+ " print(test_name)\n"
+ " if input != expected:\n"
+ " print('[Error]')\n"
+ " print(test_name)\n"
+ " print('[info] Expected:')\n"
+ " print(expected)\n"
+ " print('[info] Input:')\n"
+ " print(input)\n"
+ " # error\n"
+ " while True:\n"
+ " is_error = 1\n"
+ " else:\n"
+ " print('[ OK ]')\n"
+ "a = 0\n"
+ "for i in range(0, 10):\n"
+ " if i == 5:\n"
+ " continue\n"
+ " a = a + i\n"
+ "EXPECT_EQ('for_if_continue', a, 40)\n"
+ " \n"
+ "a = 0\n"
+ "for i in range(0, 10):\n"
+ " if i == 5:\n"
+ " break\n"
+ " a = a + i\n"
+ "EXPECT_EQ('for_if_break', a, 10)\n"
+ "a = 0\n"
+ "for i in range(0, 10):\n"
+ " for k in range(0, 3):\n"
+ " # print(k)\n"
+ " a = a + k\n"
+ "EXPECT_EQ('for_for_in_range', a, 30)\n"
+ "a = 0\n"
+ "for i in range(0, 10):\n"
+ " # print(i)\n"
+ " a = a + i\n"
+ "EXPECT_EQ('for_in_range', a, 45)\n"
+ "list = PikaStdData.List()\n"
+ "list.append(7)\n"
+ "list.append('eee')\n"
+ "len = list.len()\n"
+ "for item in list:\n"
+ " # print(item)\n"
+ " a = item\n"
+ "EXPECT_EQ('list_for_loop', a, 'eee')\n"
+ "list = PikaStdData.List()\n"
+ "list.append(7)\n"
+ "list.append('eee')\n"
+ "len = list.len()\n"
+ "a1 = list.get(0)\n"
+ "a2 = list.get(1)\n"
+ "res = iter(list)\n"
+ "EXPECT_EQ('iter', res, list)\n"
+ "dict = PikaStdData.Dict()\n"
+ "dict.set('a', 1)\n"
+ "dict.set('b', 2)\n"
+ "dict.remove('b')\n"
+ "a = dict.get('a')\n"
+ "b = dict.get('b')\n"
+ "EXPECT_EQ('PikaStdData', a, 1)\n"
+ "EXPECT_EQ('PikaStdData_2', b, 0)\n"
+ "num = 0\n"
+ "i = 2\n"
+ "for i in range(2,30):\n"
+ " j=2\n"
+ " is_prime = 1\n"
+ " for j in range(2,i):\n"
+ " if i%j==0 :\n"
+ " is_prime = 0\n"
+ " break\n"
+ " if is_prime:\n"
+ " num = num + i\n"
+ "EXPECT_EQ('prime_number_30', num, 129)\n"
+ "print('====================')\n"
+ "print('[Unit Tests Succeed]')\n"
+ "print('====================')\n"
+ "print('mem used max:')\n"
+ "mem.max()\n"
+ "print(\"test\\r\\n\\r\\n\")\n"
+ "print(\"end\\r\\n\")\n"
+ "\n");
+#else
+ obj_runModule(__pikaMain, "main");
+#endif
+ return __pikaMain;
+}
+
diff --git a/bsp/pico-dev/pikascript/pikascript-api/pikaScript.h b/bsp/pico-dev/pikascript/pikascript-api/pikaScript.h
new file mode 100644
index 000000000..3b5c169f2
--- /dev/null
+++ b/bsp/pico-dev/pikascript/pikascript-api/pikaScript.h
@@ -0,0 +1,13 @@
+/* ******************************** */
+/* Warning! Don't modify this file! */
+/* ******************************** */
+#ifndef __pikaScript__H
+#define __pikaScript__H
+#include
+#include
+#include "PikaObj.h"
+#include "PikaMain.h"
+
+PikaObj * pikaScriptInit(void);
+
+#endif
diff --git a/bsp/pico-dev/pikascript/rust-msc-latest-win10.exe b/bsp/pico-dev/pikascript/rust-msc-latest-win10.exe
index 2d9fee590..e84369603 100644
Binary files a/bsp/pico-dev/pikascript/rust-msc-latest-win10.exe and b/bsp/pico-dev/pikascript/rust-msc-latest-win10.exe differ