11<?php
2+ use PhpParser \ParserFactory ;
3+ use PhpParser \Node \Stmt ;
4+ use PhpParser \Node \Expr ;
5+
26class PHPCtags
37{
48 const VERSION = '0.6.1 ' ;
@@ -28,7 +32,7 @@ class PHPCtags
2832
2933 public function __construct ($ options )
3034 {
31- $ this ->mParser = new PHPParser_Parser (new PHPParser_Lexer );
35+ $ this ->mParser = (new ParserFactory )-> create (ParserFactory:: PREFER_PHP7 );
3236 $ this ->mLines = array ();
3337 $ this ->mOptions = $ options ;
3438 $ this ->filecount = 0 ;
@@ -128,7 +132,7 @@ private function struct($node, $reset=FALSE, $parent=array())
128132 foreach ($ node as $ subNode ) {
129133 $ this ->struct ($ subNode );
130134 }
131- } elseif ($ node instanceof PHPParser_Node_Stmt_Class ) {
135+ } elseif ($ node instanceof Stmt \Class_ ) {
132136 $ kind = 'c ' ;
133137 $ name = $ node ->name ;
134138 $ extends = $ node ->extends ;
@@ -137,90 +141,90 @@ private function struct($node, $reset=FALSE, $parent=array())
137141 foreach ($ node as $ subNode ) {
138142 $ this ->struct ($ subNode , FALSE , array ('class ' => $ name ));
139143 }
140- } elseif ($ node instanceof PHPParser_Node_Stmt_Property ) {
144+ } elseif ($ node instanceof Stmt \Property ) {
141145 $ kind = 'p ' ;
142146 $ prop = $ node ->props [0 ];
143147 $ name = $ prop ->name ;
144148 $ line = $ prop ->getLine ();
145149 $ access = $ this ->getNodeAccess ($ node );
146- } elseif ($ node instanceof PHPParser_Node_Stmt_ClassConst ) {
150+ } elseif ($ node instanceof Stmt \ClassConst ) {
147151 $ kind = 'd ' ;
148152 $ cons = $ node ->consts [0 ];
149153 $ name = $ cons ->name ;
150154 $ line = $ cons ->getLine ();
151- } elseif ($ node instanceof PHPParser_Node_Stmt_ClassMethod ) {
155+ } elseif ($ node instanceof Stmt \ClassMethod ) {
152156 $ kind = 'm ' ;
153157 $ name = $ node ->name ;
154158 $ line = $ node ->getLine ();
155159 $ access = $ this ->getNodeAccess ($ node );
156160 foreach ($ node as $ subNode ) {
157161 $ this ->struct ($ subNode , FALSE , array ('method ' => $ name ));
158162 }
159- } elseif ($ node instanceof PHPParser_Node_Stmt_If ) {
163+ } elseif ($ node instanceof Stmt \If_ ) {
160164 foreach ($ node as $ subNode ) {
161165 $ this ->struct ($ subNode );
162166 }
163- } elseif ($ node instanceof PHPParser_Node_Stmt_Const ) {
167+ } elseif ($ node instanceof Stmt \Const_ ) {
164168 $ kind = 'd ' ;
165169 $ cons = $ node ->consts [0 ];
166170 $ name = $ cons ->name ;
167171 $ line = $ node ->getLine ();
168- } elseif ($ node instanceof PHPParser_Node_Stmt_Global ) {
172+ } elseif ($ node instanceof Stmt \Global_ ) {
169173 $ kind = 'v ' ;
170174 $ prop = $ node ->vars [0 ];
171175 $ name = $ prop ->name ;
172176 $ line = $ node ->getLine ();
173- } elseif ($ node instanceof PHPParser_Node_Stmt_Static ) {
177+ } elseif ($ node instanceof Stmt \Static_ ) {
174178 //@todo
175- } elseif ($ node instanceof PHPParser_Node_Stmt_Declare ) {
179+ } elseif ($ node instanceof Stmt \Declare_ ) {
176180 //@todo
177- } elseif ($ node instanceof PHPParser_Node_Stmt_TryCatch ) {
181+ } elseif ($ node instanceof Stmt \TryCatch ) {
178182 foreach ($ node as $ subNode ) {
179183 $ this ->struct ($ subNode );
180184 }
181- } elseif ($ node instanceof PHPParser_Node_Stmt_Function ) {
185+ } elseif ($ node instanceof Stmt \Function_ ) {
182186 $ kind = 'f ' ;
183187 $ name = $ node ->name ;
184188 $ line = $ node ->getLine ();
185189 foreach ($ node as $ subNode ) {
186190 $ this ->struct ($ subNode , FALSE , array ('function ' => $ name ));
187191 }
188- } elseif ($ node instanceof PHPParser_Node_Stmt_Interface ) {
192+ } elseif ($ node instanceof Stmt \Interface_ ) {
189193 $ kind = 'i ' ;
190194 $ name = $ node ->name ;
191195 $ line = $ node ->getLine ();
192196 foreach ($ node as $ subNode ) {
193197 $ this ->struct ($ subNode , FALSE , array ('interface ' => $ name ));
194198 }
195- } elseif ($ node instanceof PHPParser_Node_Stmt_Trait ) {
199+ } elseif ($ node instanceof Stmt \Trait_ ) {
196200 $ kind = 't ' ;
197201 $ name = $ node ->name ;
198202 $ line = $ node ->getLine ();
199203 foreach ($ node as $ subNode ) {
200204 $ this ->struct ($ subNode , FALSE , array ('trait ' => $ name ));
201205 }
202- } elseif ($ node instanceof PHPParser_Node_Stmt_Namespace ) {
206+ } elseif ($ node instanceof Stmt \Namespace_ ) {
203207 $ kind = 'n ' ;
204208 $ name = $ node ->name ;
205209 $ line = $ node ->getLine ();
206210 foreach ($ node as $ subNode ) {
207211 $ this ->struct ($ subNode , FALSE , array ('namespace ' => $ name ));
208212 }
209- } elseif ($ node instanceof PHPParser_Node_Expr_Assign ) {
213+ } elseif ($ node instanceof Expr \Assign ) {
210214 if (isset ($ node ->var ->name ) && is_string ($ node ->var ->name )) {
211215 $ kind = 'v ' ;
212216 $ node = $ node ->var ;
213217 $ name = $ node ->name ;
214218 $ line = $ node ->getLine ();
215219 }
216- } elseif ($ node instanceof PHPParser_Node_Expr_AssignRef ) {
220+ } elseif ($ node instanceof Expr \AssignRef ) {
217221 if (isset ($ node ->var ->name ) && is_string ($ node ->var ->name )) {
218222 $ kind = 'v ' ;
219223 $ node = $ node ->var ;
220224 $ name = $ node ->name ;
221225 $ line = $ node ->getLine ();
222226 }
223- } elseif ($ node instanceof PHPParser_Node_Expr_FuncCall ) {
227+ } elseif ($ node instanceof Expr \FuncCall ) {
224228 switch ($ node ->name ) {
225229 case 'define ' :
226230 $ kind = 'd ' ;
@@ -274,7 +278,7 @@ private function render($structure)
274278 if (empty ($ struct ['name ' ]) || empty ($ struct ['line ' ]) || empty ($ struct ['kind ' ]))
275279 return ;
276280
277- if ($ struct ['name ' ] instanceof PHPParser_Node_Expr_Variable ) {
281+ if ($ struct ['name ' ] instanceof Expr \Variable) {
278282 $ str .= $ struct ['name ' ]->name ;
279283 }else {
280284 $ str .= $ struct ['name ' ];
0 commit comments