File tree Expand file tree Collapse file tree 7 files changed +23
-0
lines changed Expand file tree Collapse file tree 7 files changed +23
-0
lines changed Original file line number Diff line number Diff line change 1818use Microsoft \PhpParser \Node \ClassMembersNode ;
1919use Microsoft \PhpParser \Node \ConstElement ;
2020use Microsoft \PhpParser \Node \EnumCaseDeclaration ;
21+ use Microsoft \PhpParser \Node \EnumInterfaceClause ;
2122use Microsoft \PhpParser \Node \EnumMembers ;
2223use Microsoft \PhpParser \Node \Expression ;
2324use Microsoft \PhpParser \Node \Expression \{
@@ -3723,11 +3724,27 @@ private function parseEnumDeclaration($parentNode) {
37233724 ?: new MissingToken (TokenKind::EnumType, $ this ->token ->fullStart );
37243725 }
37253726
3727+ $ enumDeclaration ->enumInterfaceClause = $ this ->parseEnumInterfaceClause ($ enumDeclaration );
37263728 $ enumDeclaration ->enumMembers = $ this ->parseEnumMembers ($ enumDeclaration );
37273729
37283730 return $ enumDeclaration ;
37293731 }
37303732
3733+ private function parseEnumInterfaceClause (EnumDeclaration $ enumDeclaration ): ?EnumInterfaceClause {
3734+ $ enumInterfaceClause = new EnumInterfaceClause ();
3735+ $ enumInterfaceClause ->parent = $ enumDeclaration ;
3736+ $ enumInterfaceClause ->implementsKeyword = $ this ->eatOptional1 (TokenKind::ImplementsKeyword);
3737+
3738+ if ($ enumInterfaceClause ->implementsKeyword === null ) {
3739+ return null ;
3740+ }
3741+
3742+ $ enumInterfaceClause ->interfaceNameList =
3743+ $ this ->parseQualifiedNameList ($ enumInterfaceClause );
3744+ return $ enumInterfaceClause ;
3745+ }
3746+
3747+
37313748 private function parseEnumMembers ($ parentNode ) {
37323749 $ enumMembers = new EnumMembers ();
37333750 $ enumMembers ->parent = $ parentNode ;
Original file line number Diff line number Diff line change 2424 },
2525 "colonToken": null,
2626 "enumType": null,
27+ "enumInterfaceClause": null,
2728 "enumMembers": {
2829 "EnumMembers": {
2930 "openBrace": {
Original file line number Diff line number Diff line change 3030 "kind": "IntReservedWord",
3131 "textLength": 3
3232 },
33+ "enumInterfaceClause": null,
3334 "enumMembers": {
3435 "EnumMembers": {
3536 "openBrace": {
Original file line number Diff line number Diff line change 6262 },
6363 "colonToken": null,
6464 "enumType": null,
65+ "enumInterfaceClause": null,
6566 "enumMembers": {
6667 "EnumMembers": {
6768 "openBrace": {
Original file line number Diff line number Diff line change 3030 "kind": "StringReservedWord",
3131 "textLength": 6
3232 },
33+ "enumInterfaceClause": null,
3334 "enumMembers": {
3435 "EnumMembers": {
3536 "openBrace": {
Original file line number Diff line number Diff line change 3131 "kind": "EnumType",
3232 "textLength": 0
3333 },
34+ "enumInterfaceClause": null,
3435 "enumMembers": {
3536 "EnumMembers": {
3637 "openBrace": {
Original file line number Diff line number Diff line change 3030 "kind": "IntReservedWord",
3131 "textLength": 3
3232 },
33+ "enumInterfaceClause": null,
3334 "enumMembers": {
3435 "EnumMembers": {
3536 "openBrace": {
You can’t perform that action at this time.
0 commit comments