Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit feab0bb

Browse files
Merge pull request #848 from akshanshbhatt/pr_revert_boolop
2 parents 4615870 + d35f104 commit feab0bb

File tree

6 files changed

+10
-11
lines changed

6 files changed

+10
-11
lines changed

src/lpython/parser/semantics.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,7 @@ static inline ast_t* BOOLOP_01(Allocator &al, Location &loc,
625625
expr_t* y1 = EXPR(y);
626626
Vec<expr_t*> v;
627627
v.reserve(al, 4);
628+
/*
628629
if (is_a<BoolOp_t>(*x1)) {
629630
BoolOp_t* tmp = down_cast<BoolOp_t>(x1);
630631
if (op == tmp->m_op) {
@@ -636,10 +637,9 @@ static inline ast_t* BOOLOP_01(Allocator &al, Location &loc,
636637
v.push_back(al, x1);
637638
v.push_back(al, y1);
638639
}
639-
} else {
640-
v.push_back(al, x1);
641-
v.push_back(al, y1);
642-
}
640+
*/
641+
v.push_back(al, x1);
642+
v.push_back(al, y1);
643643
return make_BoolOp_t(al, loc, op, v.p, v.n);
644644
}
645645

tests/parser/boolOp1.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,4 @@
66
(a and b and c or (x or (y and (z or i)) or j))
77
(a and (b and (c or d)) and (e and f) or x) and y
88

9-
# # TODO: Make this work similar to Old Parser
10-
# (a or b and c) or z
9+
(a or b and c) or z

tests/reference/ast_new-boolOp1-478328f.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
"basename": "ast_new-boolOp1-478328f",
33
"cmd": "lpython --show-ast --new-parser --no-color {infile} -o {outfile}",
44
"infile": "tests/parser/boolOp1.py",
5-
"infile_hash": "a20fee19d7b8e6f8689f6badc2726fd618524af0aba84a7d0d0e5af5",
5+
"infile_hash": "d3c477215f26d7a7e09c7de32d3e716585796d1674cba2ea692fe161",
66
"outfile": null,
77
"outfile_hash": null,
88
"stdout": "ast_new-boolOp1-478328f.stdout",
9-
"stdout_hash": "8b8d1514ec03d6081c0e716170ff41615cb00f9745a71e153f25179c",
9+
"stdout_hash": "54fed9e79b839b525e9971e086295a412fabd1ccc27820e3432a83f3",
1010
"stderr": null,
1111
"stderr_hash": null,
1212
"returncode": 0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(Module [(Expr (BoolOp And [(Name a Load) (Name b Load)])) (Expr (BoolOp Or [(BoolOp And [(Name a Load) (Name b Load)]) (Name c Load)])) (Expr (BoolOp Or [(Name a Load) (Name b Load)])) (Expr (BoolOp Or [(Name a Load) (BoolOp And [(Name b Load) (Name c Load)])])) (Expr (BoolOp Or [(BoolOp And [(Name a Load) (Name b Load) (Name c Load)]) (BoolOp Or [(Name x Load) (BoolOp And [(Name y Load) (BoolOp Or [(Name z Load) (Name i Load)])]) (Name j Load)])])) (Expr (BoolOp And [(BoolOp Or [(BoolOp And [(Name a Load) (BoolOp And [(Name b Load) (BoolOp Or [(Name c Load) (Name d Load)])]) (BoolOp And [(Name e Load) (Name f Load)])]) (Name x Load)]) (Name y Load)]))] [])
1+
(Module [(Expr (BoolOp And [(Name a Load) (Name b Load)])) (Expr (BoolOp Or [(BoolOp And [(Name a Load) (Name b Load)]) (Name c Load)])) (Expr (BoolOp Or [(Name a Load) (Name b Load)])) (Expr (BoolOp Or [(Name a Load) (BoolOp And [(Name b Load) (Name c Load)])])) (Expr (BoolOp Or [(BoolOp And [(BoolOp And [(Name a Load) (Name b Load)]) (Name c Load)]) (BoolOp Or [(BoolOp Or [(Name x Load) (BoolOp And [(Name y Load) (BoolOp Or [(Name z Load) (Name i Load)])])]) (Name j Load)])])) (Expr (BoolOp And [(BoolOp Or [(BoolOp And [(BoolOp And [(Name a Load) (BoolOp And [(Name b Load) (BoolOp Or [(Name c Load) (Name d Load)])])]) (BoolOp And [(Name e Load) (Name f Load)])]) (Name x Load)]) (Name y Load)])) (Expr (BoolOp Or [(BoolOp Or [(Name a Load) (BoolOp And [(Name b Load) (Name c Load)])]) (Name z Load)]))] [])

