@@ -86,163 +86,163 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
8686%precedence T_ELSEIF
8787%precedence T_ELSE
8888
89- %token <ast> T_LNUMBER " integer"
90- %token <ast> T_DNUMBER " floating-point number"
91- %token <ast> T_STRING " identifier"
92- %token <ast> T_NAME_FULLY_QUALIFIED " fully qualified name"
93- %token <ast> T_NAME_RELATIVE " namespace-relative name"
94- %token <ast> T_NAME_QUALIFIED " namespaced name"
95- %token <ast> T_VARIABLE " variable"
96- %token <ast> T_INLINE_HTML
97- %token <ast> T_ENCAPSED_AND_WHITESPACE " string content"
98- %token <ast> T_CONSTANT_ENCAPSED_STRING " quoted string"
99- %token <ast> T_STRING_VARNAME " variable name"
100- %token <ast> T_NUM_STRING " number"
101-
102- %token <ident> T_INCLUDE " 'include'"
103- %token <ident> T_INCLUDE_ONCE " 'include_once'"
104- %token <ident> T_EVAL " 'eval'"
105- %token <ident> T_REQUIRE " 'require'"
106- %token <ident> T_REQUIRE_ONCE " 'require_once'"
107- %token <ident> T_LOGICAL_OR " 'or'"
108- %token <ident> T_LOGICAL_XOR " 'xor'"
109- %token <ident> T_LOGICAL_AND " 'and'"
110- %token <ident> T_PRINT " 'print'"
111- %token <ident> T_YIELD " 'yield'"
112- %token <ident> T_YIELD_FROM " 'yield from'"
113- %token <ident> T_INSTANCEOF " 'instanceof'"
114- %token <ident> T_NEW " 'new'"
115- %token <ident> T_CLONE " 'clone'"
116- %token <ident> T_EXIT " 'exit'"
117- %token <ident> T_IF " 'if'"
118- %token <ident> T_ELSEIF " 'elseif'"
119- %token <ident> T_ELSE " 'else'"
120- %token <ident> T_ENDIF " 'endif'"
121- %token <ident> T_ECHO " 'echo'"
122- %token <ident> T_DO " 'do'"
123- %token <ident> T_WHILE " 'while'"
124- %token <ident> T_ENDWHILE " 'endwhile'"
125- %token <ident> T_FOR " 'for'"
126- %token <ident> T_ENDFOR " 'endfor'"
127- %token <ident> T_FOREACH " 'foreach'"
128- %token <ident> T_ENDFOREACH " 'endforeach'"
129- %token <ident> T_DECLARE " 'declare'"
130- %token <ident> T_ENDDECLARE " 'enddeclare'"
131- %token <ident> T_AS " 'as'"
132- %token <ident> T_SWITCH " 'switch'"
133- %token <ident> T_ENDSWITCH " 'endswitch'"
134- %token <ident> T_CASE " 'case'"
135- %token <ident> T_DEFAULT " 'default'"
136- %token <ident> T_MATCH " 'match'"
137- %token <ident> T_BREAK " 'break'"
138- %token <ident> T_CONTINUE " 'continue'"
139- %token <ident> T_GOTO " 'goto'"
140- %token <ident> T_FUNCTION " 'function'"
141- %token <ident> T_FN " 'fn'"
142- %token <ident> T_CONST " 'const'"
143- %token <ident> T_RETURN " 'return'"
144- %token <ident> T_TRY " 'try'"
145- %token <ident> T_CATCH " 'catch'"
146- %token <ident> T_FINALLY " 'finally'"
147- %token <ident> T_THROW " 'throw'"
148- %token <ident> T_USE " 'use'"
149- %token <ident> T_INSTEADOF " 'insteadof'"
150- %token <ident> T_GLOBAL " 'global'"
151- %token <ident> T_STATIC " 'static'"
152- %token <ident> T_ABSTRACT " 'abstract'"
153- %token <ident> T_FINAL " 'final'"
154- %token <ident> T_PRIVATE " 'private'"
155- %token <ident> T_PROTECTED " 'protected'"
156- %token <ident> T_PUBLIC " 'public'"
157- %token <ident> T_READONLY " 'readonly'"
158- %token <ident> T_VAR " 'var'"
159- %token <ident> T_UNSET " 'unset'"
160- %token <ident> T_ISSET " 'isset'"
161- %token <ident> T_EMPTY " 'empty'"
162- %token <ident> T_HALT_COMPILER " '__halt_compiler'"
163- %token <ident> T_CLASS " 'class'"
164- %token <ident> T_TRAIT " 'trait'"
165- %token <ident> T_INTERFACE " 'interface'"
166- %token <ident> T_ENUM " 'enum'"
167- %token <ident> T_EXTENDS " 'extends'"
168- %token <ident> T_IMPLEMENTS " 'implements'"
169- %token <ident> T_NAMESPACE " 'namespace'"
170- %token <ident> T_LIST " 'list'"
171- %token <ident> T_ARRAY " 'array'"
172- %token <ident> T_CALLABLE " 'callable'"
173- %token <ident> T_LINE " '__LINE__'"
174- %token <ident> T_FILE " '__FILE__'"
175- %token <ident> T_DIR " '__DIR__'"
176- %token <ident> T_CLASS_C " '__CLASS__'"
177- %token <ident> T_TRAIT_C " '__TRAIT__'"
178- %token <ident> T_METHOD_C " '__METHOD__'"
179- %token <ident> T_FUNC_C " '__FUNCTION__'"
180- %token <ident> T_NS_C " '__NAMESPACE__'"
89+ %token <ast> T_LNUMBER 260 " integer"
90+ %token <ast> T_DNUMBER 261 " floating-point number"
91+ %token <ast> T_STRING 262 " identifier"
92+ %token <ast> T_NAME_FULLY_QUALIFIED 263 " fully qualified name"
93+ %token <ast> T_NAME_RELATIVE 264 " namespace-relative name"
94+ %token <ast> T_NAME_QUALIFIED 265 " namespaced name"
95+ %token <ast> T_VARIABLE 266 " variable"
96+ %token <ast> T_INLINE_HTML 267
97+ %token <ast> T_ENCAPSED_AND_WHITESPACE 268 " string content"
98+ %token <ast> T_CONSTANT_ENCAPSED_STRING 269 " quoted string"
99+ %token <ast> T_STRING_VARNAME 270 " variable name"
100+ %token <ast> T_NUM_STRING 271 " number"
101+
102+ %token <ident> T_INCLUDE 272 " 'include'"
103+ %token <ident> T_INCLUDE_ONCE 273 " 'include_once'"
104+ %token <ident> T_EVAL 274 " 'eval'"
105+ %token <ident> T_REQUIRE 275 " 'require'"
106+ %token <ident> T_REQUIRE_ONCE 276 " 'require_once'"
107+ %token <ident> T_LOGICAL_OR 277 " 'or'"
108+ %token <ident> T_LOGICAL_XOR 278 " 'xor'"
109+ %token <ident> T_LOGICAL_AND 279 " 'and'"
110+ %token <ident> T_PRINT 280 " 'print'"
111+ %token <ident> T_YIELD 281 " 'yield'"
112+ %token <ident> T_YIELD_FROM 282 " 'yield from'"
113+ %token <ident> T_INSTANCEOF 283 " 'instanceof'"
114+ %token <ident> T_NEW 284 " 'new'"
115+ %token <ident> T_CLONE 285 " 'clone'"
116+ %token <ident> T_EXIT 286 " 'exit'"
117+ %token <ident> T_IF 287 " 'if'"
118+ %token <ident> T_ELSEIF 288 " 'elseif'"
119+ %token <ident> T_ELSE 289 " 'else'"
120+ %token <ident> T_ENDIF 290 " 'endif'"
121+ %token <ident> T_ECHO 291 " 'echo'"
122+ %token <ident> T_DO 292 " 'do'"
123+ %token <ident> T_WHILE 293 " 'while'"
124+ %token <ident> T_ENDWHILE 294 " 'endwhile'"
125+ %token <ident> T_FOR 295 " 'for'"
126+ %token <ident> T_ENDFOR 296 " 'endfor'"
127+ %token <ident> T_FOREACH 297 " 'foreach'"
128+ %token <ident> T_ENDFOREACH 298 " 'endforeach'"
129+ %token <ident> T_DECLARE 299 " 'declare'"
130+ %token <ident> T_ENDDECLARE 300 " 'enddeclare'"
131+ %token <ident> T_AS 301 " 'as'"
132+ %token <ident> T_SWITCH 302 " 'switch'"
133+ %token <ident> T_ENDSWITCH 303 " 'endswitch'"
134+ %token <ident> T_CASE 304 " 'case'"
135+ %token <ident> T_DEFAULT 305 " 'default'"
136+ %token <ident> T_MATCH 306 " 'match'"
137+ %token <ident> T_BREAK 307 " 'break'"
138+ %token <ident> T_CONTINUE 308 " 'continue'"
139+ %token <ident> T_GOTO 309 " 'goto'"
140+ %token <ident> T_FUNCTION 310 " 'function'"
141+ %token <ident> T_FN 311 " 'fn'"
142+ %token <ident> T_CONST 312 " 'const'"
143+ %token <ident> T_RETURN 313 " 'return'"
144+ %token <ident> T_TRY 314 " 'try'"
145+ %token <ident> T_CATCH 315 " 'catch'"
146+ %token <ident> T_FINALLY 316 " 'finally'"
147+ %token <ident> T_THROW 317 " 'throw'"
148+ %token <ident> T_USE 318 " 'use'"
149+ %token <ident> T_INSTEADOF 319 " 'insteadof'"
150+ %token <ident> T_GLOBAL 320 " 'global'"
151+ %token <ident> T_STATIC 321 " 'static'"
152+ %token <ident> T_ABSTRACT 322 " 'abstract'"
153+ %token <ident> T_FINAL 323 " 'final'"
154+ %token <ident> T_PRIVATE 324 " 'private'"
155+ %token <ident> T_PROTECTED 325 " 'protected'"
156+ %token <ident> T_PUBLIC 326 " 'public'"
157+ %token <ident> T_READONLY 327 " 'readonly'"
158+ %token <ident> T_VAR 328 " 'var'"
159+ %token <ident> T_UNSET 329 " 'unset'"
160+ %token <ident> T_ISSET 330 " 'isset'"
161+ %token <ident> T_EMPTY 331 " 'empty'"
162+ %token <ident> T_HALT_COMPILER 332 " '__halt_compiler'"
163+ %token <ident> T_CLASS 333 " 'class'"
164+ %token <ident> T_TRAIT 334 " 'trait'"
165+ %token <ident> T_INTERFACE 335 " 'interface'"
166+ %token <ident> T_ENUM 336 " 'enum'"
167+ %token <ident> T_EXTENDS 337 " 'extends'"
168+ %token <ident> T_IMPLEMENTS 338 " 'implements'"
169+ %token <ident> T_NAMESPACE 339 " 'namespace'"
170+ %token <ident> T_LIST 340 " 'list'"
171+ %token <ident> T_ARRAY 341 " 'array'"
172+ %token <ident> T_CALLABLE 342 " 'callable'"
173+ %token <ident> T_LINE 343 " '__LINE__'"
174+ %token <ident> T_FILE 344 " '__FILE__'"
175+ %token <ident> T_DIR 345 " '__DIR__'"
176+ %token <ident> T_CLASS_C 346 " '__CLASS__'"
177+ %token <ident> T_TRAIT_C 347 " '__TRAIT__'"
178+ %token <ident> T_METHOD_C 348 " '__METHOD__'"
179+ %token <ident> T_FUNC_C 349 " '__FUNCTION__'"
180+ %token <ident> T_NS_C 350 " '__NAMESPACE__'"
181181
182182%token END 0 " end of file"
183- %token T_ATTRIBUTE " '#['"
184- %token T_PLUS_EQUAL " '+='"
185- %token T_MINUS_EQUAL " '-='"
186- %token T_MUL_EQUAL " '*='"
187- %token T_DIV_EQUAL " '/='"
188- %token T_CONCAT_EQUAL " '.='"
189- %token T_MOD_EQUAL " '%='"
190- %token T_AND_EQUAL " '&='"
191- %token T_OR_EQUAL " '|='"
192- %token T_XOR_EQUAL " '^='"
193- %token T_SL_EQUAL " '<<='"
194- %token T_SR_EQUAL " '>>='"
195- %token T_COALESCE_EQUAL " '??='"
196- %token T_BOOLEAN_OR " '||'"
197- %token T_BOOLEAN_AND " '&&'"
198- %token T_IS_EQUAL " '=='"
199- %token T_IS_NOT_EQUAL " '!='"
200- %token T_IS_IDENTICAL " '==='"
201- %token T_IS_NOT_IDENTICAL " '!=='"
202- %token T_IS_SMALLER_OR_EQUAL " '<='"
203- %token T_IS_GREATER_OR_EQUAL " '>='"
204- %token T_SPACESHIP " '<=>'"
205- %token T_SL " '<<'"
206- %token T_SR " '>>'"
207- %token T_INC " '++'"
208- %token T_DEC " '--'"
209- %token T_INT_CAST " '(int)'"
210- %token T_DOUBLE_CAST " '(double)'"
211- %token T_STRING_CAST " '(string)'"
212- %token T_ARRAY_CAST " '(array)'"
213- %token T_OBJECT_CAST " '(object)'"
214- %token T_BOOL_CAST " '(bool)'"
215- %token T_UNSET_CAST " '(unset)'"
216- %token T_OBJECT_OPERATOR " '->'"
217- %token T_NULLSAFE_OBJECT_OPERATOR " '?->'"
218- %token T_DOUBLE_ARROW " '=>'"
219- %token T_COMMENT " comment"
220- %token T_DOC_COMMENT " doc comment"
221- %token T_OPEN_TAG " open tag"
222- %token T_OPEN_TAG_WITH_ECHO " '<?='"
223- %token T_CLOSE_TAG " '?>'"
224- %token T_WHITESPACE " whitespace"
225- %token T_START_HEREDOC " heredoc start"
226- %token T_END_HEREDOC " heredoc end"
227- %token T_DOLLAR_OPEN_CURLY_BRACES " '${'"
228- %token T_CURLY_OPEN " '{$'"
229- %token T_PAAMAYIM_NEKUDOTAYIM " '::'"
230- %token T_NS_SEPARATOR " '\\'"
231- %token T_ELLIPSIS " '...'"
232- %token T_COALESCE " '??'"
233- %token T_POW " '**'"
234- %token T_POW_EQUAL " '**='"
183+ %token T_ATTRIBUTE 351 " '#['"
184+ %token T_PLUS_EQUAL 352 " '+='"
185+ %token T_MINUS_EQUAL 353 " '-='"
186+ %token T_MUL_EQUAL 354 " '*='"
187+ %token T_DIV_EQUAL 355 " '/='"
188+ %token T_CONCAT_EQUAL 356 " '.='"
189+ %token T_MOD_EQUAL 357 " '%='"
190+ %token T_AND_EQUAL 358 " '&='"
191+ %token T_OR_EQUAL 359 " '|='"
192+ %token T_XOR_EQUAL 360 " '^='"
193+ %token T_SL_EQUAL 361 " '<<='"
194+ %token T_SR_EQUAL 362 " '>>='"
195+ %token T_COALESCE_EQUAL 363 " '??='"
196+ %token T_BOOLEAN_OR 364 " '||'"
197+ %token T_BOOLEAN_AND 365 " '&&'"
198+ %token T_IS_EQUAL 366 " '=='"
199+ %token T_IS_NOT_EQUAL 367 " '!='"
200+ %token T_IS_IDENTICAL 368 " '==='"
201+ %token T_IS_NOT_IDENTICAL 369 " '!=='"
202+ %token T_IS_SMALLER_OR_EQUAL 370 " '<='"
203+ %token T_IS_GREATER_OR_EQUAL 371 " '>='"
204+ %token T_SPACESHIP 372 " '<=>'"
205+ %token T_SL 373 " '<<'"
206+ %token T_SR 374 " '>>'"
207+ %token T_INC 375 " '++'"
208+ %token T_DEC 376 " '--'"
209+ %token T_INT_CAST 377 " '(int)'"
210+ %token T_DOUBLE_CAST 378 " '(double)'"
211+ %token T_STRING_CAST 379 " '(string)'"
212+ %token T_ARRAY_CAST 380 " '(array)'"
213+ %token T_OBJECT_CAST 381 " '(object)'"
214+ %token T_BOOL_CAST 382 " '(bool)'"
215+ %token T_UNSET_CAST 383 " '(unset)'"
216+ %token T_OBJECT_OPERATOR 384 " '->'"
217+ %token T_NULLSAFE_OBJECT_OPERATOR 385 " '?->'"
218+ %token T_DOUBLE_ARROW 386 " '=>'"
219+ %token T_COMMENT 387 " comment"
220+ %token T_DOC_COMMENT 388 " doc comment"
221+ %token T_OPEN_TAG 389 " open tag"
222+ %token T_OPEN_TAG_WITH_ECHO 390 " '<?='"
223+ %token T_CLOSE_TAG 391 " '?>'"
224+ %token T_WHITESPACE 392 " whitespace"
225+ %token T_START_HEREDOC 393 " heredoc start"
226+ %token T_END_HEREDOC 394 " heredoc end"
227+ %token T_DOLLAR_OPEN_CURLY_BRACES 395 " '${'"
228+ %token T_CURLY_OPEN 396 " '{$'"
229+ %token T_PAAMAYIM_NEKUDOTAYIM 397 " '::'"
230+ %token T_NS_SEPARATOR 398 " '\\'"
231+ %token T_ELLIPSIS 399 " '...'"
232+ %token T_COALESCE 400 " '??'"
233+ %token T_POW 401 " '**'"
234+ %token T_POW_EQUAL 402 " '**='"
235235/* We need to split the & token in two to avoid a shift/reduce conflict. For T1&$v and T1&T2,
236236 * with only one token lookahead, bison does not know whether to reduce T1 as a complete type,
237237 * or shift to continue parsing an intersection type. */
238- %token T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG " '&'"
238+ %token T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG 403 " '&'"
239239/* Bison warns on duplicate token literals, so use a different dummy value here.
240240 * It will be fixed up by zend_yytnamerr() later. */
241- %token T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG " amp"
242- %token T_BAD_CHARACTER " invalid character"
241+ %token T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG 404 " amp"
242+ %token T_BAD_CHARACTER 405 " invalid character"
243243
244244/* Token used to force a parse error from the lexer */
245- %token T_ERROR
245+ %token T_ERROR 406
246246
247247%type <ast> top_statement namespace_name name statement function_declaration_statement
248248%type <ast> class_declaration_statement trait_declaration_statement legacy_namespace_name
0 commit comments