@@ -267,7 +267,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
267
267
%type <ast> echo_expr_list unset_variables catch_name_list catch_list optional_variable parameter_list class_statement_list
268
268
%type <ast> implements_list case_list if_stmt_without_else
269
269
%type <ast> non_empty_parameter_list argument_list non_empty_argument_list property_list
270
- %type <ast> class_const_list first_class_const_decl class_const_decl class_name_list trait_adaptations method_body non_empty_for_exprs
270
+ %type <ast> class_const_list class_const_decl class_name_list trait_adaptations method_body non_empty_for_exprs
271
271
%type <ast> ctor_arguments alt_if_stmt_without_else trait_adaptation_list lexical_vars
272
272
%type <ast> lexical_var_list encaps_list
273
273
%type <ast> array_pair non_empty_array_pair_list array_pair_list possible_array_pair
@@ -940,7 +940,10 @@ attributed_class_statement:
940
940
{ $$ = zend_ast_create(ZEND_AST_PROP_GROUP, $2 , $3 , NULL );
941
941
$$ ->attr = $1 ; }
942
942
| class_const_modifiers T_CONST class_const_list ' ;'
943
- { $$ = zend_ast_create(ZEND_AST_CLASS_CONST_GROUP, $3 , NULL );
943
+ { $$ = zend_ast_create(ZEND_AST_CLASS_CONST_GROUP, $3 , NULL , NULL );
944
+ $$ ->attr = $1 ; }
945
+ | class_const_modifiers T_CONST type_expr class_const_list ' ;'
946
+ { $$ = zend_ast_create(ZEND_AST_CLASS_CONST_GROUP, $4 , NULL , $3 );
944
947
$$ ->attr = $1 ; }
945
948
| method_modifiers function returns_ref identifier backup_doc_comment ' (' parameter_list ' )'
946
949
return_type backup_fn_flags method_body backup_fn_flags
@@ -1076,21 +1079,20 @@ property:
1076
1079
1077
1080
class_const_list :
1078
1081
class_const_list ' ,' class_const_decl { $$ = zend_ast_list_add($1 , $3 ); }
1079
- | first_class_const_decl { $$ = zend_ast_create_list(1 , ZEND_AST_CLASS_CONST_DECL, $1 ); }
1080
- ;
1081
-
1082
- first_class_const_decl :
1083
- T_STRING ' =' expr backup_doc_comment { $$ = zend_ast_create(ZEND_AST_CONST_ELEM, $1 , $3 , ($4 ? zend_ast_create_zval_from_str($4 ) : NULL ), NULL ); }
1084
- | semi_reserved ' =' expr backup_doc_comment { zval zv; if (zend_lex_tstring(&zv, $1 ) == FAILURE) { YYABORT ; } $$ = zend_ast_create(ZEND_AST_CONST_ELEM, zend_ast_create_zval(&zv), $3 , ($4 ? zend_ast_create_zval_from_str($4 ) : NULL ), NULL ); }
1085
- | type_expr identifier ' =' expr backup_doc_comment { $$ = zend_ast_create(ZEND_AST_CONST_ELEM, $2 , $4 , ($5 ? zend_ast_create_zval_from_str($5 ) : NULL ), $1 ); }
1082
+ | class_const_decl { $$ = zend_ast_create_list(1 , ZEND_AST_CLASS_CONST_DECL, $1 ); }
1086
1083
;
1087
1084
1088
1085
class_const_decl :
1089
- identifier ' =' expr backup_doc_comment { $$ = zend_ast_create(ZEND_AST_CONST_ELEM, $1 , $3 , ($4 ? zend_ast_create_zval_from_str($4 ) : NULL ), NULL ); }
1086
+ T_STRING ' =' expr backup_doc_comment { $$ = zend_ast_create(ZEND_AST_CONST_ELEM, $1 , $3 , ($4 ? zend_ast_create_zval_from_str($4 ) : NULL )); }
1087
+ | semi_reserved ' =' expr backup_doc_comment {
1088
+ zval zv;
1089
+ if (zend_lex_tstring(&zv, $1 ) == FAILURE) { YYABORT ; }
1090
+ $$ = zend_ast_create(ZEND_AST_CONST_ELEM, zend_ast_create_zval(&zv), $3 , ($4 ? zend_ast_create_zval_from_str($4 ) : NULL ));
1091
+ }
1090
1092
;
1091
1093
1092
1094
const_decl :
1093
- T_STRING ' =' expr backup_doc_comment { $$ = zend_ast_create(ZEND_AST_CONST_ELEM, $1 , $3 , ($4 ? zend_ast_create_zval_from_str($4 ) : NULL ), NULL ); }
1095
+ T_STRING ' =' expr backup_doc_comment { $$ = zend_ast_create(ZEND_AST_CONST_ELEM, $1 , $3 , ($4 ? zend_ast_create_zval_from_str($4 ) : NULL )); }
1094
1096
;
1095
1097
1096
1098
echo_expr_list :
0 commit comments