xref: /PHP-8.2/ext/spl/spl_iterators_arginfo.h (revision b73f139c)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: c01ba2e6ccaad6db28cc6f42d679dc753be57187 */
3 
4 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_EmptyIterator_current, 0, 0, IS_NEVER, 0)
5 ZEND_END_ARG_INFO()
6 
7 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_EmptyIterator_next, 0, 0, IS_VOID, 0)
8 ZEND_END_ARG_INFO()
9 
10 #define arginfo_class_EmptyIterator_key arginfo_class_EmptyIterator_current
11 
12 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_EmptyIterator_valid, 0, 0, IS_FALSE, 0)
13 ZEND_END_ARG_INFO()
14 
15 #define arginfo_class_EmptyIterator_rewind arginfo_class_EmptyIterator_next
16 
17 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CallbackFilterIterator___construct, 0, 0, 2)
18 	ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
19 	ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
20 ZEND_END_ARG_INFO()
21 
22 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CallbackFilterIterator_accept, 0, 0, _IS_BOOL, 0)
23 ZEND_END_ARG_INFO()
24 
25 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveCallbackFilterIterator___construct, 0, 0, 2)
26 	ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0)
27 	ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
28 ZEND_END_ARG_INFO()
29 
30 #define arginfo_class_RecursiveCallbackFilterIterator_hasChildren arginfo_class_CallbackFilterIterator_accept
31 
32 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveCallbackFilterIterator_getChildren, 0, 0, RecursiveCallbackFilterIterator, 0)
33 ZEND_END_ARG_INFO()
34 
35 #define arginfo_class_RecursiveIterator_hasChildren arginfo_class_CallbackFilterIterator_accept
36 
37 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveIterator_getChildren, 0, 0, RecursiveIterator, 1)
38 ZEND_END_ARG_INFO()
39 
40 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveIteratorIterator___construct, 0, 0, 1)
41 	ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0)
42 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "RecursiveIteratorIterator::LEAVES_ONLY")
43 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
44 ZEND_END_ARG_INFO()
45 
46 #define arginfo_class_RecursiveIteratorIterator_rewind arginfo_class_EmptyIterator_next
47 
48 #define arginfo_class_RecursiveIteratorIterator_valid arginfo_class_CallbackFilterIterator_accept
49 
50 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveIteratorIterator_key, 0, 0, IS_MIXED, 0)
51 ZEND_END_ARG_INFO()
52 
53 #define arginfo_class_RecursiveIteratorIterator_current arginfo_class_RecursiveIteratorIterator_key
54 
55 #define arginfo_class_RecursiveIteratorIterator_next arginfo_class_EmptyIterator_next
56 
57 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveIteratorIterator_getDepth, 0, 0, IS_LONG, 0)
58 ZEND_END_ARG_INFO()
59 
60 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveIteratorIterator_getSubIterator, 0, 0, RecursiveIterator, 1)
61 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, level, IS_LONG, 1, "null")
62 ZEND_END_ARG_INFO()
63 
64 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveIteratorIterator_getInnerIterator, 0, 0, RecursiveIterator, 0)
65 ZEND_END_ARG_INFO()
66 
67 #define arginfo_class_RecursiveIteratorIterator_beginIteration arginfo_class_EmptyIterator_next
68 
69 #define arginfo_class_RecursiveIteratorIterator_endIteration arginfo_class_EmptyIterator_next
70 
71 #define arginfo_class_RecursiveIteratorIterator_callHasChildren arginfo_class_CallbackFilterIterator_accept
72 
73 #define arginfo_class_RecursiveIteratorIterator_callGetChildren arginfo_class_RecursiveIterator_getChildren
74 
75 #define arginfo_class_RecursiveIteratorIterator_beginChildren arginfo_class_EmptyIterator_next
76 
77 #define arginfo_class_RecursiveIteratorIterator_endChildren arginfo_class_EmptyIterator_next
78 
79 #define arginfo_class_RecursiveIteratorIterator_nextElement arginfo_class_EmptyIterator_next
80 
81 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveIteratorIterator_setMaxDepth, 0, 0, IS_VOID, 0)
82 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, maxDepth, IS_LONG, 0, "-1")
83 ZEND_END_ARG_INFO()
84 
85 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_RecursiveIteratorIterator_getMaxDepth, 0, 0, MAY_BE_LONG|MAY_BE_FALSE)
86 ZEND_END_ARG_INFO()
87 
88 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_OuterIterator_getInnerIterator, 0, 0, Iterator, 1)
89 ZEND_END_ARG_INFO()
90 
91 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IteratorIterator___construct, 0, 0, 1)
92 	ZEND_ARG_OBJ_INFO(0, iterator, Traversable, 0)
93 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, class, IS_STRING, 1, "null")
94 ZEND_END_ARG_INFO()
95 
96 #define arginfo_class_IteratorIterator_getInnerIterator arginfo_class_OuterIterator_getInnerIterator
97 
98 #define arginfo_class_IteratorIterator_rewind arginfo_class_EmptyIterator_next
99 
100 #define arginfo_class_IteratorIterator_valid arginfo_class_CallbackFilterIterator_accept
101 
102 #define arginfo_class_IteratorIterator_key arginfo_class_RecursiveIteratorIterator_key
103 
104 #define arginfo_class_IteratorIterator_current arginfo_class_RecursiveIteratorIterator_key
105 
106 #define arginfo_class_IteratorIterator_next arginfo_class_EmptyIterator_next
107 
108 #define arginfo_class_FilterIterator_accept arginfo_class_CallbackFilterIterator_accept
109 
110 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_FilterIterator___construct, 0, 0, 1)
111 	ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
112 ZEND_END_ARG_INFO()
113 
114 #define arginfo_class_FilterIterator_rewind arginfo_class_EmptyIterator_next
115 
116 #define arginfo_class_FilterIterator_next arginfo_class_EmptyIterator_next
117 
118 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveFilterIterator___construct, 0, 0, 1)
119 	ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0)
120 ZEND_END_ARG_INFO()
121 
122 #define arginfo_class_RecursiveFilterIterator_hasChildren arginfo_class_CallbackFilterIterator_accept
123 
124 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveFilterIterator_getChildren, 0, 0, RecursiveFilterIterator, 1)
125 ZEND_END_ARG_INFO()
126 
127 #define arginfo_class_ParentIterator___construct arginfo_class_RecursiveFilterIterator___construct
128 
129 #define arginfo_class_ParentIterator_accept arginfo_class_CallbackFilterIterator_accept
130 
131 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SeekableIterator_seek, 0, 1, IS_VOID, 0)
132 	ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
133 ZEND_END_ARG_INFO()
134 
135 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_LimitIterator___construct, 0, 0, 1)
136 	ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
137 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, offset, IS_LONG, 0, "0")
138 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, limit, IS_LONG, 0, "-1")
139 ZEND_END_ARG_INFO()
140 
141 #define arginfo_class_LimitIterator_rewind arginfo_class_EmptyIterator_next
142 
143 #define arginfo_class_LimitIterator_valid arginfo_class_CallbackFilterIterator_accept
144 
145 #define arginfo_class_LimitIterator_next arginfo_class_EmptyIterator_next
146 
147 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_LimitIterator_seek, 0, 1, IS_LONG, 0)
148 	ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
149 ZEND_END_ARG_INFO()
150 
151 #define arginfo_class_LimitIterator_getPosition arginfo_class_RecursiveIteratorIterator_getDepth
152 
153 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CachingIterator___construct, 0, 0, 1)
154 	ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
155 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "CachingIterator::CALL_TOSTRING")
156 ZEND_END_ARG_INFO()
157 
158 #define arginfo_class_CachingIterator_rewind arginfo_class_EmptyIterator_next
159 
160 #define arginfo_class_CachingIterator_valid arginfo_class_CallbackFilterIterator_accept
161 
162 #define arginfo_class_CachingIterator_next arginfo_class_EmptyIterator_next
163 
164 #define arginfo_class_CachingIterator_hasNext arginfo_class_CallbackFilterIterator_accept
165 
166 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator___toString, 0, 0, IS_STRING, 0)
167 ZEND_END_ARG_INFO()
168 
169 #define arginfo_class_CachingIterator_getFlags arginfo_class_RecursiveIteratorIterator_getDepth
170 
171 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_setFlags, 0, 1, IS_VOID, 0)
172 	ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
173 ZEND_END_ARG_INFO()
174 
175 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetGet, 0, 1, IS_MIXED, 0)
176 	ZEND_ARG_INFO(0, key)
177 ZEND_END_ARG_INFO()
178 
179 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetSet, 0, 2, IS_VOID, 0)
180 	ZEND_ARG_INFO(0, key)
181 	ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
182 ZEND_END_ARG_INFO()
183 
184 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetUnset, 0, 1, IS_VOID, 0)
185 	ZEND_ARG_INFO(0, key)
186 ZEND_END_ARG_INFO()
187 
188 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_offsetExists, 0, 1, _IS_BOOL, 0)
189 	ZEND_ARG_INFO(0, key)
190 ZEND_END_ARG_INFO()
191 
192 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_CachingIterator_getCache, 0, 0, IS_ARRAY, 0)
193 ZEND_END_ARG_INFO()
194 
195 #define arginfo_class_CachingIterator_count arginfo_class_RecursiveIteratorIterator_getDepth
196 
197 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveCachingIterator___construct, 0, 0, 1)
198 	ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
199 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "RecursiveCachingIterator::CALL_TOSTRING")
200 ZEND_END_ARG_INFO()
201 
202 #define arginfo_class_RecursiveCachingIterator_hasChildren arginfo_class_CallbackFilterIterator_accept
203 
204 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveCachingIterator_getChildren, 0, 0, RecursiveCachingIterator, 1)
205 ZEND_END_ARG_INFO()
206 
207 #define arginfo_class_NoRewindIterator___construct arginfo_class_FilterIterator___construct
208 
209 #define arginfo_class_NoRewindIterator_rewind arginfo_class_EmptyIterator_next
210 
211 #define arginfo_class_NoRewindIterator_valid arginfo_class_CallbackFilterIterator_accept
212 
213 #define arginfo_class_NoRewindIterator_key arginfo_class_RecursiveIteratorIterator_key
214 
215 #define arginfo_class_NoRewindIterator_current arginfo_class_RecursiveIteratorIterator_key
216 
217 #define arginfo_class_NoRewindIterator_next arginfo_class_EmptyIterator_next
218 
219 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_AppendIterator___construct, 0, 0, 0)
220 ZEND_END_ARG_INFO()
221 
222 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_AppendIterator_append, 0, 1, IS_VOID, 0)
223 	ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
224 ZEND_END_ARG_INFO()
225 
226 #define arginfo_class_AppendIterator_rewind arginfo_class_EmptyIterator_next
227 
228 #define arginfo_class_AppendIterator_valid arginfo_class_CallbackFilterIterator_accept
229 
230 #define arginfo_class_AppendIterator_current arginfo_class_RecursiveIteratorIterator_key
231 
232 #define arginfo_class_AppendIterator_next arginfo_class_EmptyIterator_next
233 
234 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_AppendIterator_getIteratorIndex, 0, 0, IS_LONG, 1)
235 ZEND_END_ARG_INFO()
236 
237 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_AppendIterator_getArrayIterator, 0, 0, ArrayIterator, 0)
238 ZEND_END_ARG_INFO()
239 
240 #define arginfo_class_InfiniteIterator___construct arginfo_class_FilterIterator___construct
241 
242 #define arginfo_class_InfiniteIterator_next arginfo_class_EmptyIterator_next
243 
244 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RegexIterator___construct, 0, 0, 2)
245 	ZEND_ARG_OBJ_INFO(0, iterator, Iterator, 0)
246 	ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
247 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "RegexIterator::MATCH")
248 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
249 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pregFlags, IS_LONG, 0, "0")
250 ZEND_END_ARG_INFO()
251 
252 #define arginfo_class_RegexIterator_accept arginfo_class_CallbackFilterIterator_accept
253 
254 #define arginfo_class_RegexIterator_getMode arginfo_class_RecursiveIteratorIterator_getDepth
255 
256 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RegexIterator_setMode, 0, 1, IS_VOID, 0)
257 	ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
258 ZEND_END_ARG_INFO()
259 
260 #define arginfo_class_RegexIterator_getFlags arginfo_class_RecursiveIteratorIterator_getDepth
261 
262 #define arginfo_class_RegexIterator_setFlags arginfo_class_CachingIterator_setFlags
263 
264 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RegexIterator_getRegex, 0, 0, IS_STRING, 0)
265 ZEND_END_ARG_INFO()
266 
267 #define arginfo_class_RegexIterator_getPregFlags arginfo_class_RecursiveIteratorIterator_getDepth
268 
269 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RegexIterator_setPregFlags, 0, 1, IS_VOID, 0)
270 	ZEND_ARG_TYPE_INFO(0, pregFlags, IS_LONG, 0)
271 ZEND_END_ARG_INFO()
272 
273 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveRegexIterator___construct, 0, 0, 2)
274 	ZEND_ARG_OBJ_INFO(0, iterator, RecursiveIterator, 0)
275 	ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
276 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "RecursiveRegexIterator::MATCH")
277 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
278 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pregFlags, IS_LONG, 0, "0")
279 ZEND_END_ARG_INFO()
280 
281 #define arginfo_class_RecursiveRegexIterator_accept arginfo_class_CallbackFilterIterator_accept
282 
283 #define arginfo_class_RecursiveRegexIterator_hasChildren arginfo_class_CallbackFilterIterator_accept
284 
285 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_INFO_EX(arginfo_class_RecursiveRegexIterator_getChildren, 0, 0, RecursiveRegexIterator, 0)
286 ZEND_END_ARG_INFO()
287 
288 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RecursiveTreeIterator___construct, 0, 0, 1)
289 	ZEND_ARG_INFO(0, iterator)
290 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "RecursiveTreeIterator::BYPASS_KEY")
291 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, cachingIteratorFlags, IS_LONG, 0, "CachingIterator::CATCH_GET_CHILD")
292 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, mode, IS_LONG, 0, "RecursiveTreeIterator::SELF_FIRST")
293 ZEND_END_ARG_INFO()
294 
295 #define arginfo_class_RecursiveTreeIterator_key arginfo_class_RecursiveIteratorIterator_key
296 
297 #define arginfo_class_RecursiveTreeIterator_current arginfo_class_RecursiveIteratorIterator_key
298 
299 #define arginfo_class_RecursiveTreeIterator_getPrefix arginfo_class_RegexIterator_getRegex
300 
301 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveTreeIterator_setPostfix, 0, 1, IS_VOID, 0)
302 	ZEND_ARG_TYPE_INFO(0, postfix, IS_STRING, 0)
303 ZEND_END_ARG_INFO()
304 
305 ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RecursiveTreeIterator_setPrefixPart, 0, 2, IS_VOID, 0)
306 	ZEND_ARG_TYPE_INFO(0, part, IS_LONG, 0)
307 	ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
308 ZEND_END_ARG_INFO()
309 
310 #define arginfo_class_RecursiveTreeIterator_getEntry arginfo_class_RegexIterator_getRegex
311 
312 #define arginfo_class_RecursiveTreeIterator_getPostfix arginfo_class_RegexIterator_getRegex
313 
314 
315 ZEND_METHOD(EmptyIterator, current);
316 ZEND_METHOD(EmptyIterator, next);
317 ZEND_METHOD(EmptyIterator, key);
318 ZEND_METHOD(EmptyIterator, valid);
319 ZEND_METHOD(EmptyIterator, rewind);
320 ZEND_METHOD(CallbackFilterIterator, __construct);
321 ZEND_METHOD(CallbackFilterIterator, accept);
322 ZEND_METHOD(RecursiveCallbackFilterIterator, __construct);
323 ZEND_METHOD(RecursiveFilterIterator, hasChildren);
324 ZEND_METHOD(RecursiveCallbackFilterIterator, getChildren);
325 ZEND_METHOD(RecursiveIteratorIterator, __construct);
326 ZEND_METHOD(RecursiveIteratorIterator, rewind);
327 ZEND_METHOD(RecursiveIteratorIterator, valid);
328 ZEND_METHOD(RecursiveIteratorIterator, key);
329 ZEND_METHOD(RecursiveIteratorIterator, current);
330 ZEND_METHOD(RecursiveIteratorIterator, next);
331 ZEND_METHOD(RecursiveIteratorIterator, getDepth);
332 ZEND_METHOD(RecursiveIteratorIterator, getSubIterator);
333 ZEND_METHOD(RecursiveIteratorIterator, getInnerIterator);
334 ZEND_METHOD(RecursiveIteratorIterator, beginIteration);
335 ZEND_METHOD(RecursiveIteratorIterator, endIteration);
336 ZEND_METHOD(RecursiveIteratorIterator, callHasChildren);
337 ZEND_METHOD(RecursiveIteratorIterator, callGetChildren);
338 ZEND_METHOD(RecursiveIteratorIterator, beginChildren);
339 ZEND_METHOD(RecursiveIteratorIterator, endChildren);
340 ZEND_METHOD(RecursiveIteratorIterator, nextElement);
341 ZEND_METHOD(RecursiveIteratorIterator, setMaxDepth);
342 ZEND_METHOD(RecursiveIteratorIterator, getMaxDepth);
343 ZEND_METHOD(IteratorIterator, __construct);
344 ZEND_METHOD(IteratorIterator, getInnerIterator);
345 ZEND_METHOD(IteratorIterator, rewind);
346 ZEND_METHOD(IteratorIterator, valid);
347 ZEND_METHOD(IteratorIterator, key);
348 ZEND_METHOD(IteratorIterator, current);
349 ZEND_METHOD(IteratorIterator, next);
350 ZEND_METHOD(FilterIterator, __construct);
351 ZEND_METHOD(FilterIterator, rewind);
352 ZEND_METHOD(FilterIterator, next);
353 ZEND_METHOD(RecursiveFilterIterator, __construct);
354 ZEND_METHOD(RecursiveFilterIterator, getChildren);
355 ZEND_METHOD(ParentIterator, __construct);
356 ZEND_METHOD(LimitIterator, __construct);
357 ZEND_METHOD(LimitIterator, rewind);
358 ZEND_METHOD(LimitIterator, valid);
359 ZEND_METHOD(LimitIterator, next);
360 ZEND_METHOD(LimitIterator, seek);
361 ZEND_METHOD(LimitIterator, getPosition);
362 ZEND_METHOD(CachingIterator, __construct);
363 ZEND_METHOD(CachingIterator, rewind);
364 ZEND_METHOD(CachingIterator, valid);
365 ZEND_METHOD(CachingIterator, next);
366 ZEND_METHOD(CachingIterator, hasNext);
367 ZEND_METHOD(CachingIterator, __toString);
368 ZEND_METHOD(CachingIterator, getFlags);
369 ZEND_METHOD(CachingIterator, setFlags);
370 ZEND_METHOD(CachingIterator, offsetGet);
371 ZEND_METHOD(CachingIterator, offsetSet);
372 ZEND_METHOD(CachingIterator, offsetUnset);
373 ZEND_METHOD(CachingIterator, offsetExists);
374 ZEND_METHOD(CachingIterator, getCache);
375 ZEND_METHOD(CachingIterator, count);
376 ZEND_METHOD(RecursiveCachingIterator, __construct);
377 ZEND_METHOD(RecursiveCachingIterator, hasChildren);
378 ZEND_METHOD(RecursiveCachingIterator, getChildren);
379 ZEND_METHOD(NoRewindIterator, __construct);
380 ZEND_METHOD(NoRewindIterator, rewind);
381 ZEND_METHOD(NoRewindIterator, valid);
382 ZEND_METHOD(NoRewindIterator, key);
383 ZEND_METHOD(NoRewindIterator, current);
384 ZEND_METHOD(NoRewindIterator, next);
385 ZEND_METHOD(AppendIterator, __construct);
386 ZEND_METHOD(AppendIterator, append);
387 ZEND_METHOD(AppendIterator, rewind);
388 ZEND_METHOD(AppendIterator, valid);
389 ZEND_METHOD(AppendIterator, current);
390 ZEND_METHOD(AppendIterator, next);
391 ZEND_METHOD(AppendIterator, getIteratorIndex);
392 ZEND_METHOD(AppendIterator, getArrayIterator);
393 ZEND_METHOD(InfiniteIterator, __construct);
394 ZEND_METHOD(InfiniteIterator, next);
395 ZEND_METHOD(RegexIterator, __construct);
396 ZEND_METHOD(RegexIterator, accept);
397 ZEND_METHOD(RegexIterator, getMode);
398 ZEND_METHOD(RegexIterator, setMode);
399 ZEND_METHOD(RegexIterator, getFlags);
400 ZEND_METHOD(RegexIterator, setFlags);
401 ZEND_METHOD(RegexIterator, getRegex);
402 ZEND_METHOD(RegexIterator, getPregFlags);
403 ZEND_METHOD(RegexIterator, setPregFlags);
404 ZEND_METHOD(RecursiveRegexIterator, __construct);
405 ZEND_METHOD(RecursiveRegexIterator, accept);
406 ZEND_METHOD(RecursiveRegexIterator, getChildren);
407 ZEND_METHOD(RecursiveTreeIterator, __construct);
408 ZEND_METHOD(RecursiveTreeIterator, key);
409 ZEND_METHOD(RecursiveTreeIterator, current);
410 ZEND_METHOD(RecursiveTreeIterator, getPrefix);
411 ZEND_METHOD(RecursiveTreeIterator, setPostfix);
412 ZEND_METHOD(RecursiveTreeIterator, setPrefixPart);
413 ZEND_METHOD(RecursiveTreeIterator, getEntry);
414 ZEND_METHOD(RecursiveTreeIterator, getPostfix);
415 
416 
417 static const zend_function_entry class_EmptyIterator_methods[] = {
418 	ZEND_ME(EmptyIterator, current, arginfo_class_EmptyIterator_current, ZEND_ACC_PUBLIC)
419 	ZEND_ME(EmptyIterator, next, arginfo_class_EmptyIterator_next, ZEND_ACC_PUBLIC)
420 	ZEND_ME(EmptyIterator, key, arginfo_class_EmptyIterator_key, ZEND_ACC_PUBLIC)
421 	ZEND_ME(EmptyIterator, valid, arginfo_class_EmptyIterator_valid, ZEND_ACC_PUBLIC)
422 	ZEND_ME(EmptyIterator, rewind, arginfo_class_EmptyIterator_rewind, ZEND_ACC_PUBLIC)
423 	ZEND_FE_END
424 };
425 
426 
427 static const zend_function_entry class_CallbackFilterIterator_methods[] = {
428 	ZEND_ME(CallbackFilterIterator, __construct, arginfo_class_CallbackFilterIterator___construct, ZEND_ACC_PUBLIC)
429 	ZEND_ME(CallbackFilterIterator, accept, arginfo_class_CallbackFilterIterator_accept, ZEND_ACC_PUBLIC)
430 	ZEND_FE_END
431 };
432 
433 
434 static const zend_function_entry class_RecursiveCallbackFilterIterator_methods[] = {
435 	ZEND_ME(RecursiveCallbackFilterIterator, __construct, arginfo_class_RecursiveCallbackFilterIterator___construct, ZEND_ACC_PUBLIC)
436 	ZEND_MALIAS(RecursiveFilterIterator, hasChildren, hasChildren, arginfo_class_RecursiveCallbackFilterIterator_hasChildren, ZEND_ACC_PUBLIC)
437 	ZEND_ME(RecursiveCallbackFilterIterator, getChildren, arginfo_class_RecursiveCallbackFilterIterator_getChildren, ZEND_ACC_PUBLIC)
438 	ZEND_FE_END
439 };
440 
441 
442 static const zend_function_entry class_RecursiveIterator_methods[] = {
443 	ZEND_ABSTRACT_ME_WITH_FLAGS(RecursiveIterator, hasChildren, arginfo_class_RecursiveIterator_hasChildren, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
444 	ZEND_ABSTRACT_ME_WITH_FLAGS(RecursiveIterator, getChildren, arginfo_class_RecursiveIterator_getChildren, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
445 	ZEND_FE_END
446 };
447 
448 
449 static const zend_function_entry class_RecursiveIteratorIterator_methods[] = {
450 	ZEND_ME(RecursiveIteratorIterator, __construct, arginfo_class_RecursiveIteratorIterator___construct, ZEND_ACC_PUBLIC)
451 	ZEND_ME(RecursiveIteratorIterator, rewind, arginfo_class_RecursiveIteratorIterator_rewind, ZEND_ACC_PUBLIC)
452 	ZEND_ME(RecursiveIteratorIterator, valid, arginfo_class_RecursiveIteratorIterator_valid, ZEND_ACC_PUBLIC)
453 	ZEND_ME(RecursiveIteratorIterator, key, arginfo_class_RecursiveIteratorIterator_key, ZEND_ACC_PUBLIC)
454 	ZEND_ME(RecursiveIteratorIterator, current, arginfo_class_RecursiveIteratorIterator_current, ZEND_ACC_PUBLIC)
455 	ZEND_ME(RecursiveIteratorIterator, next, arginfo_class_RecursiveIteratorIterator_next, ZEND_ACC_PUBLIC)
456 	ZEND_ME(RecursiveIteratorIterator, getDepth, arginfo_class_RecursiveIteratorIterator_getDepth, ZEND_ACC_PUBLIC)
457 	ZEND_ME(RecursiveIteratorIterator, getSubIterator, arginfo_class_RecursiveIteratorIterator_getSubIterator, ZEND_ACC_PUBLIC)
458 	ZEND_ME(RecursiveIteratorIterator, getInnerIterator, arginfo_class_RecursiveIteratorIterator_getInnerIterator, ZEND_ACC_PUBLIC)
459 	ZEND_ME(RecursiveIteratorIterator, beginIteration, arginfo_class_RecursiveIteratorIterator_beginIteration, ZEND_ACC_PUBLIC)
460 	ZEND_ME(RecursiveIteratorIterator, endIteration, arginfo_class_RecursiveIteratorIterator_endIteration, ZEND_ACC_PUBLIC)
461 	ZEND_ME(RecursiveIteratorIterator, callHasChildren, arginfo_class_RecursiveIteratorIterator_callHasChildren, ZEND_ACC_PUBLIC)
462 	ZEND_ME(RecursiveIteratorIterator, callGetChildren, arginfo_class_RecursiveIteratorIterator_callGetChildren, ZEND_ACC_PUBLIC)
463 	ZEND_ME(RecursiveIteratorIterator, beginChildren, arginfo_class_RecursiveIteratorIterator_beginChildren, ZEND_ACC_PUBLIC)
464 	ZEND_ME(RecursiveIteratorIterator, endChildren, arginfo_class_RecursiveIteratorIterator_endChildren, ZEND_ACC_PUBLIC)
465 	ZEND_ME(RecursiveIteratorIterator, nextElement, arginfo_class_RecursiveIteratorIterator_nextElement, ZEND_ACC_PUBLIC)
466 	ZEND_ME(RecursiveIteratorIterator, setMaxDepth, arginfo_class_RecursiveIteratorIterator_setMaxDepth, ZEND_ACC_PUBLIC)
467 	ZEND_ME(RecursiveIteratorIterator, getMaxDepth, arginfo_class_RecursiveIteratorIterator_getMaxDepth, ZEND_ACC_PUBLIC)
468 	ZEND_FE_END
469 };
470 
471 
472 static const zend_function_entry class_OuterIterator_methods[] = {
473 	ZEND_ABSTRACT_ME_WITH_FLAGS(OuterIterator, getInnerIterator, arginfo_class_OuterIterator_getInnerIterator, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
474 	ZEND_FE_END
475 };
476 
477 
478 static const zend_function_entry class_IteratorIterator_methods[] = {
479 	ZEND_ME(IteratorIterator, __construct, arginfo_class_IteratorIterator___construct, ZEND_ACC_PUBLIC)
480 	ZEND_ME(IteratorIterator, getInnerIterator, arginfo_class_IteratorIterator_getInnerIterator, ZEND_ACC_PUBLIC)
481 	ZEND_ME(IteratorIterator, rewind, arginfo_class_IteratorIterator_rewind, ZEND_ACC_PUBLIC)
482 	ZEND_ME(IteratorIterator, valid, arginfo_class_IteratorIterator_valid, ZEND_ACC_PUBLIC)
483 	ZEND_ME(IteratorIterator, key, arginfo_class_IteratorIterator_key, ZEND_ACC_PUBLIC)
484 	ZEND_ME(IteratorIterator, current, arginfo_class_IteratorIterator_current, ZEND_ACC_PUBLIC)
485 	ZEND_ME(IteratorIterator, next, arginfo_class_IteratorIterator_next, ZEND_ACC_PUBLIC)
486 	ZEND_FE_END
487 };
488 
489 
490 static const zend_function_entry class_FilterIterator_methods[] = {
491 	ZEND_ABSTRACT_ME_WITH_FLAGS(FilterIterator, accept, arginfo_class_FilterIterator_accept, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
492 	ZEND_ME(FilterIterator, __construct, arginfo_class_FilterIterator___construct, ZEND_ACC_PUBLIC)
493 	ZEND_ME(FilterIterator, rewind, arginfo_class_FilterIterator_rewind, ZEND_ACC_PUBLIC)
494 	ZEND_ME(FilterIterator, next, arginfo_class_FilterIterator_next, ZEND_ACC_PUBLIC)
495 	ZEND_FE_END
496 };
497 
498 
499 static const zend_function_entry class_RecursiveFilterIterator_methods[] = {
500 	ZEND_ME(RecursiveFilterIterator, __construct, arginfo_class_RecursiveFilterIterator___construct, ZEND_ACC_PUBLIC)
501 	ZEND_ME(RecursiveFilterIterator, hasChildren, arginfo_class_RecursiveFilterIterator_hasChildren, ZEND_ACC_PUBLIC)
502 	ZEND_ME(RecursiveFilterIterator, getChildren, arginfo_class_RecursiveFilterIterator_getChildren, ZEND_ACC_PUBLIC)
503 	ZEND_FE_END
504 };
505 
506 
507 static const zend_function_entry class_ParentIterator_methods[] = {
508 	ZEND_ME(ParentIterator, __construct, arginfo_class_ParentIterator___construct, ZEND_ACC_PUBLIC)
509 	ZEND_MALIAS(RecursiveFilterIterator, accept, hasChildren, arginfo_class_ParentIterator_accept, ZEND_ACC_PUBLIC)
510 	ZEND_FE_END
511 };
512 
513 
514 static const zend_function_entry class_SeekableIterator_methods[] = {
515 	ZEND_ABSTRACT_ME_WITH_FLAGS(SeekableIterator, seek, arginfo_class_SeekableIterator_seek, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
516 	ZEND_FE_END
517 };
518 
519 
520 static const zend_function_entry class_LimitIterator_methods[] = {
521 	ZEND_ME(LimitIterator, __construct, arginfo_class_LimitIterator___construct, ZEND_ACC_PUBLIC)
522 	ZEND_ME(LimitIterator, rewind, arginfo_class_LimitIterator_rewind, ZEND_ACC_PUBLIC)
523 	ZEND_ME(LimitIterator, valid, arginfo_class_LimitIterator_valid, ZEND_ACC_PUBLIC)
524 	ZEND_ME(LimitIterator, next, arginfo_class_LimitIterator_next, ZEND_ACC_PUBLIC)
525 	ZEND_ME(LimitIterator, seek, arginfo_class_LimitIterator_seek, ZEND_ACC_PUBLIC)
526 	ZEND_ME(LimitIterator, getPosition, arginfo_class_LimitIterator_getPosition, ZEND_ACC_PUBLIC)
527 	ZEND_FE_END
528 };
529 
530 
531 static const zend_function_entry class_CachingIterator_methods[] = {
532 	ZEND_ME(CachingIterator, __construct, arginfo_class_CachingIterator___construct, ZEND_ACC_PUBLIC)
533 	ZEND_ME(CachingIterator, rewind, arginfo_class_CachingIterator_rewind, ZEND_ACC_PUBLIC)
534 	ZEND_ME(CachingIterator, valid, arginfo_class_CachingIterator_valid, ZEND_ACC_PUBLIC)
535 	ZEND_ME(CachingIterator, next, arginfo_class_CachingIterator_next, ZEND_ACC_PUBLIC)
536 	ZEND_ME(CachingIterator, hasNext, arginfo_class_CachingIterator_hasNext, ZEND_ACC_PUBLIC)
537 	ZEND_ME(CachingIterator, __toString, arginfo_class_CachingIterator___toString, ZEND_ACC_PUBLIC)
538 	ZEND_ME(CachingIterator, getFlags, arginfo_class_CachingIterator_getFlags, ZEND_ACC_PUBLIC)
539 	ZEND_ME(CachingIterator, setFlags, arginfo_class_CachingIterator_setFlags, ZEND_ACC_PUBLIC)
540 	ZEND_ME(CachingIterator, offsetGet, arginfo_class_CachingIterator_offsetGet, ZEND_ACC_PUBLIC)
541 	ZEND_ME(CachingIterator, offsetSet, arginfo_class_CachingIterator_offsetSet, ZEND_ACC_PUBLIC)
542 	ZEND_ME(CachingIterator, offsetUnset, arginfo_class_CachingIterator_offsetUnset, ZEND_ACC_PUBLIC)
543 	ZEND_ME(CachingIterator, offsetExists, arginfo_class_CachingIterator_offsetExists, ZEND_ACC_PUBLIC)
544 	ZEND_ME(CachingIterator, getCache, arginfo_class_CachingIterator_getCache, ZEND_ACC_PUBLIC)
545 	ZEND_ME(CachingIterator, count, arginfo_class_CachingIterator_count, ZEND_ACC_PUBLIC)
546 	ZEND_FE_END
547 };
548 
549 
550 static const zend_function_entry class_RecursiveCachingIterator_methods[] = {
551 	ZEND_ME(RecursiveCachingIterator, __construct, arginfo_class_RecursiveCachingIterator___construct, ZEND_ACC_PUBLIC)
552 	ZEND_ME(RecursiveCachingIterator, hasChildren, arginfo_class_RecursiveCachingIterator_hasChildren, ZEND_ACC_PUBLIC)
553 	ZEND_ME(RecursiveCachingIterator, getChildren, arginfo_class_RecursiveCachingIterator_getChildren, ZEND_ACC_PUBLIC)
554 	ZEND_FE_END
555 };
556 
557 
558 static const zend_function_entry class_NoRewindIterator_methods[] = {
559 	ZEND_ME(NoRewindIterator, __construct, arginfo_class_NoRewindIterator___construct, ZEND_ACC_PUBLIC)
560 	ZEND_ME(NoRewindIterator, rewind, arginfo_class_NoRewindIterator_rewind, ZEND_ACC_PUBLIC)
561 	ZEND_ME(NoRewindIterator, valid, arginfo_class_NoRewindIterator_valid, ZEND_ACC_PUBLIC)
562 	ZEND_ME(NoRewindIterator, key, arginfo_class_NoRewindIterator_key, ZEND_ACC_PUBLIC)
563 	ZEND_ME(NoRewindIterator, current, arginfo_class_NoRewindIterator_current, ZEND_ACC_PUBLIC)
564 	ZEND_ME(NoRewindIterator, next, arginfo_class_NoRewindIterator_next, ZEND_ACC_PUBLIC)
565 	ZEND_FE_END
566 };
567 
568 
569 static const zend_function_entry class_AppendIterator_methods[] = {
570 	ZEND_ME(AppendIterator, __construct, arginfo_class_AppendIterator___construct, ZEND_ACC_PUBLIC)
571 	ZEND_ME(AppendIterator, append, arginfo_class_AppendIterator_append, ZEND_ACC_PUBLIC)
572 	ZEND_ME(AppendIterator, rewind, arginfo_class_AppendIterator_rewind, ZEND_ACC_PUBLIC)
573 	ZEND_ME(AppendIterator, valid, arginfo_class_AppendIterator_valid, ZEND_ACC_PUBLIC)
574 	ZEND_ME(AppendIterator, current, arginfo_class_AppendIterator_current, ZEND_ACC_PUBLIC)
575 	ZEND_ME(AppendIterator, next, arginfo_class_AppendIterator_next, ZEND_ACC_PUBLIC)
576 	ZEND_ME(AppendIterator, getIteratorIndex, arginfo_class_AppendIterator_getIteratorIndex, ZEND_ACC_PUBLIC)
577 	ZEND_ME(AppendIterator, getArrayIterator, arginfo_class_AppendIterator_getArrayIterator, ZEND_ACC_PUBLIC)
578 	ZEND_FE_END
579 };
580 
581 
582 static const zend_function_entry class_InfiniteIterator_methods[] = {
583 	ZEND_ME(InfiniteIterator, __construct, arginfo_class_InfiniteIterator___construct, ZEND_ACC_PUBLIC)
584 	ZEND_ME(InfiniteIterator, next, arginfo_class_InfiniteIterator_next, ZEND_ACC_PUBLIC)
585 	ZEND_FE_END
586 };
587 
588 
589 static const zend_function_entry class_RegexIterator_methods[] = {
590 	ZEND_ME(RegexIterator, __construct, arginfo_class_RegexIterator___construct, ZEND_ACC_PUBLIC)
591 	ZEND_ME(RegexIterator, accept, arginfo_class_RegexIterator_accept, ZEND_ACC_PUBLIC)
592 	ZEND_ME(RegexIterator, getMode, arginfo_class_RegexIterator_getMode, ZEND_ACC_PUBLIC)
593 	ZEND_ME(RegexIterator, setMode, arginfo_class_RegexIterator_setMode, ZEND_ACC_PUBLIC)
594 	ZEND_ME(RegexIterator, getFlags, arginfo_class_RegexIterator_getFlags, ZEND_ACC_PUBLIC)
595 	ZEND_ME(RegexIterator, setFlags, arginfo_class_RegexIterator_setFlags, ZEND_ACC_PUBLIC)
596 	ZEND_ME(RegexIterator, getRegex, arginfo_class_RegexIterator_getRegex, ZEND_ACC_PUBLIC)
597 	ZEND_ME(RegexIterator, getPregFlags, arginfo_class_RegexIterator_getPregFlags, ZEND_ACC_PUBLIC)
598 	ZEND_ME(RegexIterator, setPregFlags, arginfo_class_RegexIterator_setPregFlags, ZEND_ACC_PUBLIC)
599 	ZEND_FE_END
600 };
601 
602 
603 static const zend_function_entry class_RecursiveRegexIterator_methods[] = {
604 	ZEND_ME(RecursiveRegexIterator, __construct, arginfo_class_RecursiveRegexIterator___construct, ZEND_ACC_PUBLIC)
605 	ZEND_ME(RecursiveRegexIterator, accept, arginfo_class_RecursiveRegexIterator_accept, ZEND_ACC_PUBLIC)
606 	ZEND_MALIAS(RecursiveFilterIterator, hasChildren, hasChildren, arginfo_class_RecursiveRegexIterator_hasChildren, ZEND_ACC_PUBLIC)
607 	ZEND_ME(RecursiveRegexIterator, getChildren, arginfo_class_RecursiveRegexIterator_getChildren, ZEND_ACC_PUBLIC)
608 	ZEND_FE_END
609 };
610 
611 
612 static const zend_function_entry class_RecursiveTreeIterator_methods[] = {
613 	ZEND_ME(RecursiveTreeIterator, __construct, arginfo_class_RecursiveTreeIterator___construct, ZEND_ACC_PUBLIC)
614 	ZEND_ME(RecursiveTreeIterator, key, arginfo_class_RecursiveTreeIterator_key, ZEND_ACC_PUBLIC)
615 	ZEND_ME(RecursiveTreeIterator, current, arginfo_class_RecursiveTreeIterator_current, ZEND_ACC_PUBLIC)
616 	ZEND_ME(RecursiveTreeIterator, getPrefix, arginfo_class_RecursiveTreeIterator_getPrefix, ZEND_ACC_PUBLIC)
617 	ZEND_ME(RecursiveTreeIterator, setPostfix, arginfo_class_RecursiveTreeIterator_setPostfix, ZEND_ACC_PUBLIC)
618 	ZEND_ME(RecursiveTreeIterator, setPrefixPart, arginfo_class_RecursiveTreeIterator_setPrefixPart, ZEND_ACC_PUBLIC)
619 	ZEND_ME(RecursiveTreeIterator, getEntry, arginfo_class_RecursiveTreeIterator_getEntry, ZEND_ACC_PUBLIC)
620 	ZEND_ME(RecursiveTreeIterator, getPostfix, arginfo_class_RecursiveTreeIterator_getPostfix, ZEND_ACC_PUBLIC)
621 	ZEND_FE_END
622 };
623 
register_class_EmptyIterator(zend_class_entry * class_entry_Iterator)624 static zend_class_entry *register_class_EmptyIterator(zend_class_entry *class_entry_Iterator)
625 {
626 	zend_class_entry ce, *class_entry;
627 
628 	INIT_CLASS_ENTRY(ce, "EmptyIterator", class_EmptyIterator_methods);
629 	class_entry = zend_register_internal_class_ex(&ce, NULL);
630 	zend_class_implements(class_entry, 1, class_entry_Iterator);
631 
632 	return class_entry;
633 }
634 
register_class_CallbackFilterIterator(zend_class_entry * class_entry_FilterIterator)635 static zend_class_entry *register_class_CallbackFilterIterator(zend_class_entry *class_entry_FilterIterator)
636 {
637 	zend_class_entry ce, *class_entry;
638 
639 	INIT_CLASS_ENTRY(ce, "CallbackFilterIterator", class_CallbackFilterIterator_methods);
640 	class_entry = zend_register_internal_class_ex(&ce, class_entry_FilterIterator);
641 
642 	return class_entry;
643 }
644 
register_class_RecursiveCallbackFilterIterator(zend_class_entry * class_entry_CallbackFilterIterator,zend_class_entry * class_entry_RecursiveIterator)645 static zend_class_entry *register_class_RecursiveCallbackFilterIterator(zend_class_entry *class_entry_CallbackFilterIterator, zend_class_entry *class_entry_RecursiveIterator)
646 {
647 	zend_class_entry ce, *class_entry;
648 
649 	INIT_CLASS_ENTRY(ce, "RecursiveCallbackFilterIterator", class_RecursiveCallbackFilterIterator_methods);
650 	class_entry = zend_register_internal_class_ex(&ce, class_entry_CallbackFilterIterator);
651 	zend_class_implements(class_entry, 1, class_entry_RecursiveIterator);
652 
653 	return class_entry;
654 }
655 
register_class_RecursiveIterator(zend_class_entry * class_entry_Iterator)656 static zend_class_entry *register_class_RecursiveIterator(zend_class_entry *class_entry_Iterator)
657 {
658 	zend_class_entry ce, *class_entry;
659 
660 	INIT_CLASS_ENTRY(ce, "RecursiveIterator", class_RecursiveIterator_methods);
661 	class_entry = zend_register_internal_interface(&ce);
662 	zend_class_implements(class_entry, 1, class_entry_Iterator);
663 
664 	return class_entry;
665 }
666 
register_class_RecursiveIteratorIterator(zend_class_entry * class_entry_OuterIterator)667 static zend_class_entry *register_class_RecursiveIteratorIterator(zend_class_entry *class_entry_OuterIterator)
668 {
669 	zend_class_entry ce, *class_entry;
670 
671 	INIT_CLASS_ENTRY(ce, "RecursiveIteratorIterator", class_RecursiveIteratorIterator_methods);
672 	class_entry = zend_register_internal_class_ex(&ce, NULL);
673 	zend_class_implements(class_entry, 1, class_entry_OuterIterator);
674 
675 	zval const_LEAVES_ONLY_value;
676 	ZVAL_LONG(&const_LEAVES_ONLY_value, RIT_LEAVES_ONLY);
677 	zend_string *const_LEAVES_ONLY_name = zend_string_init_interned("LEAVES_ONLY", sizeof("LEAVES_ONLY") - 1, 1);
678 	zend_declare_class_constant_ex(class_entry, const_LEAVES_ONLY_name, &const_LEAVES_ONLY_value, ZEND_ACC_PUBLIC, NULL);
679 	zend_string_release(const_LEAVES_ONLY_name);
680 
681 	zval const_SELF_FIRST_value;
682 	ZVAL_LONG(&const_SELF_FIRST_value, RIT_SELF_FIRST);
683 	zend_string *const_SELF_FIRST_name = zend_string_init_interned("SELF_FIRST", sizeof("SELF_FIRST") - 1, 1);
684 	zend_declare_class_constant_ex(class_entry, const_SELF_FIRST_name, &const_SELF_FIRST_value, ZEND_ACC_PUBLIC, NULL);
685 	zend_string_release(const_SELF_FIRST_name);
686 
687 	zval const_CHILD_FIRST_value;
688 	ZVAL_LONG(&const_CHILD_FIRST_value, RIT_CHILD_FIRST);
689 	zend_string *const_CHILD_FIRST_name = zend_string_init_interned("CHILD_FIRST", sizeof("CHILD_FIRST") - 1, 1);
690 	zend_declare_class_constant_ex(class_entry, const_CHILD_FIRST_name, &const_CHILD_FIRST_value, ZEND_ACC_PUBLIC, NULL);
691 	zend_string_release(const_CHILD_FIRST_name);
692 
693 	zval const_CATCH_GET_CHILD_value;
694 	ZVAL_LONG(&const_CATCH_GET_CHILD_value, RIT_CATCH_GET_CHILD);
695 	zend_string *const_CATCH_GET_CHILD_name = zend_string_init_interned("CATCH_GET_CHILD", sizeof("CATCH_GET_CHILD") - 1, 1);
696 	zend_declare_class_constant_ex(class_entry, const_CATCH_GET_CHILD_name, &const_CATCH_GET_CHILD_value, ZEND_ACC_PUBLIC, NULL);
697 	zend_string_release(const_CATCH_GET_CHILD_name);
698 
699 	return class_entry;
700 }
701 
register_class_OuterIterator(zend_class_entry * class_entry_Iterator)702 static zend_class_entry *register_class_OuterIterator(zend_class_entry *class_entry_Iterator)
703 {
704 	zend_class_entry ce, *class_entry;
705 
706 	INIT_CLASS_ENTRY(ce, "OuterIterator", class_OuterIterator_methods);
707 	class_entry = zend_register_internal_interface(&ce);
708 	zend_class_implements(class_entry, 1, class_entry_Iterator);
709 
710 	return class_entry;
711 }
712 
register_class_IteratorIterator(zend_class_entry * class_entry_OuterIterator)713 static zend_class_entry *register_class_IteratorIterator(zend_class_entry *class_entry_OuterIterator)
714 {
715 	zend_class_entry ce, *class_entry;
716 
717 	INIT_CLASS_ENTRY(ce, "IteratorIterator", class_IteratorIterator_methods);
718 	class_entry = zend_register_internal_class_ex(&ce, NULL);
719 	zend_class_implements(class_entry, 1, class_entry_OuterIterator);
720 
721 	return class_entry;
722 }
723 
register_class_FilterIterator(zend_class_entry * class_entry_IteratorIterator)724 static zend_class_entry *register_class_FilterIterator(zend_class_entry *class_entry_IteratorIterator)
725 {
726 	zend_class_entry ce, *class_entry;
727 
728 	INIT_CLASS_ENTRY(ce, "FilterIterator", class_FilterIterator_methods);
729 	class_entry = zend_register_internal_class_ex(&ce, class_entry_IteratorIterator);
730 	class_entry->ce_flags |= ZEND_ACC_ABSTRACT;
731 
732 	return class_entry;
733 }
734 
register_class_RecursiveFilterIterator(zend_class_entry * class_entry_FilterIterator,zend_class_entry * class_entry_RecursiveIterator)735 static zend_class_entry *register_class_RecursiveFilterIterator(zend_class_entry *class_entry_FilterIterator, zend_class_entry *class_entry_RecursiveIterator)
736 {
737 	zend_class_entry ce, *class_entry;
738 
739 	INIT_CLASS_ENTRY(ce, "RecursiveFilterIterator", class_RecursiveFilterIterator_methods);
740 	class_entry = zend_register_internal_class_ex(&ce, class_entry_FilterIterator);
741 	class_entry->ce_flags |= ZEND_ACC_ABSTRACT;
742 	zend_class_implements(class_entry, 1, class_entry_RecursiveIterator);
743 
744 	return class_entry;
745 }
746 
register_class_ParentIterator(zend_class_entry * class_entry_RecursiveFilterIterator)747 static zend_class_entry *register_class_ParentIterator(zend_class_entry *class_entry_RecursiveFilterIterator)
748 {
749 	zend_class_entry ce, *class_entry;
750 
751 	INIT_CLASS_ENTRY(ce, "ParentIterator", class_ParentIterator_methods);
752 	class_entry = zend_register_internal_class_ex(&ce, class_entry_RecursiveFilterIterator);
753 
754 	return class_entry;
755 }
756 
register_class_SeekableIterator(zend_class_entry * class_entry_Iterator)757 static zend_class_entry *register_class_SeekableIterator(zend_class_entry *class_entry_Iterator)
758 {
759 	zend_class_entry ce, *class_entry;
760 
761 	INIT_CLASS_ENTRY(ce, "SeekableIterator", class_SeekableIterator_methods);
762 	class_entry = zend_register_internal_interface(&ce);
763 	zend_class_implements(class_entry, 1, class_entry_Iterator);
764 
765 	return class_entry;
766 }
767 
register_class_LimitIterator(zend_class_entry * class_entry_IteratorIterator)768 static zend_class_entry *register_class_LimitIterator(zend_class_entry *class_entry_IteratorIterator)
769 {
770 	zend_class_entry ce, *class_entry;
771 
772 	INIT_CLASS_ENTRY(ce, "LimitIterator", class_LimitIterator_methods);
773 	class_entry = zend_register_internal_class_ex(&ce, class_entry_IteratorIterator);
774 
775 	return class_entry;
776 }
777 
register_class_CachingIterator(zend_class_entry * class_entry_IteratorIterator,zend_class_entry * class_entry_ArrayAccess,zend_class_entry * class_entry_Countable,zend_class_entry * class_entry_Stringable)778 static zend_class_entry *register_class_CachingIterator(zend_class_entry *class_entry_IteratorIterator, zend_class_entry *class_entry_ArrayAccess, zend_class_entry *class_entry_Countable, zend_class_entry *class_entry_Stringable)
779 {
780 	zend_class_entry ce, *class_entry;
781 
782 	INIT_CLASS_ENTRY(ce, "CachingIterator", class_CachingIterator_methods);
783 	class_entry = zend_register_internal_class_ex(&ce, class_entry_IteratorIterator);
784 	zend_class_implements(class_entry, 3, class_entry_ArrayAccess, class_entry_Countable, class_entry_Stringable);
785 
786 	zval const_CALL_TOSTRING_value;
787 	ZVAL_LONG(&const_CALL_TOSTRING_value, CIT_CALL_TOSTRING);
788 	zend_string *const_CALL_TOSTRING_name = zend_string_init_interned("CALL_TOSTRING", sizeof("CALL_TOSTRING") - 1, 1);
789 	zend_declare_class_constant_ex(class_entry, const_CALL_TOSTRING_name, &const_CALL_TOSTRING_value, ZEND_ACC_PUBLIC, NULL);
790 	zend_string_release(const_CALL_TOSTRING_name);
791 
792 	zval const_CATCH_GET_CHILD_value;
793 	ZVAL_LONG(&const_CATCH_GET_CHILD_value, CIT_CATCH_GET_CHILD);
794 	zend_string *const_CATCH_GET_CHILD_name = zend_string_init_interned("CATCH_GET_CHILD", sizeof("CATCH_GET_CHILD") - 1, 1);
795 	zend_declare_class_constant_ex(class_entry, const_CATCH_GET_CHILD_name, &const_CATCH_GET_CHILD_value, ZEND_ACC_PUBLIC, NULL);
796 	zend_string_release(const_CATCH_GET_CHILD_name);
797 
798 	zval const_TOSTRING_USE_KEY_value;
799 	ZVAL_LONG(&const_TOSTRING_USE_KEY_value, CIT_TOSTRING_USE_KEY);
800 	zend_string *const_TOSTRING_USE_KEY_name = zend_string_init_interned("TOSTRING_USE_KEY", sizeof("TOSTRING_USE_KEY") - 1, 1);
801 	zend_declare_class_constant_ex(class_entry, const_TOSTRING_USE_KEY_name, &const_TOSTRING_USE_KEY_value, ZEND_ACC_PUBLIC, NULL);
802 	zend_string_release(const_TOSTRING_USE_KEY_name);
803 
804 	zval const_TOSTRING_USE_CURRENT_value;
805 	ZVAL_LONG(&const_TOSTRING_USE_CURRENT_value, CIT_TOSTRING_USE_CURRENT);
806 	zend_string *const_TOSTRING_USE_CURRENT_name = zend_string_init_interned("TOSTRING_USE_CURRENT", sizeof("TOSTRING_USE_CURRENT") - 1, 1);
807 	zend_declare_class_constant_ex(class_entry, const_TOSTRING_USE_CURRENT_name, &const_TOSTRING_USE_CURRENT_value, ZEND_ACC_PUBLIC, NULL);
808 	zend_string_release(const_TOSTRING_USE_CURRENT_name);
809 
810 	zval const_TOSTRING_USE_INNER_value;
811 	ZVAL_LONG(&const_TOSTRING_USE_INNER_value, CIT_TOSTRING_USE_INNER);
812 	zend_string *const_TOSTRING_USE_INNER_name = zend_string_init_interned("TOSTRING_USE_INNER", sizeof("TOSTRING_USE_INNER") - 1, 1);
813 	zend_declare_class_constant_ex(class_entry, const_TOSTRING_USE_INNER_name, &const_TOSTRING_USE_INNER_value, ZEND_ACC_PUBLIC, NULL);
814 	zend_string_release(const_TOSTRING_USE_INNER_name);
815 
816 	zval const_FULL_CACHE_value;
817 	ZVAL_LONG(&const_FULL_CACHE_value, CIT_FULL_CACHE);
818 	zend_string *const_FULL_CACHE_name = zend_string_init_interned("FULL_CACHE", sizeof("FULL_CACHE") - 1, 1);
819 	zend_declare_class_constant_ex(class_entry, const_FULL_CACHE_name, &const_FULL_CACHE_value, ZEND_ACC_PUBLIC, NULL);
820 	zend_string_release(const_FULL_CACHE_name);
821 
822 	return class_entry;
823 }
824 
register_class_RecursiveCachingIterator(zend_class_entry * class_entry_CachingIterator,zend_class_entry * class_entry_RecursiveIterator)825 static zend_class_entry *register_class_RecursiveCachingIterator(zend_class_entry *class_entry_CachingIterator, zend_class_entry *class_entry_RecursiveIterator)
826 {
827 	zend_class_entry ce, *class_entry;
828 
829 	INIT_CLASS_ENTRY(ce, "RecursiveCachingIterator", class_RecursiveCachingIterator_methods);
830 	class_entry = zend_register_internal_class_ex(&ce, class_entry_CachingIterator);
831 	zend_class_implements(class_entry, 1, class_entry_RecursiveIterator);
832 
833 	return class_entry;
834 }
835 
register_class_NoRewindIterator(zend_class_entry * class_entry_IteratorIterator)836 static zend_class_entry *register_class_NoRewindIterator(zend_class_entry *class_entry_IteratorIterator)
837 {
838 	zend_class_entry ce, *class_entry;
839 
840 	INIT_CLASS_ENTRY(ce, "NoRewindIterator", class_NoRewindIterator_methods);
841 	class_entry = zend_register_internal_class_ex(&ce, class_entry_IteratorIterator);
842 
843 	return class_entry;
844 }
845 
register_class_AppendIterator(zend_class_entry * class_entry_IteratorIterator)846 static zend_class_entry *register_class_AppendIterator(zend_class_entry *class_entry_IteratorIterator)
847 {
848 	zend_class_entry ce, *class_entry;
849 
850 	INIT_CLASS_ENTRY(ce, "AppendIterator", class_AppendIterator_methods);
851 	class_entry = zend_register_internal_class_ex(&ce, class_entry_IteratorIterator);
852 
853 	return class_entry;
854 }
855 
register_class_InfiniteIterator(zend_class_entry * class_entry_IteratorIterator)856 static zend_class_entry *register_class_InfiniteIterator(zend_class_entry *class_entry_IteratorIterator)
857 {
858 	zend_class_entry ce, *class_entry;
859 
860 	INIT_CLASS_ENTRY(ce, "InfiniteIterator", class_InfiniteIterator_methods);
861 	class_entry = zend_register_internal_class_ex(&ce, class_entry_IteratorIterator);
862 
863 	return class_entry;
864 }
865 
register_class_RegexIterator(zend_class_entry * class_entry_FilterIterator)866 static zend_class_entry *register_class_RegexIterator(zend_class_entry *class_entry_FilterIterator)
867 {
868 	zend_class_entry ce, *class_entry;
869 
870 	INIT_CLASS_ENTRY(ce, "RegexIterator", class_RegexIterator_methods);
871 	class_entry = zend_register_internal_class_ex(&ce, class_entry_FilterIterator);
872 
873 	zval const_USE_KEY_value;
874 	ZVAL_LONG(&const_USE_KEY_value, REGIT_USE_KEY);
875 	zend_string *const_USE_KEY_name = zend_string_init_interned("USE_KEY", sizeof("USE_KEY") - 1, 1);
876 	zend_declare_class_constant_ex(class_entry, const_USE_KEY_name, &const_USE_KEY_value, ZEND_ACC_PUBLIC, NULL);
877 	zend_string_release(const_USE_KEY_name);
878 
879 	zval const_INVERT_MATCH_value;
880 	ZVAL_LONG(&const_INVERT_MATCH_value, REGIT_INVERTED);
881 	zend_string *const_INVERT_MATCH_name = zend_string_init_interned("INVERT_MATCH", sizeof("INVERT_MATCH") - 1, 1);
882 	zend_declare_class_constant_ex(class_entry, const_INVERT_MATCH_name, &const_INVERT_MATCH_value, ZEND_ACC_PUBLIC, NULL);
883 	zend_string_release(const_INVERT_MATCH_name);
884 
885 	zval const_MATCH_value;
886 	ZVAL_LONG(&const_MATCH_value, REGIT_MODE_MATCH);
887 	zend_string *const_MATCH_name = zend_string_init_interned("MATCH", sizeof("MATCH") - 1, 1);
888 	zend_declare_class_constant_ex(class_entry, const_MATCH_name, &const_MATCH_value, ZEND_ACC_PUBLIC, NULL);
889 	zend_string_release(const_MATCH_name);
890 
891 	zval const_GET_MATCH_value;
892 	ZVAL_LONG(&const_GET_MATCH_value, REGIT_MODE_GET_MATCH);
893 	zend_string *const_GET_MATCH_name = zend_string_init_interned("GET_MATCH", sizeof("GET_MATCH") - 1, 1);
894 	zend_declare_class_constant_ex(class_entry, const_GET_MATCH_name, &const_GET_MATCH_value, ZEND_ACC_PUBLIC, NULL);
895 	zend_string_release(const_GET_MATCH_name);
896 
897 	zval const_ALL_MATCHES_value;
898 	ZVAL_LONG(&const_ALL_MATCHES_value, REGIT_MODE_ALL_MATCHES);
899 	zend_string *const_ALL_MATCHES_name = zend_string_init_interned("ALL_MATCHES", sizeof("ALL_MATCHES") - 1, 1);
900 	zend_declare_class_constant_ex(class_entry, const_ALL_MATCHES_name, &const_ALL_MATCHES_value, ZEND_ACC_PUBLIC, NULL);
901 	zend_string_release(const_ALL_MATCHES_name);
902 
903 	zval const_SPLIT_value;
904 	ZVAL_LONG(&const_SPLIT_value, REGIT_MODE_SPLIT);
905 	zend_string *const_SPLIT_name = zend_string_init_interned("SPLIT", sizeof("SPLIT") - 1, 1);
906 	zend_declare_class_constant_ex(class_entry, const_SPLIT_name, &const_SPLIT_value, ZEND_ACC_PUBLIC, NULL);
907 	zend_string_release(const_SPLIT_name);
908 
909 	zval const_REPLACE_value;
910 	ZVAL_LONG(&const_REPLACE_value, REGIT_MODE_REPLACE);
911 	zend_string *const_REPLACE_name = zend_string_init_interned("REPLACE", sizeof("REPLACE") - 1, 1);
912 	zend_declare_class_constant_ex(class_entry, const_REPLACE_name, &const_REPLACE_value, ZEND_ACC_PUBLIC, NULL);
913 	zend_string_release(const_REPLACE_name);
914 
915 	zval property_replacement_default_value;
916 	ZVAL_NULL(&property_replacement_default_value);
917 	zend_string *property_replacement_name = zend_string_init("replacement", sizeof("replacement") - 1, 1);
918 	zend_declare_typed_property(class_entry, property_replacement_name, &property_replacement_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING|MAY_BE_NULL));
919 	zend_string_release(property_replacement_name);
920 
921 	return class_entry;
922 }
923 
register_class_RecursiveRegexIterator(zend_class_entry * class_entry_RegexIterator,zend_class_entry * class_entry_RecursiveIterator)924 static zend_class_entry *register_class_RecursiveRegexIterator(zend_class_entry *class_entry_RegexIterator, zend_class_entry *class_entry_RecursiveIterator)
925 {
926 	zend_class_entry ce, *class_entry;
927 
928 	INIT_CLASS_ENTRY(ce, "RecursiveRegexIterator", class_RecursiveRegexIterator_methods);
929 	class_entry = zend_register_internal_class_ex(&ce, class_entry_RegexIterator);
930 	zend_class_implements(class_entry, 1, class_entry_RecursiveIterator);
931 
932 	return class_entry;
933 }
934 
register_class_RecursiveTreeIterator(zend_class_entry * class_entry_RecursiveIteratorIterator)935 static zend_class_entry *register_class_RecursiveTreeIterator(zend_class_entry *class_entry_RecursiveIteratorIterator)
936 {
937 	zend_class_entry ce, *class_entry;
938 
939 	INIT_CLASS_ENTRY(ce, "RecursiveTreeIterator", class_RecursiveTreeIterator_methods);
940 	class_entry = zend_register_internal_class_ex(&ce, class_entry_RecursiveIteratorIterator);
941 
942 	zval const_BYPASS_CURRENT_value;
943 	ZVAL_LONG(&const_BYPASS_CURRENT_value, RTIT_BYPASS_CURRENT);
944 	zend_string *const_BYPASS_CURRENT_name = zend_string_init_interned("BYPASS_CURRENT", sizeof("BYPASS_CURRENT") - 1, 1);
945 	zend_declare_class_constant_ex(class_entry, const_BYPASS_CURRENT_name, &const_BYPASS_CURRENT_value, ZEND_ACC_PUBLIC, NULL);
946 	zend_string_release(const_BYPASS_CURRENT_name);
947 
948 	zval const_BYPASS_KEY_value;
949 	ZVAL_LONG(&const_BYPASS_KEY_value, RTIT_BYPASS_KEY);
950 	zend_string *const_BYPASS_KEY_name = zend_string_init_interned("BYPASS_KEY", sizeof("BYPASS_KEY") - 1, 1);
951 	zend_declare_class_constant_ex(class_entry, const_BYPASS_KEY_name, &const_BYPASS_KEY_value, ZEND_ACC_PUBLIC, NULL);
952 	zend_string_release(const_BYPASS_KEY_name);
953 
954 	zval const_PREFIX_LEFT_value;
955 	ZVAL_LONG(&const_PREFIX_LEFT_value, 0);
956 	zend_string *const_PREFIX_LEFT_name = zend_string_init_interned("PREFIX_LEFT", sizeof("PREFIX_LEFT") - 1, 1);
957 	zend_declare_class_constant_ex(class_entry, const_PREFIX_LEFT_name, &const_PREFIX_LEFT_value, ZEND_ACC_PUBLIC, NULL);
958 	zend_string_release(const_PREFIX_LEFT_name);
959 
960 	zval const_PREFIX_MID_HAS_NEXT_value;
961 	ZVAL_LONG(&const_PREFIX_MID_HAS_NEXT_value, 1);
962 	zend_string *const_PREFIX_MID_HAS_NEXT_name = zend_string_init_interned("PREFIX_MID_HAS_NEXT", sizeof("PREFIX_MID_HAS_NEXT") - 1, 1);
963 	zend_declare_class_constant_ex(class_entry, const_PREFIX_MID_HAS_NEXT_name, &const_PREFIX_MID_HAS_NEXT_value, ZEND_ACC_PUBLIC, NULL);
964 	zend_string_release(const_PREFIX_MID_HAS_NEXT_name);
965 
966 	zval const_PREFIX_MID_LAST_value;
967 	ZVAL_LONG(&const_PREFIX_MID_LAST_value, 2);
968 	zend_string *const_PREFIX_MID_LAST_name = zend_string_init_interned("PREFIX_MID_LAST", sizeof("PREFIX_MID_LAST") - 1, 1);
969 	zend_declare_class_constant_ex(class_entry, const_PREFIX_MID_LAST_name, &const_PREFIX_MID_LAST_value, ZEND_ACC_PUBLIC, NULL);
970 	zend_string_release(const_PREFIX_MID_LAST_name);
971 
972 	zval const_PREFIX_END_HAS_NEXT_value;
973 	ZVAL_LONG(&const_PREFIX_END_HAS_NEXT_value, 3);
974 	zend_string *const_PREFIX_END_HAS_NEXT_name = zend_string_init_interned("PREFIX_END_HAS_NEXT", sizeof("PREFIX_END_HAS_NEXT") - 1, 1);
975 	zend_declare_class_constant_ex(class_entry, const_PREFIX_END_HAS_NEXT_name, &const_PREFIX_END_HAS_NEXT_value, ZEND_ACC_PUBLIC, NULL);
976 	zend_string_release(const_PREFIX_END_HAS_NEXT_name);
977 
978 	zval const_PREFIX_END_LAST_value;
979 	ZVAL_LONG(&const_PREFIX_END_LAST_value, 4);
980 	zend_string *const_PREFIX_END_LAST_name = zend_string_init_interned("PREFIX_END_LAST", sizeof("PREFIX_END_LAST") - 1, 1);
981 	zend_declare_class_constant_ex(class_entry, const_PREFIX_END_LAST_name, &const_PREFIX_END_LAST_value, ZEND_ACC_PUBLIC, NULL);
982 	zend_string_release(const_PREFIX_END_LAST_name);
983 
984 	zval const_PREFIX_RIGHT_value;
985 	ZVAL_LONG(&const_PREFIX_RIGHT_value, 5);
986 	zend_string *const_PREFIX_RIGHT_name = zend_string_init_interned("PREFIX_RIGHT", sizeof("PREFIX_RIGHT") - 1, 1);
987 	zend_declare_class_constant_ex(class_entry, const_PREFIX_RIGHT_name, &const_PREFIX_RIGHT_value, ZEND_ACC_PUBLIC, NULL);
988 	zend_string_release(const_PREFIX_RIGHT_name);
989 
990 	return class_entry;
991 }
992