mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
add input()
This commit is contained in:
parent
fc0d94c12e
commit
509be95a29
@ -160,11 +160,6 @@ __SUCCESS:
|
|||||||
|
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
|
|
||||||
static bool builtins_repr(int argc, py_Ref argv) {
|
|
||||||
PY_CHECK_ARGC(1);
|
|
||||||
return py_repr(argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool builtins_exit(int argc, py_Ref argv) {
|
static bool builtins_exit(int argc, py_Ref argv) {
|
||||||
int code = 0;
|
int code = 0;
|
||||||
if(argc > 1) return TypeError("exit() takes at most 1 argument");
|
if(argc > 1) return TypeError("exit() takes at most 1 argument");
|
||||||
@ -181,6 +176,26 @@ static bool builtins_exit(int argc, py_Ref argv) {
|
|||||||
// return py_raise(py_retval());
|
// return py_raise(py_retval());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool builtins_input(int argc, py_Ref argv) {
|
||||||
|
if(argc > 1) return TypeError("input() takes at most 1 argument");
|
||||||
|
const char* prompt = "";
|
||||||
|
if(argc == 1) {
|
||||||
|
if(!py_checkstr(argv)) return false;
|
||||||
|
prompt = py_tostr(argv);
|
||||||
|
}
|
||||||
|
printf("%s", prompt);
|
||||||
|
char buf[2048];
|
||||||
|
scanf("%s", buf);
|
||||||
|
getchar();
|
||||||
|
py_newstr(py_retval(), buf);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool builtins_repr(int argc, py_Ref argv) {
|
||||||
|
PY_CHECK_ARGC(1);
|
||||||
|
return py_repr(argv);
|
||||||
|
}
|
||||||
|
|
||||||
static bool builtins_len(int argc, py_Ref argv) {
|
static bool builtins_len(int argc, py_Ref argv) {
|
||||||
PY_CHECK_ARGC(1);
|
PY_CHECK_ARGC(1);
|
||||||
return py_len(argv);
|
return py_len(argv);
|
||||||
@ -640,8 +655,9 @@ static bool NotImplementedType__repr__(int argc, py_Ref argv) {
|
|||||||
|
|
||||||
py_TValue pk_builtins__register() {
|
py_TValue pk_builtins__register() {
|
||||||
py_Ref builtins = py_newmodule("builtins");
|
py_Ref builtins = py_newmodule("builtins");
|
||||||
py_bindfunc(builtins, "repr", builtins_repr);
|
|
||||||
py_bindfunc(builtins, "exit", builtins_exit);
|
py_bindfunc(builtins, "exit", builtins_exit);
|
||||||
|
py_bindfunc(builtins, "input", builtins_input);
|
||||||
|
py_bindfunc(builtins, "repr", builtins_repr);
|
||||||
py_bindfunc(builtins, "len", builtins_len);
|
py_bindfunc(builtins, "len", builtins_len);
|
||||||
py_bindfunc(builtins, "hex", builtins_hex);
|
py_bindfunc(builtins, "hex", builtins_hex);
|
||||||
py_bindfunc(builtins, "iter", builtins_iter);
|
py_bindfunc(builtins, "iter", builtins_iter);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user