blueloveTH před 2 roky
rodič
revize
692f3c5266
2 změnil soubory, kde provedl 45 přidání a 3 odebrání
  1. 34 0
      scripts/genstub.py
  2. 11 3
      src2/pocketpy_c.cpp

+ 34 - 0
scripts/genstub.py

@@ -0,0 +1,34 @@
+import os
+
+with open('include/pocketpy/pocketpy_c.h') as f:
+    lines = f.readlines()
+
+a = []
+for line in lines:
+    if line.startswith("PK_EXPORT"):
+        _, ret, *body = line.split()
+    else:
+        continue
+    body = ' '.join(body)
+    assert body.endswith(";")
+    body = body[:-1]
+
+    if ret == 'void':
+        mock_string = ''
+    else:
+        mock_string = ' '*4 + ret + ' returnValue;\n    return returnValue;'
+
+    a.append(
+        ret + ' ' + body + ' {\n' + mock_string + '\n}\n'
+    )
+
+with open('src2/pocketpy_c.cpp', 'w') as f:
+    f.write('''
+#include "pocketpy_c.h"
+
+#ifdef _WIN32
+#pragma warning(disable: 4700)
+#endif
+            
+''')
+    f.write('\n'.join(a))

+ 11 - 3
src2/pocketpy_c.cpp

@@ -1,17 +1,17 @@
-/* autogenerated code.  Do not edit */
 
 #include "pocketpy_c.h"
 
 #ifdef _WIN32
 #pragma warning(disable: 4700)
 #endif
-
+            
 pkpy_vm* pkpy_new_vm(bool enable_os) {
     pkpy_vm* returnValue;
     return returnValue;
 }
 
 void pkpy_delete_vm(pkpy_vm*) {
+
 }
 
 bool pkpy_exec(pkpy_vm*, const char* source) {
@@ -24,6 +24,11 @@ bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, c
     return returnValue;
 }
 
+bool pkpy_dup(pkpy_vm*, int) {
+    bool returnValue;
+    return returnValue;
+}
+
 bool pkpy_pop(pkpy_vm*, int) {
     bool returnValue;
     return returnValue;
@@ -184,7 +189,7 @@ bool pkpy_get_unbound_method(pkpy_vm*, pkpy_CName) {
     return returnValue;
 }
 
-bool pkpy_py_repr(pkpy_vm*, int i) {
+bool pkpy_py_repr(pkpy_vm*) {
     bool returnValue;
     return returnValue;
 }
@@ -210,6 +215,7 @@ bool pkpy_vectorcall(pkpy_vm*, int argc) {
 }
 
 void pkpy_free(void* p) {
+
 }
 
 pkpy_CString pkpy_string(const char*) {
@@ -228,6 +234,7 @@ pkpy_CString pkpy_name_to_string(pkpy_CName) {
 }
 
 void pkpy_compile_to_string(pkpy_vm*, const char* source, const char* filename, int mode, bool* ok, char** out) {
+
 }
 
 void* pkpy_new_repl(pkpy_vm* vm) {
@@ -241,4 +248,5 @@ bool pkpy_repl_input(void* r, const char* line) {
 }
 
 void pkpy_delete_repl(void* repl) {
+
 }