//// Created by Kosho on 2020年8月15日.//#ifndef PYTHONVM_INTERPRETER_HPP#define PYTHONVM_INTERPRETER_HPP#include "code/bytecode.hpp"#include "code/codeObject.hpp"#include "module.hpp"class FrameObject;class HiDict;class OopClosure;class Generator;class Interpreter {enum Status {IS_OK,IS_BREAK,IS_CONTINUE,IS_EXCEPTION,IS_RETURN,IS_YIELD};private:ModuleObject *_builtins;HiDict *_modules;FrameObject *_frame;HiObject *_ret_value;HiObject *_exception_class;HiObject *_pending_exception;HiObject *_trace_back;Status _int_status;static Interpreter *_instance;Interpreter();public:static Interpreter *get_instance();void initialize();void run(CodeObject *codes);HiDict *run_mod(CodeObject *codes, HiString *mod_name);void build_frame(HiObject *pObject, ObjList args, int op_arg);void enter_frame(FrameObject *frame);void eval_frame();void destroy_frame();void leave_frame();HiObject *call_virtual(HiObject *func, ObjList args);HiObject *eval_generator(Generator *g);/*** 抛出异常** @param exc 异常类型* @param val 异常实例* @param tb 异常堆栈* @return 状态*/Status do_raise(HiObject *exc, HiObject *val, HiObject *tb);void oops_do(OopClosure *f);};#endif //PYTHONVM_INTERPRETER_HPP
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。