Security update for Core, with self-updated composer
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / expr / logic.test
diff --git a/vendor/nikic/php-parser/test/code/parser/expr/logic.test b/vendor/nikic/php-parser/test/code/parser/expr/logic.test
new file mode 100644 (file)
index 0000000..b3634e9
--- /dev/null
@@ -0,0 +1,159 @@
+Logical operators
+-----
+<?php
+
+// boolean ops
+$a && $b;
+$a || $b;
+!$a;
+!!$a;
+
+// logical ops
+$a and $b;
+$a or $b;
+$a xor $b;
+
+// precedence
+$a && $b || $c && $d;
+$a && ($b || $c) && $d;
+
+$a = $b || $c;
+$a = $b or $c;
+-----
+array(
+    0: Expr_BinaryOp_BooleanAnd(
+        left: Expr_Variable(
+            name: a
+            comments: array(
+                0: // boolean ops
+            )
+        )
+        right: Expr_Variable(
+            name: b
+        )
+        comments: array(
+            0: // boolean ops
+        )
+    )
+    1: Expr_BinaryOp_BooleanOr(
+        left: Expr_Variable(
+            name: a
+        )
+        right: Expr_Variable(
+            name: b
+        )
+    )
+    2: Expr_BooleanNot(
+        expr: Expr_Variable(
+            name: a
+        )
+    )
+    3: Expr_BooleanNot(
+        expr: Expr_BooleanNot(
+            expr: Expr_Variable(
+                name: a
+            )
+        )
+    )
+    4: Expr_BinaryOp_LogicalAnd(
+        left: Expr_Variable(
+            name: a
+            comments: array(
+                0: // logical ops
+            )
+        )
+        right: Expr_Variable(
+            name: b
+        )
+        comments: array(
+            0: // logical ops
+        )
+    )
+    5: Expr_BinaryOp_LogicalOr(
+        left: Expr_Variable(
+            name: a
+        )
+        right: Expr_Variable(
+            name: b
+        )
+    )
+    6: Expr_BinaryOp_LogicalXor(
+        left: Expr_Variable(
+            name: a
+        )
+        right: Expr_Variable(
+            name: b
+        )
+    )
+    7: Expr_BinaryOp_BooleanOr(
+        left: Expr_BinaryOp_BooleanAnd(
+            left: Expr_Variable(
+                name: a
+                comments: array(
+                    0: // precedence
+                )
+            )
+            right: Expr_Variable(
+                name: b
+            )
+            comments: array(
+                0: // precedence
+            )
+        )
+        right: Expr_BinaryOp_BooleanAnd(
+            left: Expr_Variable(
+                name: c
+            )
+            right: Expr_Variable(
+                name: d
+            )
+        )
+        comments: array(
+            0: // precedence
+        )
+    )
+    8: Expr_BinaryOp_BooleanAnd(
+        left: Expr_BinaryOp_BooleanAnd(
+            left: Expr_Variable(
+                name: a
+            )
+            right: Expr_BinaryOp_BooleanOr(
+                left: Expr_Variable(
+                    name: b
+                )
+                right: Expr_Variable(
+                    name: c
+                )
+            )
+        )
+        right: Expr_Variable(
+            name: d
+        )
+    )
+    9: Expr_Assign(
+        var: Expr_Variable(
+            name: a
+        )
+        expr: Expr_BinaryOp_BooleanOr(
+            left: Expr_Variable(
+                name: b
+            )
+            right: Expr_Variable(
+                name: c
+            )
+        )
+    )
+    10: Expr_BinaryOp_LogicalOr(
+        left: Expr_Assign(
+            var: Expr_Variable(
+                name: a
+            )
+            expr: Expr_Variable(
+                name: b
+            )
+        )
+        right: Expr_Variable(
+            name: c
+        )
+    )
+)
\ No newline at end of file