This commit is contained in:
BLUELOVETH 2023-07-19 13:41:25 +08:00
parent db321abdae
commit 6d415472e0
3 changed files with 68 additions and 65 deletions

View File

@ -27,35 +27,35 @@ PK_EXPORT bool pkpy_exec(pkpy_vm*, const char* source);
PK_EXPORT bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, const char* module);
/* Stack Manipulation */
PK_EXPORT bool pkpy_dup(pkpy_vm*, int);
PK_EXPORT bool pkpy_pop(pkpy_vm*, int);
PK_EXPORT bool pkpy_dup(pkpy_vm*, int i);
PK_EXPORT bool pkpy_pop(pkpy_vm*, int n);
PK_EXPORT bool pkpy_pop_top(pkpy_vm*);
PK_EXPORT bool pkpy_dup_top(pkpy_vm*);
PK_EXPORT bool pkpy_rot_two(pkpy_vm*);
PK_EXPORT int pkpy_stack_size(pkpy_vm*);
// int
PK_EXPORT bool pkpy_push_int(pkpy_vm*, int);
PK_EXPORT bool pkpy_push_int(pkpy_vm*, int val);
PK_EXPORT bool pkpy_is_int(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_int(pkpy_vm*, int i, int* out);
// float
PK_EXPORT bool pkpy_push_float(pkpy_vm*, float);
PK_EXPORT bool pkpy_push_float(pkpy_vm*, float val);
PK_EXPORT bool pkpy_is_float(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_float(pkpy_vm*, int i, float* out);
// bool
PK_EXPORT bool pkpy_push_bool(pkpy_vm*, bool);
PK_EXPORT bool pkpy_push_bool(pkpy_vm*, bool val);
PK_EXPORT bool pkpy_is_bool(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_bool(pkpy_vm*, int i, bool* out);
// string
PK_EXPORT bool pkpy_push_string(pkpy_vm*, pkpy_CString);
PK_EXPORT bool pkpy_push_string(pkpy_vm*, pkpy_CString val);
PK_EXPORT bool pkpy_is_string(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_string(pkpy_vm*, int i, pkpy_CString* out);
// void_p
PK_EXPORT bool pkpy_push_voidp(pkpy_vm*, void*);
PK_EXPORT bool pkpy_push_voidp(pkpy_vm*, void* val);
PK_EXPORT bool pkpy_is_voidp(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_voidp(pkpy_vm*, int i, void** out);
@ -65,21 +65,21 @@ PK_EXPORT bool pkpy_is_none(pkpy_vm*, int i);
// special push
PK_EXPORT bool pkpy_push_null(pkpy_vm*);
PK_EXPORT bool pkpy_push_function(pkpy_vm*, const char*, pkpy_CFunction);
PK_EXPORT bool pkpy_push_module(pkpy_vm*, const char*);
PK_EXPORT bool pkpy_push_function(pkpy_vm*, const char* sig, pkpy_CFunction);
PK_EXPORT bool pkpy_push_module(pkpy_vm*, const char* name);
// some opt
PK_EXPORT bool pkpy_getattr(pkpy_vm*, pkpy_CName);
PK_EXPORT bool pkpy_setattr(pkpy_vm*, pkpy_CName);
PK_EXPORT bool pkpy_getglobal(pkpy_vm*, pkpy_CName);
PK_EXPORT bool pkpy_setglobal(pkpy_vm*, pkpy_CName);
PK_EXPORT bool pkpy_getattr(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_setattr(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_getglobal(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_setglobal(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_eval(pkpy_vm*, const char* source);
PK_EXPORT bool pkpy_unpack_sequence(pkpy_vm*, int size);
PK_EXPORT bool pkpy_get_unbound_method(pkpy_vm*, pkpy_CName);
PK_EXPORT bool pkpy_get_unbound_method(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_py_repr(pkpy_vm*);
/* Error Handling */
PK_EXPORT bool pkpy_error(pkpy_vm*, const char* name, pkpy_CString);
PK_EXPORT bool pkpy_error(pkpy_vm*, const char* name, pkpy_CString msg);
PK_EXPORT bool pkpy_check_error(pkpy_vm*);
PK_EXPORT bool pkpy_clear_error(pkpy_vm*, char** message);
@ -88,9 +88,9 @@ PK_EXPORT bool pkpy_vectorcall(pkpy_vm*, int argc);
/* Special APIs */
PK_EXPORT void pkpy_free(void* p);
PK_EXPORT pkpy_CString pkpy_string(const char*);
PK_EXPORT pkpy_CName pkpy_name(const char*);
PK_EXPORT pkpy_CString pkpy_name_to_string(pkpy_CName);
PK_EXPORT pkpy_CString pkpy_string(const char* s);
PK_EXPORT pkpy_CName pkpy_name(const char* s);
PK_EXPORT pkpy_CString pkpy_name_to_string(pkpy_CName name);
PK_EXPORT void pkpy_compile_to_string(pkpy_vm*, const char* source, const char* filename, int mode, bool* ok, char** out);
/* REPL */

View File

@ -13,6 +13,9 @@ for line in lines:
assert body.endswith(";")
body = body[:-1]
if '(pkpy_vm*' in body:
body = body.replace('(pkpy_vm*', '(pkpy_vm* vm')
if ret == 'void':
mock_string = ''
else:
@ -22,7 +25,7 @@ for line in lines:
ret + ' ' + body + ' {\n' + mock_string + '\n}\n'
)
with open('src2/pocketpy_c.cpp', 'w') as f:
with open('src2/pocketpy_c.c', 'w') as f:
f.write('''
#include "pocketpy_c.h"

View File

@ -10,206 +10,206 @@ pkpy_vm* pkpy_new_vm(bool enable_os) {
return returnValue;
}
void pkpy_delete_vm(pkpy_vm*) {
void pkpy_delete_vm(pkpy_vm* vm) {
}
bool pkpy_exec(pkpy_vm*, const char* source) {
bool pkpy_exec(pkpy_vm* vm, const char* source) {
bool returnValue;
return returnValue;
}
bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, const char* module) {
bool pkpy_exec_2(pkpy_vm* vm, const char* source, const char* filename, int mode, const char* module) {
bool returnValue;
return returnValue;
}
bool pkpy_dup(pkpy_vm*, int) {
bool pkpy_dup(pkpy_vm* vm, int i) {
bool returnValue;
return returnValue;
}
bool pkpy_pop(pkpy_vm*, int) {
bool pkpy_pop(pkpy_vm* vm, int n) {
bool returnValue;
return returnValue;
}
bool pkpy_pop_top(pkpy_vm*) {
bool pkpy_pop_top(pkpy_vm* vm) {
bool returnValue;
return returnValue;
}
bool pkpy_dup_top(pkpy_vm*) {
bool pkpy_dup_top(pkpy_vm* vm) {
bool returnValue;
return returnValue;
}
bool pkpy_rot_two(pkpy_vm*) {
bool pkpy_rot_two(pkpy_vm* vm) {
bool returnValue;
return returnValue;
}
int pkpy_stack_size(pkpy_vm*) {
int pkpy_stack_size(pkpy_vm* vm) {
int returnValue;
return returnValue;
}
bool pkpy_push_int(pkpy_vm*, int) {
bool pkpy_push_int(pkpy_vm* vm, int val) {
bool returnValue;
return returnValue;
}
bool pkpy_is_int(pkpy_vm*, int i) {
bool pkpy_is_int(pkpy_vm* vm, int i) {
bool returnValue;
return returnValue;
}
bool pkpy_to_int(pkpy_vm*, int i, int* out) {
bool pkpy_to_int(pkpy_vm* vm, int i, int* out) {
bool returnValue;
return returnValue;
}
bool pkpy_push_float(pkpy_vm*, float) {
bool pkpy_push_float(pkpy_vm* vm, float val) {
bool returnValue;
return returnValue;
}
bool pkpy_is_float(pkpy_vm*, int i) {
bool pkpy_is_float(pkpy_vm* vm, int i) {
bool returnValue;
return returnValue;
}
bool pkpy_to_float(pkpy_vm*, int i, float* out) {
bool pkpy_to_float(pkpy_vm* vm, int i, float* out) {
bool returnValue;
return returnValue;
}
bool pkpy_push_bool(pkpy_vm*, bool) {
bool pkpy_push_bool(pkpy_vm* vm, bool val) {
bool returnValue;
return returnValue;
}
bool pkpy_is_bool(pkpy_vm*, int i) {
bool pkpy_is_bool(pkpy_vm* vm, int i) {
bool returnValue;
return returnValue;
}
bool pkpy_to_bool(pkpy_vm*, int i, bool* out) {
bool pkpy_to_bool(pkpy_vm* vm, int i, bool* out) {
bool returnValue;
return returnValue;
}
bool pkpy_push_string(pkpy_vm*, pkpy_CString) {
bool pkpy_push_string(pkpy_vm* vm, pkpy_CString val) {
bool returnValue;
return returnValue;
}
bool pkpy_is_string(pkpy_vm*, int i) {
bool pkpy_is_string(pkpy_vm* vm, int i) {
bool returnValue;
return returnValue;
}
bool pkpy_to_string(pkpy_vm*, int i, pkpy_CString* out) {
bool pkpy_to_string(pkpy_vm* vm, int i, pkpy_CString* out) {
bool returnValue;
return returnValue;
}
bool pkpy_push_voidp(pkpy_vm*, void*) {
bool pkpy_push_voidp(pkpy_vm* vm, void* val) {
bool returnValue;
return returnValue;
}
bool pkpy_is_voidp(pkpy_vm*, int i) {
bool pkpy_is_voidp(pkpy_vm* vm, int i) {
bool returnValue;
return returnValue;
}
bool pkpy_to_voidp(pkpy_vm*, int i, void** out) {
bool pkpy_to_voidp(pkpy_vm* vm, int i, void** out) {
bool returnValue;
return returnValue;
}
bool pkpy_push_none(pkpy_vm*) {
bool pkpy_push_none(pkpy_vm* vm) {
bool returnValue;
return returnValue;
}
bool pkpy_is_none(pkpy_vm*, int i) {
bool pkpy_is_none(pkpy_vm* vm, int i) {
bool returnValue;
return returnValue;
}
bool pkpy_push_null(pkpy_vm*) {
bool pkpy_push_null(pkpy_vm* vm) {
bool returnValue;
return returnValue;
}
bool pkpy_push_function(pkpy_vm*, const char*, pkpy_CFunction) {
bool pkpy_push_function(pkpy_vm* vm, const char* sig, pkpy_CFunction) {
bool returnValue;
return returnValue;
}
bool pkpy_push_module(pkpy_vm*, const char*) {
bool pkpy_push_module(pkpy_vm* vm, const char* name) {
bool returnValue;
return returnValue;
}
bool pkpy_getattr(pkpy_vm*, pkpy_CName) {
bool pkpy_getattr(pkpy_vm* vm, pkpy_CName name) {
bool returnValue;
return returnValue;
}
bool pkpy_setattr(pkpy_vm*, pkpy_CName) {
bool pkpy_setattr(pkpy_vm* vm, pkpy_CName name) {
bool returnValue;
return returnValue;
}
bool pkpy_getglobal(pkpy_vm*, pkpy_CName) {
bool pkpy_getglobal(pkpy_vm* vm, pkpy_CName name) {
bool returnValue;
return returnValue;
}
bool pkpy_setglobal(pkpy_vm*, pkpy_CName) {
bool pkpy_setglobal(pkpy_vm* vm, pkpy_CName name) {
bool returnValue;
return returnValue;
}
bool pkpy_eval(pkpy_vm*, const char* source) {
bool pkpy_eval(pkpy_vm* vm, const char* source) {
bool returnValue;
return returnValue;
}
bool pkpy_unpack_sequence(pkpy_vm*, int size) {
bool pkpy_unpack_sequence(pkpy_vm* vm, int size) {
bool returnValue;
return returnValue;
}
bool pkpy_get_unbound_method(pkpy_vm*, pkpy_CName) {
bool pkpy_get_unbound_method(pkpy_vm* vm, pkpy_CName name) {
bool returnValue;
return returnValue;
}
bool pkpy_py_repr(pkpy_vm*) {
bool pkpy_py_repr(pkpy_vm* vm) {
bool returnValue;
return returnValue;
}
bool pkpy_error(pkpy_vm*, const char* name, pkpy_CString) {
bool pkpy_error(pkpy_vm* vm, const char* name, pkpy_CString msg) {
bool returnValue;
return returnValue;
}
bool pkpy_check_error(pkpy_vm*) {
bool pkpy_check_error(pkpy_vm* vm) {
bool returnValue;
return returnValue;
}
bool pkpy_clear_error(pkpy_vm*, char** message) {
bool pkpy_clear_error(pkpy_vm* vm, char** message) {
bool returnValue;
return returnValue;
}
bool pkpy_vectorcall(pkpy_vm*, int argc) {
bool pkpy_vectorcall(pkpy_vm* vm, int argc) {
bool returnValue;
return returnValue;
}
@ -218,26 +218,26 @@ void pkpy_free(void* p) {
}
pkpy_CString pkpy_string(const char*) {
pkpy_CString pkpy_string(const char* s) {
pkpy_CString returnValue;
return returnValue;
}
pkpy_CName pkpy_name(const char*) {
pkpy_CName pkpy_name(const char* s) {
pkpy_CName returnValue;
return returnValue;
}
pkpy_CString pkpy_name_to_string(pkpy_CName) {
pkpy_CString pkpy_name_to_string(pkpy_CName name) {
pkpy_CString returnValue;
return returnValue;
}
void pkpy_compile_to_string(pkpy_vm*, const char* source, const char* filename, int mode, bool* ok, char** out) {
void pkpy_compile_to_string(pkpy_vm* vm, const char* source, const char* filename, int mode, bool* ok, char** out) {
}
void* pkpy_new_repl(pkpy_vm* vm) {
void* pkpy_new_repl(pkpy_vm* vm vm) {
void* returnValue;
return returnValue;
}