1f843c314e8a1e32d23644d85c0adb233c66a840
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / stmt / generator / yieldPrecedence.test
1 Yield operator precedence
2 -----
3 <?php
4
5 function gen() {
6     yield "a" . "b";
7     yield "a" or die;
8     yield "k" => "a" . "b";
9     yield "k" => "a" or die;
10     var_dump([yield "k" => "a" . "b"]);
11     yield yield "k1" => yield "k2" => "a" . "b";
12     yield yield "k1" => (yield "k2") => "a" . "b";
13     var_dump([yield "k1" => yield "k2" => "a" . "b"]);
14     var_dump([yield "k1" => (yield "k2") => "a" . "b"]);
15 }
16 -----
17 !!php7
18 array(
19     0: Stmt_Function(
20         byRef: false
21         name: Identifier(
22             name: gen
23         )
24         params: array(
25         )
26         returnType: null
27         stmts: array(
28             0: Stmt_Expression(
29                 expr: Expr_Yield(
30                     key: null
31                     value: Expr_BinaryOp_Concat(
32                         left: Scalar_String(
33                             value: a
34                         )
35                         right: Scalar_String(
36                             value: b
37                         )
38                     )
39                 )
40             )
41             1: Stmt_Expression(
42                 expr: Expr_BinaryOp_LogicalOr(
43                     left: Expr_Yield(
44                         key: null
45                         value: Scalar_String(
46                             value: a
47                         )
48                     )
49                     right: Expr_Exit(
50                         expr: null
51                     )
52                 )
53             )
54             2: Stmt_Expression(
55                 expr: Expr_Yield(
56                     key: Scalar_String(
57                         value: k
58                     )
59                     value: Expr_BinaryOp_Concat(
60                         left: Scalar_String(
61                             value: a
62                         )
63                         right: Scalar_String(
64                             value: b
65                         )
66                     )
67                 )
68             )
69             3: Stmt_Expression(
70                 expr: Expr_BinaryOp_LogicalOr(
71                     left: Expr_Yield(
72                         key: Scalar_String(
73                             value: k
74                         )
75                         value: Scalar_String(
76                             value: a
77                         )
78                     )
79                     right: Expr_Exit(
80                         expr: null
81                     )
82                 )
83             )
84             4: Stmt_Expression(
85                 expr: Expr_FuncCall(
86                     name: Name(
87                         parts: array(
88                             0: var_dump
89                         )
90                     )
91                     args: array(
92                         0: Arg(
93                             value: Expr_Array(
94                                 items: array(
95                                     0: Expr_ArrayItem(
96                                         key: null
97                                         value: Expr_Yield(
98                                             key: Scalar_String(
99                                                 value: k
100                                             )
101                                             value: Expr_BinaryOp_Concat(
102                                                 left: Scalar_String(
103                                                     value: a
104                                                 )
105                                                 right: Scalar_String(
106                                                     value: b
107                                                 )
108                                             )
109                                         )
110                                         byRef: false
111                                     )
112                                 )
113                             )
114                             byRef: false
115                             unpack: false
116                         )
117                     )
118                 )
119             )
120             5: Stmt_Expression(
121                 expr: Expr_Yield(
122                     key: null
123                     value: Expr_Yield(
124                         key: Scalar_String(
125                             value: k1
126                         )
127                         value: Expr_Yield(
128                             key: Scalar_String(
129                                 value: k2
130                             )
131                             value: Expr_BinaryOp_Concat(
132                                 left: Scalar_String(
133                                     value: a
134                                 )
135                                 right: Scalar_String(
136                                     value: b
137                                 )
138                             )
139                         )
140                     )
141                 )
142             )
143             6: Stmt_Expression(
144                 expr: Expr_Yield(
145                     key: Expr_Yield(
146                         key: Scalar_String(
147                             value: k1
148                         )
149                         value: Expr_Yield(
150                             key: null
151                             value: Scalar_String(
152                                 value: k2
153                             )
154                         )
155                     )
156                     value: Expr_BinaryOp_Concat(
157                         left: Scalar_String(
158                             value: a
159                         )
160                         right: Scalar_String(
161                             value: b
162                         )
163                     )
164                 )
165             )
166             7: Stmt_Expression(
167                 expr: Expr_FuncCall(
168                     name: Name(
169                         parts: array(
170                             0: var_dump
171                         )
172                     )
173                     args: array(
174                         0: Arg(
175                             value: Expr_Array(
176                                 items: array(
177                                     0: Expr_ArrayItem(
178                                         key: null
179                                         value: Expr_Yield(
180                                             key: Scalar_String(
181                                                 value: k1
182                                             )
183                                             value: Expr_Yield(
184                                                 key: Scalar_String(
185                                                     value: k2
186                                                 )
187                                                 value: Expr_BinaryOp_Concat(
188                                                     left: Scalar_String(
189                                                         value: a
190                                                     )
191                                                     right: Scalar_String(
192                                                         value: b
193                                                     )
194                                                 )
195                                             )
196                                         )
197                                         byRef: false
198                                     )
199                                 )
200                             )
201                             byRef: false
202                             unpack: false
203                         )
204                     )
205                 )
206             )
207             8: Stmt_Expression(
208                 expr: Expr_FuncCall(
209                     name: Name(
210                         parts: array(
211                             0: var_dump
212                         )
213                     )
214                     args: array(
215                         0: Arg(
216                             value: Expr_Array(
217                                 items: array(
218                                     0: Expr_ArrayItem(
219                                         key: Expr_Yield(
220                                             key: Scalar_String(
221                                                 value: k1
222                                             )
223                                             value: Expr_Yield(
224                                                 key: null
225                                                 value: Scalar_String(
226                                                     value: k2
227                                                 )
228                                             )
229                                         )
230                                         value: Expr_BinaryOp_Concat(
231                                             left: Scalar_String(
232                                                 value: a
233                                             )
234                                             right: Scalar_String(
235                                                 value: b
236                                             )
237                                         )
238                                         byRef: false
239                                     )
240                                 )
241                             )
242                             byRef: false
243                             unpack: false
244                         )
245                     )
246                 )
247             )
248         )
249     )
250 )