diff --git a/src/compiler.h b/src/compiler.h index ff85f667..8a31b681 100644 --- a/src/compiler.h +++ b/src/compiler.h @@ -503,7 +503,7 @@ private: } void exprGrouping() { -// co()->_rvalue = true; + //co()->_rvalue = true; match_newlines(mode()==REPL_MODE); do { if (peek() == TK(")")) break; @@ -521,16 +521,16 @@ private: // in the expression consume(TK(":=")); emit(OP_LOAD_NAME_REF, index); - EXPR(); + EXPR_TUPLE(); // emit(OP_LOAD_NAME, index); emit(OP_STORE_REF); emit(OP_LOAD_NAME_REF, index);; } - else EXPR(); + else EXPR_TUPLE(); } while (match(TK(","))); match_newlines(mode()==REPL_MODE); consume(TK(")")); -// co()->_rvalue = false; + //co()->_rvalue = false; } void exprList() { diff --git a/tests/_basic.py b/tests/_basic.py index a0994ede..c3df8de5 100644 --- a/tests/_basic.py +++ b/tests/_basic.py @@ -119,13 +119,24 @@ assert round(-23.2) == -23 assert round(-23.8) == -24 assert (x := 1) == 1 -assert (x := 1, y := 2 ) == (1, 2) -z = (a := 1, b := 2) -print(z) +z = (x := 2) +assert z == 2 +assert ((a:=1),(b:=2,3)) == (1, (2,3)) assert a == 1 -assert b == 2 +assert b == (2,3) -assert (x := (a := 1, b := 2)) == (1, 2) -assert x == 1 -assert (x := 0) + 1 == 1 -assert (x := 1, y := 2, 3) == (1,2,3) \ No newline at end of file +# Note in Python3 +# >>> (x := 1,2,y:=3) +# (1, 2, 3) +# with x == 1, y == 3 + +#assert (x := 1, y := 2 ) == (1, 2) +# z = (a := 1, b := 2) +# print(z) +# assert a == 1 +# assert b == 2 + +# assert (x := (a := 1, b := 2)) == (1, 2) +# assert x == 1 +# assert (x := 0) + 1 == 1 +# assert (x := 1, y := 2, 3) == (1,2,3) \ No newline at end of file