delights / extended-tokens
0.1.2
2020-08-23 22:53 UTC
Requires
- php: ^7.3
Requires (Dev)
- ergebnis/phpstan-rules: ^0.15.0
- friendsofphp/php-cs-fixer: ^2.16.3
- pestphp/pest: ^0.2.2
- phpstan/phpstan: ^0.12.31
- phpstan/phpstan-strict-rules: ^0.12.2
- rector/rector: ^0.7.37
- symfony/var-dumper: ^5.1.2
- thecodingmachine/phpstan-strict-rules: ^0.12.0
This package is auto-updated.
Last update: 2021-11-18 07:43:01 UTC
README
**已弃用,请使用felixdorn/tin代替,代码很糟糕,请不要查看。此外,T_FULL_NAMESPACE从未正常工作,现在PHP将命名空间视为一个标记。
扩展标记
composer require delight/extended-tokens
此包旨在通过将T_STRING标记转换为更准确的表示(如T_CLASS_NAME)来促进PHP代码高亮。
PHP通过token_get_all
方法默认提供PHP解析器。
此函数返回一个类似下面的标记数组
[ T_TOKENTYPE, "value", 42 // offset ];
有时对于{
、;
等标记,它只返回一个字符串,而不是数组。这个库改变了这一点,一切都是数组,即使是那些无用的字符串。
用法
use Delight\ExtendedTokens\ExtendedTokens; $parser = new ExtendedTokens(); $tokens = $parser->parse('code');
T_FULL_NAMESPACE
namespace A\B\C;
A\B\C
将是一个T_FULL_NAMESPACE
T_CLASS_NAME
class A {}
A
将是一个T_CLASS_NAME
new A;
A
将是一个T_CLASS_NAME
T_FUNCTION_NAME
function hello() {}
hello
将是一个T_FUNCTION_NAME
T_CONST_NAME
const E = 'F';
E
将是一个T_CONST_NAME
T_EQUAL
$a = 1;
=
将是一个T_EQUAL
T_CONCAT
$c = 'a' . 'b';
.
将是一个T_CONCAT
T_OBJECT_OPERATOR之后的T_VARIABLE
$a->b;
b
将是一个T_VARIABLE而不是T_STRING
T_VARIABLE_TYPE
function world(string $name): World {}
string
将是一个T_VARIABLE_TYPEWorld
将是一个T_CLASS_NAME
T_TRUE和T_FALSE
true && false;
true
将是一个T_TRUEfalse
将是一个T_FALSE
T_REF
function (int &$index) {}
&
将是一个T_REF
T_NEGATION
!true;
!
将是一个T_NEGATION