@@ -503,9 +503,14 @@ class_declaration_statement:
503503 class_modifiers T_CLASS { $<num>$ = CG(zend_lineno); }
504504 T_STRING extends_from implements_list backup_doc_comment ' {' class_statement_list ' }'
505505 { $$ = zend_ast_create_decl(ZEND_AST_CLASS, $1 , $<num>3 , $7 , zend_ast_get_str($4 ), $5 , $6 , $9 , NULL ); }
506- | T_CLASS { $<num>$ = CG(zend_lineno); }
506+ | T_CLASS
507507 T_STRING extends_from implements_list backup_doc_comment ' {' class_statement_list ' }'
508- { $$ = zend_ast_create_decl(ZEND_AST_CLASS, 0 , $<num>2 , $6 , zend_ast_get_str($3 ), $4 , $5 , $8 , NULL ); }
508+ { $$ = zend_ast_create_decl(ZEND_AST_CLASS, 0 , CG(zend_lineno), $5 , zend_ast_get_str($2 ), $3 , $4 , $7 , NULL ); }
509+ | T_CLASS
510+ T_STRING ' (' parameter_list ' )' extends_from implements_list backup_doc_comment ' {' class_statement_list ' }'
511+ { $$ = zend_ast_create_decl(ZEND_AST_CLASS, 0 , CG(zend_lineno), $8 , zend_ast_get_str($2 ), $6 ,
512+ $7 , zend_ast_add_constructor($10 , CG(zend_lineno), $4 ), NULL );
513+ }
509514;
510515
511516class_modifiers :
@@ -714,7 +719,6 @@ class_statement_list:
714719 { $$ = zend_ast_create_list(0 , ZEND_AST_STMT_LIST); }
715720;
716721
717-
718722class_statement :
719723 variable_modifiers property_list ' ;'
720724 { $$ = $2 ; $$ ->attr = $1 ; }
0 commit comments