Skip to content

Commit 6d526e0

Browse files
committed
kleine kochung
1 parent 73f9ca1 commit 6d526e0

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

Zend/zend_language_parser.y

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,13 +293,16 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
293293
%type <ast> optional_parameter_list
294294
%type <ast> generic_type_parameter_list
295295
%type <ast> generic_type_parameters
296+
%type <ast> generic_type
297+
%type <ast> non_empty_generic_type_parameters
296298

297299
%type <num> returns_ref function fn is_reference is_variadic property_modifiers property_hook_modifiers
298300
%type <num> method_modifiers class_const_modifiers member_modifier optional_cpp_modifiers
299301
%type <num> class_modifiers class_modifier anonymous_class_modifiers anonymous_class_modifiers_optional use_type backup_fn_flags
300302

301303
%type <ptr> backup_lex_pos
302304
%type <str> backup_doc_comment
305+
%type <str> generic_param_name
303306

304307
%type <ident> reserved_non_modifiers semi_reserved
305308

@@ -617,8 +620,17 @@ generic_type_parameters:
617620
;
618621

619622
generic_type_parameter_list:
620-
T_STRING { $$ = zend_ast_create_list(1, ZEND_AST_GENERIC_TYPE_PARAM_LIST, $1); }
621-
| generic_type_parameter_list ',' T_STRING { $$ = zend_ast_list_add($1, $3); }
623+
generic_type { $$ = zend_ast_create_list(1, ZEND_AST_GENERIC_TYPE_PARAM_LIST, $1); }
624+
| generic_type_parameter_list ',' generic_type { $$ = zend_ast_list_add($1, $3); }
625+
;
626+
627+
non_empty_generic_type_parameters:
628+
T_GENERIC_START generic_type_parameter_list possible_comma T_GENERIC_END { $$ = $2; }
629+
;
630+
631+
generic_type:
632+
T_STRING { $$ = zend_ast_create_zval_from_str(zend_ast_get_str($1)); }
633+
| T_STRING non_empty_generic_type_parameters { $$ = zend_ast_create(ZEND_AST_GENERIC_TYPE, zend_ast_create_zval_from_str(zend_ast_get_str($1)), $2); }
622634
;
623635

624636
class_modifiers:
@@ -1378,6 +1390,10 @@ backup_doc_comment:
13781390
%empty { $$ = CG(doc_comment); CG(doc_comment) = NULL; }
13791391
;
13801392

1393+
generic_param_name:
1394+
%empty { $$ = CG(doc_comment); CG(doc_comment) = NULL; }
1395+
;
1396+
13811397
backup_fn_flags:
13821398
%prec PREC_ARROW_FUNCTION %empty { $$ = CG(extra_fn_flags); CG(extra_fn_flags) = 0; }
13831399
;

0 commit comments

Comments
 (0)