comparison vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 5fb285c0d0e3
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 Array/string dereferencing
2 -----
3 <?php
4
5 "abc"[2];
6 "abc"[2][0][0];
7
8 [1, 2, 3][2];
9 [1, 2, 3][2][0][0];
10
11 array(1, 2, 3)[2];
12 array(1, 2, 3)[2][0][0];
13
14 FOO[0];
15 Foo::BAR[1];
16 $foo::BAR[2][1][0];
17 -----
18 array(
19 0: Expr_ArrayDimFetch(
20 var: Scalar_String(
21 value: abc
22 )
23 dim: Scalar_LNumber(
24 value: 2
25 )
26 )
27 1: Expr_ArrayDimFetch(
28 var: Expr_ArrayDimFetch(
29 var: Expr_ArrayDimFetch(
30 var: Scalar_String(
31 value: abc
32 )
33 dim: Scalar_LNumber(
34 value: 2
35 )
36 )
37 dim: Scalar_LNumber(
38 value: 0
39 )
40 )
41 dim: Scalar_LNumber(
42 value: 0
43 )
44 )
45 2: Expr_ArrayDimFetch(
46 var: Expr_Array(
47 items: array(
48 0: Expr_ArrayItem(
49 key: null
50 value: Scalar_LNumber(
51 value: 1
52 )
53 byRef: false
54 )
55 1: Expr_ArrayItem(
56 key: null
57 value: Scalar_LNumber(
58 value: 2
59 )
60 byRef: false
61 )
62 2: Expr_ArrayItem(
63 key: null
64 value: Scalar_LNumber(
65 value: 3
66 )
67 byRef: false
68 )
69 )
70 )
71 dim: Scalar_LNumber(
72 value: 2
73 )
74 )
75 3: Expr_ArrayDimFetch(
76 var: Expr_ArrayDimFetch(
77 var: Expr_ArrayDimFetch(
78 var: Expr_Array(
79 items: array(
80 0: Expr_ArrayItem(
81 key: null
82 value: Scalar_LNumber(
83 value: 1
84 )
85 byRef: false
86 )
87 1: Expr_ArrayItem(
88 key: null
89 value: Scalar_LNumber(
90 value: 2
91 )
92 byRef: false
93 )
94 2: Expr_ArrayItem(
95 key: null
96 value: Scalar_LNumber(
97 value: 3
98 )
99 byRef: false
100 )
101 )
102 )
103 dim: Scalar_LNumber(
104 value: 2
105 )
106 )
107 dim: Scalar_LNumber(
108 value: 0
109 )
110 )
111 dim: Scalar_LNumber(
112 value: 0
113 )
114 )
115 4: Expr_ArrayDimFetch(
116 var: Expr_Array(
117 items: array(
118 0: Expr_ArrayItem(
119 key: null
120 value: Scalar_LNumber(
121 value: 1
122 )
123 byRef: false
124 )
125 1: Expr_ArrayItem(
126 key: null
127 value: Scalar_LNumber(
128 value: 2
129 )
130 byRef: false
131 )
132 2: Expr_ArrayItem(
133 key: null
134 value: Scalar_LNumber(
135 value: 3
136 )
137 byRef: false
138 )
139 )
140 )
141 dim: Scalar_LNumber(
142 value: 2
143 )
144 )
145 5: Expr_ArrayDimFetch(
146 var: Expr_ArrayDimFetch(
147 var: Expr_ArrayDimFetch(
148 var: Expr_Array(
149 items: array(
150 0: Expr_ArrayItem(
151 key: null
152 value: Scalar_LNumber(
153 value: 1
154 )
155 byRef: false
156 )
157 1: Expr_ArrayItem(
158 key: null
159 value: Scalar_LNumber(
160 value: 2
161 )
162 byRef: false
163 )
164 2: Expr_ArrayItem(
165 key: null
166 value: Scalar_LNumber(
167 value: 3
168 )
169 byRef: false
170 )
171 )
172 )
173 dim: Scalar_LNumber(
174 value: 2
175 )
176 )
177 dim: Scalar_LNumber(
178 value: 0
179 )
180 )
181 dim: Scalar_LNumber(
182 value: 0
183 )
184 )
185 6: Expr_ArrayDimFetch(
186 var: Expr_ConstFetch(
187 name: Name(
188 parts: array(
189 0: FOO
190 )
191 )
192 )
193 dim: Scalar_LNumber(
194 value: 0
195 )
196 )
197 7: Expr_ArrayDimFetch(
198 var: Expr_ClassConstFetch(
199 class: Name(
200 parts: array(
201 0: Foo
202 )
203 )
204 name: BAR
205 )
206 dim: Scalar_LNumber(
207 value: 1
208 )
209 )
210 8: Expr_ArrayDimFetch(
211 var: Expr_ArrayDimFetch(
212 var: Expr_ArrayDimFetch(
213 var: Expr_ClassConstFetch(
214 class: Expr_Variable(
215 name: foo
216 )
217 name: BAR
218 )
219 dim: Scalar_LNumber(
220 value: 2
221 )
222 )
223 dim: Scalar_LNumber(
224 value: 1
225 )
226 )
227 dim: Scalar_LNumber(
228 value: 0
229 )
230 )
231 )