File tree Expand file tree Collapse file tree 4 files changed +38
-4
lines changed Expand file tree Collapse file tree 4 files changed +38
-4
lines changed Original file line number Diff line number Diff line change @@ -164,8 +164,9 @@ public static function parse(NodeParser $parser)
164
164
$ implements = NULL ;
165
165
$ blockOpener = '' ;
166
166
167
- if ($ parser ->isCurrent (T_STRING )) { // class name
168
- $ name = Name::parse ($ parser ->createSubParser ());
167
+ $ name = Name::tryParseClassName ($ parser ->createSubParser ());
168
+
169
+ if ($ name !== NULL ) { // class name
169
170
$ parser ->tryConsumeWhitespace ();
170
171
171
172
} elseif ($ parser ->isCurrent ('( ' )) {
Original file line number Diff line number Diff line change @@ -108,7 +108,7 @@ public static function parse(NodeParser $parser)
108
108
$ extends = NULL ;
109
109
$ blockOpener = '' ;
110
110
111
- $ name = Name::parse ($ parser ->createSubParser ());
111
+ $ name = Name::parseClassName ($ parser ->createSubParser ());
112
112
$ parser ->tryConsumeWhitespace ();
113
113
114
114
if ($ parser ->isCurrent (T_EXTENDS )) {
Original file line number Diff line number Diff line change @@ -128,4 +128,37 @@ public static function parse(NodeParser $parser)
128
128
$ parser ->close ();
129
129
return new self ($ nodeIndentation , $ name );
130
130
}
131
+
132
+
133
+ /**
134
+ * @return self
135
+ */
136
+ public static function parseClassName (NodeParser $ parser )
137
+ {
138
+ $ name = self ::tryParseClassName ($ parser );
139
+
140
+ if ($ name === NULL ) {
141
+ $ parser ->errorUnknowToken ('Missing name ' );
142
+ }
143
+
144
+ return $ name ;
145
+ }
146
+
147
+
148
+ /**
149
+ * @return self|NULL
150
+ */
151
+ public static function tryParseClassName (NodeParser $ parser )
152
+ {
153
+ $ nodeIndentation = '' ;
154
+ $ name = '' ;
155
+
156
+ if ($ parser ->isCurrent (T_STRING )) {
157
+ $ nodeIndentation = $ parser ->consumeNodeIndentation ();
158
+ $ name = $ parser ->consumeTokenAsText (T_STRING );
159
+ }
160
+
161
+ $ parser ->close ();
162
+ return $ name !== '' ? new self ($ nodeIndentation , $ name ) : NULL ;
163
+ }
131
164
}
Original file line number Diff line number Diff line change @@ -100,7 +100,7 @@ public static function parse(NodeParser $parser)
100
100
$ parser ->tryConsumeWhitespace ();
101
101
$ blockOpener = '' ;
102
102
103
- $ name = Name::parse ($ parser ->createSubParser ());
103
+ $ name = Name::parseClassName ($ parser ->createSubParser ());
104
104
$ parser ->tryConsumeWhitespace ();
105
105
106
106
$ parser ->tryConsumeWhitespace ();
You can’t perform that action at this time.
0 commit comments