mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
up
This commit is contained in:
parent
c6eba681fc
commit
a9bc5a2bde
@ -3513,7 +3513,6 @@ struct CodeObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void __enter_block(CodeBlockType type){
|
void __enter_block(CodeBlockType type){
|
||||||
const CodeBlock& currBlock = blocks[_curr_block_i];
|
|
||||||
blocks.push_back(CodeBlock{type, _curr_block_i, (int)co_code.size()});
|
blocks.push_back(CodeBlock{type, _curr_block_i, (int)co_code.size()});
|
||||||
_curr_block_i = blocks.size()-1;
|
_curr_block_i = blocks.size()-1;
|
||||||
}
|
}
|
||||||
@ -6000,6 +5999,13 @@ void __initializeBuiltinFunctions(VM* _vm) {
|
|||||||
return vm->None;
|
return vm->None;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_vm->bindBuiltinFunc<-1>("exit", [](VM* vm, const pkpy::Args& args) {
|
||||||
|
if(args.size() == 0) std::exit(0);
|
||||||
|
else if(args.size() == 1) std::exit(vm->PyInt_AS_C(args[0]));
|
||||||
|
else vm->typeError("exit() takes at most 1 argument");
|
||||||
|
return vm->None;
|
||||||
|
});
|
||||||
|
|
||||||
_vm->bindBuiltinFunc<1>("repr", CPP_LAMBDA(vm->asRepr(args[0])));
|
_vm->bindBuiltinFunc<1>("repr", CPP_LAMBDA(vm->asRepr(args[0])));
|
||||||
_vm->bindBuiltinFunc<1>("hash", CPP_LAMBDA(vm->PyInt(vm->hash(args[0]))));
|
_vm->bindBuiltinFunc<1>("hash", CPP_LAMBDA(vm->PyInt(vm->hash(args[0]))));
|
||||||
_vm->bindBuiltinFunc<1>("len", CPP_LAMBDA(vm->call(args[0], __len__, pkpy::noArg())));
|
_vm->bindBuiltinFunc<1>("len", CPP_LAMBDA(vm->call(args[0], __len__, pkpy::noArg())));
|
||||||
@ -6288,7 +6294,7 @@ void __initializeBuiltinFunctions(VM* _vm) {
|
|||||||
|
|
||||||
_vm->bindMethod<1>("str", "join", [](VM* vm, const pkpy::Args& args) {
|
_vm->bindMethod<1>("str", "join", [](VM* vm, const pkpy::Args& args) {
|
||||||
const _Str& _self = vm->PyStr_AS_C(args[0]);
|
const _Str& _self = vm->PyStr_AS_C(args[0]);
|
||||||
PyVarList* _list;
|
PyVarList* _list = nullptr;
|
||||||
if(args[1]->is_type(vm->_tp_list)){
|
if(args[1]->is_type(vm->_tp_list)){
|
||||||
_list = &vm->PyList_AS_C(args[1]);
|
_list = &vm->PyList_AS_C(args[1]);
|
||||||
}else if(args[1]->is_type(vm->_tp_tuple)){
|
}else if(args[1]->is_type(vm->_tp_tuple)){
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 41884cdc2770bca9e9b3feb5d277d5fb0176454c
|
Subproject commit 6df3b2fdfe9b1da642c18bfbd937b94541bf89bc
|
@ -72,6 +72,13 @@ void __initializeBuiltinFunctions(VM* _vm) {
|
|||||||
return vm->None;
|
return vm->None;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_vm->bindBuiltinFunc<-1>("exit", [](VM* vm, const pkpy::Args& args) {
|
||||||
|
if(args.size() == 0) std::exit(0);
|
||||||
|
else if(args.size() == 1) std::exit(vm->PyInt_AS_C(args[0]));
|
||||||
|
else vm->typeError("exit() takes at most 1 argument");
|
||||||
|
return vm->None;
|
||||||
|
});
|
||||||
|
|
||||||
_vm->bindBuiltinFunc<1>("repr", CPP_LAMBDA(vm->asRepr(args[0])));
|
_vm->bindBuiltinFunc<1>("repr", CPP_LAMBDA(vm->asRepr(args[0])));
|
||||||
_vm->bindBuiltinFunc<1>("hash", CPP_LAMBDA(vm->PyInt(vm->hash(args[0]))));
|
_vm->bindBuiltinFunc<1>("hash", CPP_LAMBDA(vm->PyInt(vm->hash(args[0]))));
|
||||||
_vm->bindBuiltinFunc<1>("len", CPP_LAMBDA(vm->call(args[0], __len__, pkpy::noArg())));
|
_vm->bindBuiltinFunc<1>("len", CPP_LAMBDA(vm->call(args[0], __len__, pkpy::noArg())));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user