From a01d1a5057e94fdf35406e81eaff0e16fa77f772 Mon Sep 17 00:00:00 2001 From: BLUELOVETH Date: Thu, 24 Aug 2023 11:51:54 +0800 Subject: [PATCH] add `vm->eval` --- include/pocketpy/vm.h | 1 + src/vm.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/include/pocketpy/vm.h b/include/pocketpy/vm.h index 0349e335..65eb5b86 100644 --- a/include/pocketpy/vm.h +++ b/include/pocketpy/vm.h @@ -168,6 +168,7 @@ public: PyObject* find_name_in_mro(PyObject* cls, StrName name); bool isinstance(PyObject* obj, Type cls_t); PyObject* exec(Str source, Str filename, CompileMode mode, PyObject* _module=nullptr); + PyObject* eval(Str source, PyObject* _module=nullptr); template PyObject* _exec(Args&&... args){ diff --git a/src/vm.cpp b/src/vm.cpp index 4c712d82..2d975015 100644 --- a/src/vm.cpp +++ b/src/vm.cpp @@ -114,6 +114,10 @@ namespace pkpy{ return nullptr; } + PyObject* VM::eval(Str source, PyObject* _module){ + return exec(source, "", EVAL_MODE, _module); + } + PyObject* VM::new_type_object(PyObject* mod, StrName name, Type base, bool subclass_enabled){ PyObject* obj = heap._new(tp_type, _all_types.size()); const PyTypeInfo& base_info = _all_types[base];