Skip to content

Commit eedfec3

Browse files
authored
Merge pull request #78 from lvht/master
migrate to php-parser v3.x
2 parents 19b59d6 + 31247f8 commit eedfec3

File tree

5 files changed

+25
-1046
lines changed

5 files changed

+25
-1046
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.test_fs
22
build/
33
vendor/
4+
composer.lock

.travis.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
language: php
22

33
php:
4-
- 5.3
5-
- 5.4
6-
- 5.5
74
- 5.6
85
- 7
96
- hhvm

PHPCtags.class.php

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
<?php
2+
use PhpParser\ParserFactory;
3+
use PhpParser\Node\Stmt;
4+
use PhpParser\Node\Expr;
5+
26
class 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'];

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"type": "library",
66
"require": {
77
"php": ">=5.3",
8-
"nikic/php-parser": "<1"
8+
"nikic/php-parser": "^3.1"
99
},
1010
"require-dev": {
1111
"phpunit/phpunit": "~4"

0 commit comments

Comments
 (0)