more operator precedence
authorBen Pfaff <blp@cs.stanford.edu>
Sun, 13 Jun 2021 03:46:15 +0000 (20:46 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sun, 13 Jun 2021 03:46:15 +0000 (20:46 -0700)
tests/language/control/define.at

index 30fd080ba0454b178b65bfb307cfbbd1eb077d95..1f57851732df3367dd6fe76043d52dbfd4247526 100644 (file)
@@ -666,9 +666,14 @@ DEFINE !test_unary(!positional !tokens(1))
 !if $3 !1 !then true !else false !ifend.
 !ENDDEFINE.
 
-* This is ((not A) and B) or C.
+* These are:
+  ((not A) and B) or C
+  not (A and B) or C
+  not A and (B or C)
 DEFINE !test_prec(!pos !tokens(1)/!pos !tokens(1)/!pos !tokens(1))
 !if $3 !1 $1 !2 $2 !3 !then true !else false !ifend
+!if $3 (!1 $1 !2) $2 !3 !then true !else false !ifend
+!if $3 !1 $1 (!2 $2 !3) !then true !else false !ifend
 !ENDDEFINE.
 
 DEBUG EXPAND.
@@ -695,15 +700,15 @@ true.
 
 false.
 
-false
-true
-true
-true
+false true false
+true true true
+true true true
+true true true
 
-false
-true
-false
-true
+false true false
+true true false
+false false false
+true true false
 ])
 done
 AT_CLEANUP