mirror of
https://github.com/danog/PHP-Parser.git
synced 2024-12-02 17:28:27 +01:00
190 lines
4.2 KiB
Plaintext
190 lines
4.2 KiB
Plaintext
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: Stmt_Expression(
|
|
expr: Expr_BinaryOp_BooleanAnd(
|
|
left: Expr_Variable(
|
|
name: a
|
|
comments: array(
|
|
0: // boolean ops
|
|
)
|
|
)
|
|
right: Expr_Variable(
|
|
name: b
|
|
)
|
|
comments: array(
|
|
0: // boolean ops
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // boolean ops
|
|
)
|
|
)
|
|
1: Stmt_Expression(
|
|
expr: Expr_BinaryOp_BooleanOr(
|
|
left: Expr_Variable(
|
|
name: a
|
|
)
|
|
right: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
2: Stmt_Expression(
|
|
expr: Expr_BooleanNot(
|
|
expr: Expr_Variable(
|
|
name: a
|
|
)
|
|
)
|
|
)
|
|
3: Stmt_Expression(
|
|
expr: Expr_BooleanNot(
|
|
expr: Expr_BooleanNot(
|
|
expr: Expr_Variable(
|
|
name: a
|
|
)
|
|
)
|
|
)
|
|
)
|
|
4: Stmt_Expression(
|
|
expr: Expr_BinaryOp_LogicalAnd(
|
|
left: Expr_Variable(
|
|
name: a
|
|
comments: array(
|
|
0: // logical ops
|
|
)
|
|
)
|
|
right: Expr_Variable(
|
|
name: b
|
|
)
|
|
comments: array(
|
|
0: // logical ops
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // logical ops
|
|
)
|
|
)
|
|
5: Stmt_Expression(
|
|
expr: Expr_BinaryOp_LogicalOr(
|
|
left: Expr_Variable(
|
|
name: a
|
|
)
|
|
right: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
6: Stmt_Expression(
|
|
expr: Expr_BinaryOp_LogicalXor(
|
|
left: Expr_Variable(
|
|
name: a
|
|
)
|
|
right: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
)
|
|
7: Stmt_Expression(
|
|
expr: 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
|
|
)
|
|
)
|
|
comments: array(
|
|
0: // precedence
|
|
)
|
|
)
|
|
8: Stmt_Expression(
|
|
expr: 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: Stmt_Expression(
|
|
expr: Expr_Assign(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_BinaryOp_BooleanOr(
|
|
left: Expr_Variable(
|
|
name: b
|
|
)
|
|
right: Expr_Variable(
|
|
name: c
|
|
)
|
|
)
|
|
)
|
|
)
|
|
10: Stmt_Expression(
|
|
expr: Expr_BinaryOp_LogicalOr(
|
|
left: Expr_Assign(
|
|
var: Expr_Variable(
|
|
name: a
|
|
)
|
|
expr: Expr_Variable(
|
|
name: b
|
|
)
|
|
)
|
|
right: Expr_Variable(
|
|
name: c
|
|
)
|
|
)
|
|
)
|
|
) |