Skip to content

Commit

Permalink
Revert BoolOp.
Browse files Browse the repository at this point in the history
  • Loading branch information
akshanshbhatt committed Jul 29, 2022
1 parent 4e1a222 commit d35f104
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 11 deletions.
8 changes: 4 additions & 4 deletions src/lpython/parser/semantics.h
Original file line number Diff line number Diff line change
Expand Up @@ -625,6 +625,7 @@ static inline ast_t* BOOLOP_01(Allocator &al, Location &loc,
expr_t* y1 = EXPR(y);
Vec<expr_t*> v;
v.reserve(al, 4);
/*
if (is_a<BoolOp_t>(*x1)) {
BoolOp_t* tmp = down_cast<BoolOp_t>(x1);
if (op == tmp->m_op) {
Expand All @@ -636,10 +637,9 @@ static inline ast_t* BOOLOP_01(Allocator &al, Location &loc,
v.push_back(al, x1);
v.push_back(al, y1);
}
} else {
v.push_back(al, x1);
v.push_back(al, y1);
}
*/
v.push_back(al, x1);
v.push_back(al, y1);
return make_BoolOp_t(al, loc, op, v.p, v.n);
}

Expand Down
3 changes: 1 addition & 2 deletions tests/parser/boolOp1.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,4 @@
(a and b and c or (x or (y and (z or i)) or j))
(a and (b and (c or d)) and (e and f) or x) and y

# # TODO: Make this work similar to Old Parser
# (a or b and c) or z
(a or b and c) or z
4 changes: 2 additions & 2 deletions tests/reference/ast_new-boolOp1-478328f.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
"basename": "ast_new-boolOp1-478328f",
"cmd": "lpython --show-ast --new-parser --no-color {infile} -o {outfile}",
"infile": "tests/parser/boolOp1.py",
"infile_hash": "a20fee19d7b8e6f8689f6badc2726fd618524af0aba84a7d0d0e5af5",
"infile_hash": "d3c477215f26d7a7e09c7de32d3e716585796d1674cba2ea692fe161",
"outfile": null,
"outfile_hash": null,
"stdout": "ast_new-boolOp1-478328f.stdout",
"stdout_hash": "8b8d1514ec03d6081c0e716170ff41615cb00f9745a71e153f25179c",
"stdout_hash": "54fed9e79b839b525e9971e086295a412fabd1ccc27820e3432a83f3",
"stderr": null,
"stderr_hash": null,
"returncode": 0
Expand Down
2 changes: 1 addition & 1 deletion tests/reference/ast_new-boolOp1-478328f.stdout
Original file line number Diff line number Diff line change
@@ -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)]))] [])
(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)]))] [])
2 changes: 1 addition & 1 deletion tests/reference/ast_new-if2-c3b6022.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"outfile": null,
"outfile_hash": null,
"stdout": "ast_new-if2-c3b6022.stdout",
"stdout_hash": "6f9e04559cd53ae834aff76c5c06d87601323fc7367e54dd63251950",
"stdout_hash": "acb8fee9254dc2a1fff51fd70b7350768c8696f9740a5abf5631cf78",
"stderr": null,
"stderr_hash": null,
"returncode": 0
Expand Down
2 changes: 1 addition & 1 deletion tests/reference/ast_new-if2-c3b6022.stdout
Original file line number Diff line number Diff line change
@@ -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" ())] [])))] [])
(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 comments on commit d35f104

Please sign in to comment.