mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
...
This commit is contained in:
parent
9182ba5fc5
commit
8e104627cb
@ -531,6 +531,7 @@ struct FStringExpr: Expr{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _load_simple_expr(CodeEmitContext* ctx, Str expr){
|
void _load_simple_expr(CodeEmitContext* ctx, Str expr){
|
||||||
|
// TODO: pre compile this into a function
|
||||||
int dot = expr.index(".");
|
int dot = expr.index(".");
|
||||||
if(dot < 0){
|
if(dot < 0){
|
||||||
ctx->emit(OP_LOAD_NAME, StrName(expr.sv()).index, line);
|
ctx->emit(OP_LOAD_NAME, StrName(expr.sv()).index, line);
|
||||||
@ -700,6 +701,7 @@ struct BinaryExpr: Expr{
|
|||||||
case TK("!="): ctx->emit(OP_COMPARE_NE, BC_NOARG, line); break;
|
case TK("!="): ctx->emit(OP_COMPARE_NE, BC_NOARG, line); break;
|
||||||
case TK(">"): ctx->emit(OP_COMPARE_GT, BC_NOARG, line); break;
|
case TK(">"): ctx->emit(OP_COMPARE_GT, BC_NOARG, line); break;
|
||||||
case TK(">="): ctx->emit(OP_COMPARE_GE, BC_NOARG, line); break;
|
case TK(">="): ctx->emit(OP_COMPARE_GE, BC_NOARG, line); break;
|
||||||
|
|
||||||
case TK("in"): ctx->emit(OP_CONTAINS_OP, 0, line); break;
|
case TK("in"): ctx->emit(OP_CONTAINS_OP, 0, line); break;
|
||||||
case TK("not in"): ctx->emit(OP_CONTAINS_OP, 1, line); break;
|
case TK("not in"): ctx->emit(OP_CONTAINS_OP, 1, line); break;
|
||||||
case TK("is"): ctx->emit(OP_IS_OP, 0, line); break;
|
case TK("is"): ctx->emit(OP_IS_OP, 0, line); break;
|
||||||
|
@ -8,11 +8,8 @@
|
|||||||
int main(int argc, char** argv){
|
int main(int argc, char** argv){
|
||||||
pkpy::VM* vm = pkpy_new_vm();
|
pkpy::VM* vm = pkpy_new_vm();
|
||||||
vm->bind_builtin_func<0>("input", [](pkpy::VM* vm, pkpy::ArgsView args){
|
vm->bind_builtin_func<0>("input", [](pkpy::VM* vm, pkpy::ArgsView args){
|
||||||
// TODO: we do not use pkpy::getline() here. It doesn't accept unicode characters.
|
// pkpy::getline() has bugs for PIPE input on Windows
|
||||||
// pkpy::getline() has bugs for PIPE input
|
return VAR(pkpy::getline());
|
||||||
static std::string buffer;
|
|
||||||
std::cin >> buffer;
|
|
||||||
return VAR(buffer);
|
|
||||||
});
|
});
|
||||||
if(argc == 1){
|
if(argc == 1){
|
||||||
pkpy::REPL* repl = pkpy_new_repl(vm);
|
pkpy::REPL* repl = pkpy_new_repl(vm);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user