mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-24 05:20:17 +00:00
...
This commit is contained in:
parent
f57dbba00f
commit
959fa9387a
@ -33,8 +33,7 @@ int main(){
|
|||||||
pkpy_vm_exec(vm, "a = [1, 2, 3]");
|
pkpy_vm_exec(vm, "a = [1, 2, 3]");
|
||||||
|
|
||||||
// 对列表进行求和
|
// 对列表进行求和
|
||||||
char* result = pkpy_vm_eval(vm, "sum(a)");
|
pkpy_vm_exec(vm, "print(sum(a))");
|
||||||
printf("%s", result); // 6
|
|
||||||
|
|
||||||
// 释放资源
|
// 释放资源
|
||||||
pkpy_delete(result);
|
pkpy_delete(result);
|
||||||
|
|||||||
@ -16,13 +16,6 @@ Create a virtual machine.
|
|||||||
|
|
||||||
Add a source module into a virtual machine.
|
Add a source module into a virtual machine.
|
||||||
|
|
||||||
#### `char* pkpy_vm_eval(VM* vm, const char* source)`
|
|
||||||
|
|
||||||
Evaluate an expression.
|
|
||||||
|
|
||||||
Return `__repr__` of the result.
|
|
||||||
If there is any error, return `nullptr`.
|
|
||||||
|
|
||||||
#### `void pkpy_vm_exec(VM* vm, const char* source)`
|
#### `void pkpy_vm_exec(VM* vm, const char* source)`
|
||||||
|
|
||||||
Run a given source on a virtual machine.
|
Run a given source on a virtual machine.
|
||||||
|
|||||||
@ -1365,18 +1365,6 @@ extern "C" {
|
|||||||
vm->exec(source, filename, (pkpy::CompileMode)mode, mod);
|
vm->exec(source, filename, (pkpy::CompileMode)mode, mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
PK_LEGACY_EXPORT
|
|
||||||
char* pkpy_vm_eval(pkpy::VM* vm, const char* source){
|
|
||||||
pkpy::PyObject* ret = vm->exec(source, "<eval>", pkpy::EVAL_MODE);
|
|
||||||
if(ret == nullptr) return nullptr;
|
|
||||||
try{
|
|
||||||
pkpy::Str repr = pkpy::CAST(pkpy::Str&, vm->py_repr(ret));
|
|
||||||
return repr.c_str_dup();
|
|
||||||
}catch(...){
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PK_LEGACY_EXPORT
|
PK_LEGACY_EXPORT
|
||||||
pkpy::REPL* pkpy_new_repl(pkpy::VM* vm){
|
pkpy::REPL* pkpy_new_repl(pkpy::VM* vm){
|
||||||
pkpy::REPL* p = new pkpy::REPL(vm);
|
pkpy::REPL* p = new pkpy::REPL(vm);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user