annotate vendor/nikic/php-parser/test/code/parser/expr/ternaryAndCoalesce.test @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 5fb285c0d0e3
children
rev   line source
Chris@0 1 Ternary operator
Chris@0 2 -----
Chris@0 3 <?php
Chris@0 4
Chris@0 5 // ternary
Chris@0 6 $a ? $b : $c;
Chris@0 7 $a ?: $c;
Chris@0 8
Chris@0 9 // precedence
Chris@0 10 $a ? $b : $c ? $d : $e;
Chris@0 11 $a ? $b : ($c ? $d : $e);
Chris@0 12
Chris@0 13 // null coalesce
Chris@0 14 $a ?? $b;
Chris@0 15 $a ?? $b ?? $c;
Chris@0 16 $a ?? $b ? $c : $d;
Chris@0 17 $a && $b ?? $c;
Chris@0 18 -----
Chris@0 19 array(
Chris@13 20 0: Stmt_Expression(
Chris@13 21 expr: Expr_Ternary(
Chris@0 22 cond: Expr_Variable(
Chris@0 23 name: a
Chris@0 24 comments: array(
Chris@13 25 0: // ternary
Chris@0 26 )
Chris@0 27 )
Chris@0 28 if: Expr_Variable(
Chris@0 29 name: b
Chris@0 30 )
Chris@0 31 else: Expr_Variable(
Chris@0 32 name: c
Chris@0 33 )
Chris@0 34 comments: array(
Chris@13 35 0: // ternary
Chris@0 36 )
Chris@0 37 )
Chris@0 38 comments: array(
Chris@13 39 0: // ternary
Chris@0 40 )
Chris@0 41 )
Chris@13 42 1: Stmt_Expression(
Chris@13 43 expr: Expr_Ternary(
Chris@13 44 cond: Expr_Variable(
Chris@13 45 name: a
Chris@13 46 )
Chris@13 47 if: null
Chris@13 48 else: Expr_Variable(
Chris@13 49 name: c
Chris@13 50 )
Chris@0 51 )
Chris@13 52 )
Chris@13 53 2: Stmt_Expression(
Chris@13 54 expr: Expr_Ternary(
Chris@13 55 cond: Expr_Ternary(
Chris@13 56 cond: Expr_Variable(
Chris@13 57 name: a
Chris@13 58 comments: array(
Chris@13 59 0: // precedence
Chris@13 60 )
Chris@13 61 )
Chris@13 62 if: Expr_Variable(
Chris@13 63 name: b
Chris@13 64 )
Chris@13 65 else: Expr_Variable(
Chris@13 66 name: c
Chris@13 67 )
Chris@13 68 comments: array(
Chris@13 69 0: // precedence
Chris@13 70 )
Chris@0 71 )
Chris@0 72 if: Expr_Variable(
Chris@0 73 name: d
Chris@0 74 )
Chris@0 75 else: Expr_Variable(
Chris@0 76 name: e
Chris@0 77 )
Chris@13 78 comments: array(
Chris@13 79 0: // precedence
Chris@13 80 )
Chris@13 81 )
Chris@13 82 comments: array(
Chris@13 83 0: // precedence
Chris@0 84 )
Chris@0 85 )
Chris@13 86 3: Stmt_Expression(
Chris@13 87 expr: Expr_Ternary(
Chris@13 88 cond: Expr_Variable(
Chris@13 89 name: a
Chris@13 90 )
Chris@13 91 if: Expr_Variable(
Chris@13 92 name: b
Chris@13 93 )
Chris@13 94 else: Expr_Ternary(
Chris@13 95 cond: Expr_Variable(
Chris@13 96 name: c
Chris@13 97 )
Chris@13 98 if: Expr_Variable(
Chris@13 99 name: d
Chris@13 100 )
Chris@13 101 else: Expr_Variable(
Chris@13 102 name: e
Chris@13 103 )
Chris@13 104 )
Chris@13 105 )
Chris@13 106 )
Chris@13 107 4: Stmt_Expression(
Chris@13 108 expr: Expr_BinaryOp_Coalesce(
Chris@13 109 left: Expr_Variable(
Chris@13 110 name: a
Chris@13 111 comments: array(
Chris@13 112 0: // null coalesce
Chris@13 113 )
Chris@13 114 )
Chris@13 115 right: Expr_Variable(
Chris@13 116 name: b
Chris@13 117 )
Chris@0 118 comments: array(
Chris@0 119 0: // null coalesce
Chris@0 120 )
Chris@0 121 )
Chris@0 122 comments: array(
Chris@0 123 0: // null coalesce
Chris@0 124 )
Chris@0 125 )
Chris@13 126 5: Stmt_Expression(
Chris@13 127 expr: Expr_BinaryOp_Coalesce(
Chris@13 128 left: Expr_Variable(
Chris@13 129 name: a
Chris@13 130 )
Chris@13 131 right: Expr_BinaryOp_Coalesce(
Chris@13 132 left: Expr_Variable(
Chris@13 133 name: b
Chris@13 134 )
Chris@13 135 right: Expr_Variable(
Chris@13 136 name: c
Chris@13 137 )
Chris@13 138 )
Chris@0 139 )
Chris@13 140 )
Chris@13 141 6: Stmt_Expression(
Chris@13 142 expr: Expr_Ternary(
Chris@13 143 cond: Expr_BinaryOp_Coalesce(
Chris@13 144 left: Expr_Variable(
Chris@13 145 name: a
Chris@13 146 )
Chris@13 147 right: Expr_Variable(
Chris@13 148 name: b
Chris@13 149 )
Chris@13 150 )
Chris@13 151 if: Expr_Variable(
Chris@13 152 name: c
Chris@13 153 )
Chris@13 154 else: Expr_Variable(
Chris@13 155 name: d
Chris@13 156 )
Chris@13 157 )
Chris@13 158 )
Chris@13 159 7: Stmt_Expression(
Chris@13 160 expr: Expr_BinaryOp_Coalesce(
Chris@13 161 left: Expr_BinaryOp_BooleanAnd(
Chris@13 162 left: Expr_Variable(
Chris@13 163 name: a
Chris@13 164 )
Chris@13 165 right: Expr_Variable(
Chris@13 166 name: b
Chris@13 167 )
Chris@0 168 )
Chris@0 169 right: Expr_Variable(
Chris@0 170 name: c
Chris@0 171 )
Chris@0 172 )
Chris@0 173 )
Chris@0 174 )