Nikita Popov
63abf9cb3f
Release PHP-Parser 4.0 Alpha 3
2017-12-26 17:29:20 +01:00
Tomáš Votruba
ceb4932ca8
Clean merge leftover in changelog ( #456 )
2017-12-26 17:25:14 +01:00
Nikita Popov
aa289c9694
Merge branch '3.x'
...
Conflicts:
CHANGELOG.md
2017-12-26 15:44:25 +01:00
Nikita Popov
579f4ce846
Release PHP-Parser 3.1.3
2017-12-26 15:43:21 +01:00
Nikita Popov
8d3cb5f57b
FPPP: Fallback if we must insert a block
2017-12-26 15:41:38 +01:00
Nikita Popov
de82a40d04
FPPP: Add broken InlineHTML test cases
2017-12-26 15:08:30 +01:00
Nikita Popov
a86151f24f
FPPP: Fix fallback for inline HTML
2017-12-26 15:08:29 +01:00
Gabriel Caruso
e6e8791848
Missing # in method description
2017-12-25 14:28:33 +01:00
Gabriel Caruso
83b958763f
Refactoring tests
2017-12-15 21:42:34 +01:00
Gabriel Caruso
4dbb02c57b
Use Null Coalesce Operator
2017-12-15 21:41:41 +01:00
Nikita Popov
4fcdac40d1
FPPP: Fix insertion of multiple elems at start
2017-12-02 15:10:15 +01:00
Nikita Popov
04feb90d79
Rename abc1.test to basic.test
...
And split off fixup.test.
2017-12-01 23:15:50 +01:00
Nikita Popov
dc3ace55c3
FPPP: Support insert at start of list node ( #446 )
2017-12-01 22:09:51 +01:00
Nikita Popov
e5453f0d46
Extract pSingleQuotedString as an extension point
...
And add some more string formatting tests.
2017-12-01 18:31:21 +01:00
Nikita Popov
b507fa43da
Ensure names are not empty
2017-12-01 18:13:55 +01:00
Nikita Popov
336a49b428
FPPP: Fix comment indentation ( #443 )
2017-11-13 13:27:27 +01:00
Nikita Popov
fa174b093f
Merge branch '3.x'
2017-11-13 01:15:38 +01:00
Nikita Popov
94ca9a7ab9
Use Tokens::class in lexer
...
Ref #441 .
2017-11-13 01:14:55 +01:00
Nikita Popov
0bb74e03aa
Drop two more getType() usages in builders
2017-11-13 00:24:01 +01:00
Nikita Popov
8d3f48ab75
Switch some auxiliary pretty printer tables away from getType()
...
Instead use class names via ::class.
2017-11-13 00:18:44 +01:00
Nikita Popov
1c11626f0a
Add explicit getType() methods
...
Rather than automatically deriving getType() from the class name.
2017-11-12 21:27:14 +01:00
Nikita Popov
05e2cd287e
Merge branch '3.x'
...
Conflicts:
lib/PhpParser/NodeAbstract.php
2017-11-12 21:12:27 +01:00
Maks Rafalko
bac91b426e
Correctly determine Type of Node when PHP-Parser's namespaces are prefixed
...
Hi there,
I'm working on mutation testing framework ([Infection](https://github.com/infection/infection/ )) that is distributed as a PHAR. One of this goal is to run target project's test suite against mutated code. Since we use reflection and load project's autoloader, we want to avoid potential conflicts between vendor files of Infection itself and the target project.
To avoid this issue, there is a project calld [PHP-Scoper](https://github.com/humbug/php-scoper ). What it does is it prefixes all the namespaces of the library (including vendor folder) with some character(s), for example namespace `Infection\Mutator\PublicVisibility` is transformed to `ScoperAbc123\Infection\Mutant\PublicVisibility`.
But since it also prefixes vendor folder, PHP-Parser's classes are prefixed as well and `NodeAbstract::getType()` after this prefixing works incorrectly.
There is a hardcoded number `15` which means to remove `'PhpParser\Node'` (length=15) substring from the FQCN.
Code:
```php
// PHPParser\Node\Stmt\Declare_ -> Stmt_Declare
return strtr(substr(rtrim(get_class($this), '_'), 15), '\\', '_');
```
What I suggest is a little be more dynamic solution, to correctly extract class name (type) from the ***prefixed*** FQCL:
`ScoperAbc123\PHPParser\Node\Stmt\Declare_` -> `Stmt_Declare`
2017-11-12 21:11:41 +01:00
Nikita Popov
a75164c77e
Rename YYNLSTATES to numNonLeafStates
2017-11-12 16:09:00 +01:00
Nikita Popov
c59e75f873
Clear parser state directly after parsing
...
I don't think this makes any difference in practical scenarios, but
it makes memory usage analysis simpler.
2017-11-11 16:54:52 +01:00
Nikita Popov
4392a7b164
Fix PHP5 static call fixup
...
Variable nodes directly store the variable name as a string, they
don't use VarLikeIdentifier. So remove this wrapper if it exists.
2017-11-11 12:23:14 +01:00
Nikita Popov
a659240dc2
Release PHP-Parser 4.0.0 Alpha 2
2017-11-10 23:36:59 +01:00
Nikita Popov
68e9b91e9c
Use fully-qualified names for global constant references
2017-11-10 23:33:12 +01:00
Nikita Popov
7162b36f2d
Add bullet point summary to main README as well
2017-11-10 22:45:27 +01:00
Nikita Popov
73be07672b
Docs: Add performance section
2017-11-10 22:44:06 +01:00
Nikita Popov
e2c0c598a3
FPPP: Optimize indentation calculation
...
Precalculate the indentation for every position. The previous
implementation was quadratic for long lines.
2017-11-04 22:43:53 +01:00
Nikita Popov
66f88cfa07
Update changelog
2017-11-04 18:22:06 +01:00
Nikita Popov
9b6a2577fa
FPPP: Convert some checks to assertions
...
Don't just silently fall back if we receive illegal input.
2017-11-04 18:14:12 +01:00
Nikita Popov
457fe049a8
Ensure nodes have full complement of location info
2017-11-04 18:13:00 +01:00
Nikita Popov
6a2e1ae440
FPPP: Graceful handling of comment changes
2017-11-04 17:56:11 +01:00
Nikita Popov
47c973b3aa
Store start token position in comments
2017-11-04 17:45:14 +01:00
Nikita Popov
56bc8ebb9b
FPPP: Add support for removal from list nodes
2017-11-04 17:23:17 +01:00
Nikita Popov
361398bc0d
Merge branch '3.x'
...
Conflicts:
CHANGELOG.md
2017-11-04 12:49:58 +01:00
Nikita Popov
08131e7ff2
Release PHP-Parser 3.1.2
2017-11-04 12:48:34 +01:00
Nikita Popov
fd6e8d7ea8
Merge branch '3.x'
...
Conflicts:
lib/PhpParser/Builder/Namespace_.php
lib/PhpParser/Node/Stmt/ClassMethod.php
test/PhpParser/Builder/NamespaceTest.php
2017-11-04 12:45:04 +01:00
Nikita Popov
0ba710affa
Add setDocComment() to namespace build ( #437 )
2017-11-04 12:43:02 +01:00
Alexander Miertsch
72231abe6d
ClassMethod stmts property can be null ( #435 )
...
Conflicts:
lib/PhpParser/Node/Stmt/ClassMethod.php
2017-11-04 12:38:45 +01:00
Nikita Popov
7254040998
Test FPPP roundtrip in test_old
2017-11-04 12:37:34 +01:00
TomasVotruba
57bf378412
add missing strict_types to lib
2017-11-03 13:24:19 +01:00
TomasVotruba
b58157f024
add strict_types to tests + fix explode type
2017-11-03 13:24:19 +01:00
Alexander Miertsch
ab596db285
ClassMethod stmts property can be null ( #435 )
2017-11-01 20:26:21 +01:00
Tomáš Votruba
7f92edf3a1
Docs: add missing $stmts ( #433 )
2017-10-31 22:48:00 +01:00
Brad Mostert
837579a40c
Fix spelling in documentation ( #434 )
2017-10-31 22:47:42 +01:00
Nikita Popov
b241a121a3
Fix trait alias to semi-reserved name parsing
...
This was missing the explicit construction of an Identifier node.
2017-10-29 14:15:48 +01:00
Nikita Popov
5054a68bfb
Reset origTokens in resetState()
...
In case one pretty printer is used in both preserving and
non-preserving mode.
2017-10-29 13:28:46 +01:00