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); PK_EXPORT bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, const char* module);
/* Stack Manipulation */ /* Stack Manipulation */
PK_EXPORT bool pkpy_dup(pkpy_vm*, int); PK_EXPORT bool pkpy_dup(pkpy_vm*, int i);
PK_EXPORT bool pkpy_pop(pkpy_vm*, int); PK_EXPORT bool pkpy_pop(pkpy_vm*, int n);
PK_EXPORT bool pkpy_pop_top(pkpy_vm*); PK_EXPORT bool pkpy_pop_top(pkpy_vm*);
PK_EXPORT bool pkpy_dup_top(pkpy_vm*); PK_EXPORT bool pkpy_dup_top(pkpy_vm*);
PK_EXPORT bool pkpy_rot_two(pkpy_vm*); PK_EXPORT bool pkpy_rot_two(pkpy_vm*);
PK_EXPORT int pkpy_stack_size(pkpy_vm*); PK_EXPORT int pkpy_stack_size(pkpy_vm*);
// int // 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_is_int(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_int(pkpy_vm*, int i, int* out); PK_EXPORT bool pkpy_to_int(pkpy_vm*, int i, int* out);
// float // 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_is_float(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_float(pkpy_vm*, int i, float* out); PK_EXPORT bool pkpy_to_float(pkpy_vm*, int i, float* out);
// bool // 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_is_bool(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_bool(pkpy_vm*, int i, bool* out); PK_EXPORT bool pkpy_to_bool(pkpy_vm*, int i, bool* out);
// string // 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_is_string(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_string(pkpy_vm*, int i, pkpy_CString* out); PK_EXPORT bool pkpy_to_string(pkpy_vm*, int i, pkpy_CString* out);
// void_p // 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_is_voidp(pkpy_vm*, int i);
PK_EXPORT bool pkpy_to_voidp(pkpy_vm*, int i, void** out); 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 // special push
PK_EXPORT bool pkpy_push_null(pkpy_vm*); 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_function(pkpy_vm*, const char* sig, pkpy_CFunction);
PK_EXPORT bool pkpy_push_module(pkpy_vm*, const char*); PK_EXPORT bool pkpy_push_module(pkpy_vm*, const char* name);
// some opt // some opt
PK_EXPORT bool pkpy_getattr(pkpy_vm*, pkpy_CName); PK_EXPORT bool pkpy_getattr(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_setattr(pkpy_vm*, pkpy_CName); PK_EXPORT bool pkpy_setattr(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_getglobal(pkpy_vm*, pkpy_CName); PK_EXPORT bool pkpy_getglobal(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_setglobal(pkpy_vm*, pkpy_CName); PK_EXPORT bool pkpy_setglobal(pkpy_vm*, pkpy_CName name);
PK_EXPORT bool pkpy_eval(pkpy_vm*, const char* source); PK_EXPORT bool pkpy_eval(pkpy_vm*, const char* source);
PK_EXPORT bool pkpy_unpack_sequence(pkpy_vm*, int size); 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*); PK_EXPORT bool pkpy_py_repr(pkpy_vm*);
/* Error Handling */ /* 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_check_error(pkpy_vm*);
PK_EXPORT bool pkpy_clear_error(pkpy_vm*, char** message); 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 */ /* Special APIs */
PK_EXPORT void pkpy_free(void* p); PK_EXPORT void pkpy_free(void* p);
PK_EXPORT pkpy_CString pkpy_string(const char*); PK_EXPORT pkpy_CString pkpy_string(const char* s);
PK_EXPORT pkpy_CName pkpy_name(const char*); PK_EXPORT pkpy_CName pkpy_name(const char* s);
PK_EXPORT pkpy_CString pkpy_name_to_string(pkpy_CName); 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); PK_EXPORT void pkpy_compile_to_string(pkpy_vm*, const char* source, const char* filename, int mode, bool* ok, char** out);
/* REPL */ /* REPL */

View File

@ -13,6 +13,9 @@ for line in lines:
assert body.endswith(";") assert body.endswith(";")
body = body[:-1] body = body[:-1]
if '(pkpy_vm*' in body:
body = body.replace('(pkpy_vm*', '(pkpy_vm* vm')
if ret == 'void': if ret == 'void':
mock_string = '' mock_string = ''
else: else:
@ -22,7 +25,7 @@ for line in lines:
ret + ' ' + body + ' {\n' + mock_string + '\n}\n' 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(''' f.write('''
#include "pocketpy_c.h" #include "pocketpy_c.h"

View File

@ -10,206 +10,206 @@ pkpy_vm* pkpy_new_vm(bool enable_os) {
return returnValue; 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; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_dup(pkpy_vm*, int) { bool pkpy_dup(pkpy_vm* vm, int i) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_pop(pkpy_vm*, int) { bool pkpy_pop(pkpy_vm* vm, int n) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_pop_top(pkpy_vm*) { bool pkpy_pop_top(pkpy_vm* vm) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_dup_top(pkpy_vm*) { bool pkpy_dup_top(pkpy_vm* vm) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_rot_two(pkpy_vm*) { bool pkpy_rot_two(pkpy_vm* vm) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
int pkpy_stack_size(pkpy_vm*) { int pkpy_stack_size(pkpy_vm* vm) {
int returnValue; int returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_int(pkpy_vm*, int) { bool pkpy_push_int(pkpy_vm* vm, int val) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_is_int(pkpy_vm*, int i) { bool pkpy_is_int(pkpy_vm* vm, int i) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_float(pkpy_vm*, float) { bool pkpy_push_float(pkpy_vm* vm, float val) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_is_float(pkpy_vm*, int i) { bool pkpy_is_float(pkpy_vm* vm, int i) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_bool(pkpy_vm*, bool) { bool pkpy_push_bool(pkpy_vm* vm, bool val) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_is_bool(pkpy_vm*, int i) { bool pkpy_is_bool(pkpy_vm* vm, int i) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_string(pkpy_vm*, pkpy_CString) { bool pkpy_push_string(pkpy_vm* vm, pkpy_CString val) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_is_string(pkpy_vm*, int i) { bool pkpy_is_string(pkpy_vm* vm, int i) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_voidp(pkpy_vm*, void*) { bool pkpy_push_voidp(pkpy_vm* vm, void* val) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_is_voidp(pkpy_vm*, int i) { bool pkpy_is_voidp(pkpy_vm* vm, int i) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_none(pkpy_vm*) { bool pkpy_push_none(pkpy_vm* vm) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_is_none(pkpy_vm*, int i) { bool pkpy_is_none(pkpy_vm* vm, int i) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_null(pkpy_vm*) { bool pkpy_push_null(pkpy_vm* vm) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_push_module(pkpy_vm*, const char*) { bool pkpy_push_module(pkpy_vm* vm, const char* name) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_getattr(pkpy_vm*, pkpy_CName) { bool pkpy_getattr(pkpy_vm* vm, pkpy_CName name) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_setattr(pkpy_vm*, pkpy_CName) { bool pkpy_setattr(pkpy_vm* vm, pkpy_CName name) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_getglobal(pkpy_vm*, pkpy_CName) { bool pkpy_getglobal(pkpy_vm* vm, pkpy_CName name) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_setglobal(pkpy_vm*, pkpy_CName) { bool pkpy_setglobal(pkpy_vm* vm, pkpy_CName name) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_eval(pkpy_vm*, const char* source) { bool pkpy_eval(pkpy_vm* vm, const char* source) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_unpack_sequence(pkpy_vm*, int size) { bool pkpy_unpack_sequence(pkpy_vm* vm, int size) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_py_repr(pkpy_vm*) { bool pkpy_py_repr(pkpy_vm* vm) {
bool returnValue; bool returnValue;
return 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; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_check_error(pkpy_vm*) { bool pkpy_check_error(pkpy_vm* vm) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_clear_error(pkpy_vm*, char** message) { bool pkpy_clear_error(pkpy_vm* vm, char** message) {
bool returnValue; bool returnValue;
return returnValue; return returnValue;
} }
bool pkpy_vectorcall(pkpy_vm*, int argc) { bool pkpy_vectorcall(pkpy_vm* vm, int argc) {
bool returnValue; bool returnValue;
return 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; pkpy_CString returnValue;
return returnValue; return returnValue;
} }
pkpy_CName pkpy_name(const char*) { pkpy_CName pkpy_name(const char* s) {
pkpy_CName returnValue; pkpy_CName returnValue;
return returnValue; return returnValue;
} }
pkpy_CString pkpy_name_to_string(pkpy_CName) { pkpy_CString pkpy_name_to_string(pkpy_CName name) {
pkpy_CString returnValue; pkpy_CString returnValue;
return 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; void* returnValue;
return returnValue; return returnValue;
} }