tests/reference/ast_new-if2-c3b6022.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"outfile": null,
77
"outfile_hash": null,
88
"stdout": "ast_new-if2-c3b6022.stdout",
9-
"stdout_hash": "6f9e04559cd53ae834aff76c5c06d87601323fc7367e54dd63251950",
9+
"stdout_hash": "acb8fee9254dc2a1fff51fd70b7350768c8696f9740a5abf5631cf78",
1010
"stderr": null,
1111
"stderr_hash": null,
1212
"returncode": 0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(Module [(If (Compare (Call (Name type Load) [(Name x Load)] []) Is [(Name int Load)]) [(Pass)] []) (If (Compare (Compare (BinOp (BinOp (BinOp (ConstantInt 2 ()) Add (ConstantInt 3 ())) Div (ConstantInt 2 ())) Sub (ConstantInt 1 ())) Is [(ConstantInt 5 ())]) Is [(ConstantBool .true. ())]) [(Pass)] []) (If (Compare (Name x Load) IsNot [(Call (Name type Load) [(Name float Load)] [])]) [(Pass)] []) (If (Compare (Name x Load) IsNot [(Call (Name type Load) [(Name int Load)] [])]) [(Pass)] []) (Assign [(Name a Store)] (List [(ConstantInt 1 ()) (ConstantInt 2 ()) (ConstantInt 3 ())] Load) ()) (If (Compare (Name a Load) NotIn [(List [(ConstantInt 1 ()) (ConstantInt 2 ())] Load)]) [(Pass)] []) (If (Compare (Compare (Name a Load) NotIn [(List [(ConstantInt 1 ()) (ConstantInt 2 ())] Load)]) NotIn [(List [(ConstantBool .true. ()) (ConstantBool .false. ())] Load)]) [(Pass)] []) (If (Compare (Name field Load) In [(List [(ConstantStr "vararg" ()) (ConstantStr "kwarg" ())] Load)]) [(If (Compare (Name value Load) Is [(ConstantNone ())]) [(Pass)] [])] []) (If (Compare (Name a Load) In [(Name list1 Load)]) [(Pass)] []) (If (BoolOp Or [(Compare (Attribute (Name x Load) shape Load) Eq [(Tuple [] Load)]) (Compare (Attribute (Name y Load) shape Load) Eq [(Tuple [] Load)]) (Compare (Subscript (Attribute (Name x Load) shape Load) (ConstantInt 1 ()) Load) NotEq [(Subscript (Attribute (Name y Load) shape Load) (ConstantInt 0 ()) Load)])]) [(Assert (Compare (Subscript (Name arr Load) (Tuple [] Load) Load) Is [(Name ArrayLike Load)]) ()) (Pass)] []) (Assign [(Name b Store)] (IfExp (Compare (Name a Load) Eq [(ConstantInt 2 ())]) (ConstantInt 6 ()) (ConstantInt 8 ())) ()) (Expr (IfExp (ConstantBool .true. ()) (ConstantStr "true" ()) (ConstantStr "false" ()))) (Assign [(Name result Store)] (IfExp (UnaryOp Not (Compare (Name a Load) Gt [(Name b Load)])) (Name x Load) (Name y Load)) ()) (Expr (IfExp (Compare (Name a Load) Gt [(Name b Load)]) (Call (Name print Load) [(Name a Load) (ConstantStr "is greater" ())] []) (Call (Name print Load) [(Name b Load) (ConstantStr "is Greater" ())] [])))] [])
1+
(Module [(If (Compare (Call (Name type Load) [(Name x Load)] []) Is [(Name int Load)]) [(Pass)] []) (If (Compare (Compare (BinOp (BinOp (BinOp (ConstantInt 2 ()) Add (ConstantInt 3 ())) Div (ConstantInt 2 ())) Sub (ConstantInt 1 ())) Is [(ConstantInt 5 ())]) Is [(ConstantBool .true. ())]) [(Pass)] []) (If (Compare (Name x Load) IsNot [(Call (Name type Load) [(Name float Load)] [])]) [(Pass)] []) (If (Compare (Name x Load) IsNot [(Call (Name type Load) [(Name int Load)] [])]) [(Pass)] []) (Assign [(Name a Store)] (List [(ConstantInt 1 ()) (ConstantInt 2 ()) (ConstantInt 3 ())] Load) ()) (If (Compare (Name a Load) NotIn [(List [(ConstantInt 1 ()) (ConstantInt 2 ())] Load)]) [(Pass)] []) (If (Compare (Compare (Name a Load) NotIn [(List [(ConstantInt 1 ()) (ConstantInt 2 ())] Load)]) NotIn [(List [(ConstantBool .true. ()) (ConstantBool .false. ())] Load)]) [(Pass)] []) (If (Compare (Name field Load) In [(List [(ConstantStr "vararg" ()) (ConstantStr "kwarg" ())] Load)]) [(If (Compare (Name value Load) Is [(ConstantNone ())]) [(Pass)] [])] []) (If (Compare (Name a Load) In [(Name list1 Load)]) [(Pass)] []) (If (BoolOp Or [(BoolOp Or [(Compare (Attribute (Name x Load) shape Load) Eq [(Tuple [] Load)]) (Compare (Attribute (Name y Load) shape Load) Eq [(Tuple [] Load)])]) (Compare (Subscript (Attribute (Name x Load) shape Load) (ConstantInt 1 ()) Load) NotEq [(Subscript (Attribute (Name y Load) shape Load) (ConstantInt 0 ()) Load)])]) [(Assert (Compare (Subscript (Name arr Load) (Tuple [] Load) Load) Is [(Name ArrayLike Load)]) ()) (Pass)] []) (Assign [(Name b Store)] (IfExp (Compare (Name a Load) Eq [(ConstantInt 2 ())]) (ConstantInt 6 ()) (ConstantInt 8 ())) ()) (Expr (IfExp (ConstantBool .true. ()) (ConstantStr "true" ()) (ConstantStr "false" ()))) (Assign [(Name result Store)] (IfExp (UnaryOp Not (Compare (Name a Load) Gt [(Name b Load)])) (Name x Load) (Name y Load)) ()) (Expr (IfExp (Compare (Name a Load) Gt [(Name b Load)]) (Call (Name print Load) [(Name a Load) (ConstantStr "is greater" ())] []) (Call (Name print Load) [(Name b Load) (ConstantStr "is Greater" ())] [])))] [])

0 commit comments

Comments
 (0)