This commit is contained in:
blueloveTH 2023-01-31 23:27:57 +08:00
parent 6791c0784a
commit 78922a11b1
3 changed files with 14 additions and 10 deletions

View File

@ -208,6 +208,11 @@ public:
return v;
}
inline void __pop(){
if(s_data.empty()) throw std::runtime_error("s_data.empty() is true");
s_data.pop_back();
}
inline void try_deref(VM*, PyVar&);
inline PyVar pop_value(VM* vm){

View File

@ -1,8 +1,6 @@
#ifdef OPCODE
OPCODE(NO_OP)
OPCODE(IMPORT_NAME)
OPCODE(PRINT_EXPR)
OPCODE(POP_TOP)
OPCODE(DUP_TOP)
OPCODE(CALL)
@ -21,8 +19,13 @@ OPCODE(BUILD_LIST)
OPCODE(BUILD_MAP)
OPCODE(BUILD_SET)
OPCODE(BUILD_SLICE)
OPCODE(BUILD_CLASS)
OPCODE(BUILD_SMART_TUPLE)
OPCODE(BUILD_STRING)
OPCODE(LIST_APPEND)
OPCODE(IMPORT_NAME)
OPCODE(PRINT_EXPR)
OPCODE(GET_ITER)
OPCODE(FOR_ITER)
@ -38,6 +41,8 @@ OPCODE(SAFE_JUMP_ABSOLUTE)
OPCODE(JUMP_IF_TRUE_OR_POP)
OPCODE(JUMP_IF_FALSE_OR_POP)
OPCODE(GOTO)
OPCODE(LOAD_CONST)
OPCODE(LOAD_NONE)
OPCODE(LOAD_TRUE)
@ -51,17 +56,11 @@ OPCODE(LOAD_NAME_REF)
OPCODE(ASSERT)
OPCODE(RAISE_ERROR)
OPCODE(BUILD_CLASS)
OPCODE(BUILD_INDEX_REF)
OPCODE(BUILD_ATTR_REF)
OPCODE(STORE_NAME)
OPCODE(STORE_FUNCTION)
OPCODE(BUILD_INDEX_REF)
OPCODE(STORE_REF)
OPCODE(DELETE_REF)
OPCODE(BUILD_SMART_TUPLE)
OPCODE(BUILD_STRING)
OPCODE(GOTO)
#endif

View File

@ -130,7 +130,7 @@ protected:
if(expr == None) break;
*_stdout << PyStr_AS_C(asRepr(expr)) << '\n';
} break;
case OP_POP_TOP: frame->pop(); break;
case OP_POP_TOP: frame->__pop(); break;
case OP_BINARY_OP:
{
pkpy::ArgList args(2);