This commit is contained in:
blueloveTH 2023-05-27 16:17:43 +08:00
parent f57dbba00f
commit 959fa9387a
3 changed files with 1 additions and 21 deletions

View File

@ -33,8 +33,7 @@ int main(){
pkpy_vm_exec(vm, "a = [1, 2, 3]");
// 对列表进行求和
char* result = pkpy_vm_eval(vm, "sum(a)");
printf("%s", result); // 6
pkpy_vm_exec(vm, "print(sum(a))");
// 释放资源
pkpy_delete(result);

View File

@ -16,13 +16,6 @@ Create 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)`
Run a given source on a virtual machine.

View File

@ -1365,18 +1365,6 @@ extern "C" {
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
pkpy::REPL* pkpy_new_repl(pkpy::VM* vm){
pkpy::REPL* p = new pkpy::REPL(vm);