updated-packages
This commit is contained in:
7
vendor/theseer/tokenizer/.gitignore
vendored
7
vendor/theseer/tokenizer/.gitignore
vendored
@@ -1,7 +0,0 @@
|
||||
/.idea
|
||||
/.php_cs.cache
|
||||
/composer.lock
|
||||
/src/autoload.php
|
||||
/tools
|
||||
/vendor
|
||||
/build
|
||||
67
vendor/theseer/tokenizer/.php_cs
vendored
67
vendor/theseer/tokenizer/.php_cs
vendored
@@ -1,67 +0,0 @@
|
||||
<?php
|
||||
$finder = Symfony\CS\Finder\DefaultFinder::create()
|
||||
->files()
|
||||
->in('src')
|
||||
->in('tests')
|
||||
->name('*.php');
|
||||
|
||||
return Symfony\CS\Config\Config::create()
|
||||
->setUsingCache(true)
|
||||
->level(\Symfony\CS\FixerInterface::NONE_LEVEL)
|
||||
->fixers(
|
||||
array(
|
||||
'align_double_arrow',
|
||||
'align_equals',
|
||||
'concat_with_spaces',
|
||||
'duplicate_semicolon',
|
||||
'elseif',
|
||||
'empty_return',
|
||||
'encoding',
|
||||
'eof_ending',
|
||||
'extra_empty_lines',
|
||||
'function_call_space',
|
||||
'function_declaration',
|
||||
'indentation',
|
||||
'join_function',
|
||||
'line_after_namespace',
|
||||
'linefeed',
|
||||
'list_commas',
|
||||
'lowercase_constants',
|
||||
'lowercase_keywords',
|
||||
'method_argument_space',
|
||||
'multiple_use',
|
||||
'namespace_no_leading_whitespace',
|
||||
'no_blank_lines_after_class_opening',
|
||||
'no_empty_lines_after_phpdocs',
|
||||
'parenthesis',
|
||||
'php_closing_tag',
|
||||
'phpdoc_indent',
|
||||
'phpdoc_no_access',
|
||||
'phpdoc_no_empty_return',
|
||||
'phpdoc_no_package',
|
||||
'phpdoc_params',
|
||||
'phpdoc_scalar',
|
||||
'phpdoc_separation',
|
||||
'phpdoc_to_comment',
|
||||
'phpdoc_trim',
|
||||
'phpdoc_types',
|
||||
'phpdoc_var_without_name',
|
||||
'remove_lines_between_uses',
|
||||
'return',
|
||||
'self_accessor',
|
||||
'short_array_syntax',
|
||||
'short_tag',
|
||||
'single_line_after_imports',
|
||||
'single_quote',
|
||||
'spaces_before_semicolon',
|
||||
'spaces_cast',
|
||||
'ternary_spaces',
|
||||
'trailing_spaces',
|
||||
'trim_array_spaces',
|
||||
'unused_use',
|
||||
'visibility',
|
||||
'whitespacy_lines'
|
||||
)
|
||||
)
|
||||
->finder($finder);
|
||||
|
||||
213
vendor/theseer/tokenizer/.php_cs.dist
vendored
Normal file
213
vendor/theseer/tokenizer/.php_cs.dist
vendored
Normal file
@@ -0,0 +1,213 @@
|
||||
<?php
|
||||
|
||||
require __DIR__ . '/tools/php-cs-fixer.d/PhpdocSingleLineVarFixer.php';
|
||||
|
||||
return PhpCsFixer\Config::create()
|
||||
->registerCustomFixers([
|
||||
new \PharIo\CSFixer\PhpdocSingleLineVarFixer()
|
||||
])
|
||||
->setRiskyAllowed(true)
|
||||
->setRules(
|
||||
[
|
||||
'PharIo/phpdoc_single_line_var_fixer' => true,
|
||||
|
||||
'align_multiline_comment' => true,
|
||||
'array_indentation' => true,
|
||||
'array_syntax' => ['syntax' => 'short'],
|
||||
'binary_operator_spaces' => [
|
||||
'operators' => [
|
||||
'=' => 'align_single_space_minimal',
|
||||
'=>' => 'align',
|
||||
],
|
||||
],
|
||||
'blank_line_after_namespace' => true,
|
||||
'blank_line_after_opening_tag' => false,
|
||||
'blank_line_before_statement' => [
|
||||
'statements' => [
|
||||
'break',
|
||||
'continue',
|
||||
'declare',
|
||||
'do',
|
||||
'for',
|
||||
'foreach',
|
||||
'if',
|
||||
'include',
|
||||
'include_once',
|
||||
'require',
|
||||
'require_once',
|
||||
'return',
|
||||
'switch',
|
||||
'throw',
|
||||
'try',
|
||||
'while',
|
||||
'yield',
|
||||
],
|
||||
],
|
||||
'braces' => [
|
||||
'allow_single_line_closure' => false,
|
||||
'position_after_anonymous_constructs' => 'same',
|
||||
'position_after_control_structures' => 'same',
|
||||
'position_after_functions_and_oop_constructs' => 'same'
|
||||
],
|
||||
'cast_spaces' => ['space' => 'none'],
|
||||
|
||||
// This fixer removes the blank line at class start, no way to disable that, so we disable the fixer :(
|
||||
//'class_attributes_separation' => ['elements' => ['const', 'method', 'property']],
|
||||
|
||||
'combine_consecutive_issets' => true,
|
||||
'combine_consecutive_unsets' => true,
|
||||
'compact_nullable_typehint' => true,
|
||||
'concat_space' => ['spacing' => 'one'],
|
||||
'date_time_immutable' => true,
|
||||
'declare_equal_normalize' => ['space' => 'single'],
|
||||
'declare_strict_types' => true,
|
||||
'dir_constant' => true,
|
||||
'elseif' => true,
|
||||
'encoding' => true,
|
||||
'full_opening_tag' => true,
|
||||
'fully_qualified_strict_types' => true,
|
||||
'function_declaration' => [
|
||||
'closure_function_spacing' => 'one'
|
||||
],
|
||||
'header_comment' => false,
|
||||
'indentation_type' => true,
|
||||
'is_null' => true,
|
||||
'line_ending' => true,
|
||||
'list_syntax' => ['syntax' => 'short'],
|
||||
'logical_operators' => true,
|
||||
'lowercase_cast' => true,
|
||||
'lowercase_constants' => true,
|
||||
'lowercase_keywords' => true,
|
||||
'lowercase_static_reference' => true,
|
||||
'magic_constant_casing' => true,
|
||||
'method_argument_space' => ['ensure_fully_multiline' => true],
|
||||
'modernize_types_casting' => true,
|
||||
'multiline_comment_opening_closing' => true,
|
||||
'multiline_whitespace_before_semicolons' => true,
|
||||
'native_constant_invocation' => true,
|
||||
'native_function_casing' => true,
|
||||
'native_function_invocation' => true,
|
||||
'new_with_braces' => false,
|
||||
'no_alias_functions' => true,
|
||||
'no_alternative_syntax' => true,
|
||||
'no_blank_lines_after_class_opening' => false,
|
||||
'no_blank_lines_after_phpdoc' => true,
|
||||
'no_blank_lines_before_namespace' => true,
|
||||
'no_closing_tag' => true,
|
||||
'no_empty_comment' => true,
|
||||
'no_empty_phpdoc' => true,
|
||||
'no_empty_statement' => true,
|
||||
'no_extra_blank_lines' => true,
|
||||
'no_homoglyph_names' => true,
|
||||
'no_leading_import_slash' => true,
|
||||
'no_leading_namespace_whitespace' => true,
|
||||
'no_mixed_echo_print' => ['use' => 'print'],
|
||||
'no_multiline_whitespace_around_double_arrow' => true,
|
||||
'no_null_property_initialization' => true,
|
||||
'no_php4_constructor' => true,
|
||||
'no_short_bool_cast' => true,
|
||||
'no_short_echo_tag' => true,
|
||||
'no_singleline_whitespace_before_semicolons' => true,
|
||||
'no_spaces_after_function_name' => true,
|
||||
'no_spaces_inside_parenthesis' => true,
|
||||
'no_superfluous_elseif' => true,
|
||||
'no_superfluous_phpdoc_tags' => true,
|
||||
'no_trailing_comma_in_list_call' => true,
|
||||
'no_trailing_comma_in_singleline_array' => true,
|
||||
'no_trailing_whitespace' => true,
|
||||
'no_trailing_whitespace_in_comment' => true,
|
||||
'no_unneeded_control_parentheses' => false,
|
||||
'no_unneeded_curly_braces' => false,
|
||||
'no_unneeded_final_method' => true,
|
||||
'no_unreachable_default_argument_value' => true,
|
||||
'no_unset_on_property' => true,
|
||||
'no_unused_imports' => true,
|
||||
'no_useless_else' => true,
|
||||
'no_useless_return' => true,
|
||||
'no_whitespace_before_comma_in_array' => true,
|
||||
'no_whitespace_in_blank_line' => true,
|
||||
'non_printable_character' => true,
|
||||
'normalize_index_brace' => true,
|
||||
'object_operator_without_whitespace' => true,
|
||||
'ordered_class_elements' => [
|
||||
'order' => [
|
||||
'use_trait',
|
||||
'constant_public',
|
||||
'constant_protected',
|
||||
'constant_private',
|
||||
'property_public_static',
|
||||
'property_protected_static',
|
||||
'property_private_static',
|
||||
'property_public',
|
||||
'property_protected',
|
||||
'property_private',
|
||||
'method_public_static',
|
||||
'construct',
|
||||
'destruct',
|
||||
'magic',
|
||||
'phpunit',
|
||||
'method_public',
|
||||
'method_protected',
|
||||
'method_private',
|
||||
'method_protected_static',
|
||||
'method_private_static',
|
||||
],
|
||||
],
|
||||
'ordered_imports' => true,
|
||||
'phpdoc_add_missing_param_annotation' => true,
|
||||
'phpdoc_align' => true,
|
||||
'phpdoc_annotation_without_dot' => true,
|
||||
'phpdoc_indent' => true,
|
||||
'phpdoc_no_access' => true,
|
||||
'phpdoc_no_empty_return' => true,
|
||||
'phpdoc_no_package' => true,
|
||||
'phpdoc_order' => true,
|
||||
'phpdoc_return_self_reference' => true,
|
||||
'phpdoc_scalar' => true,
|
||||
'phpdoc_separation' => true,
|
||||
'phpdoc_single_line_var_spacing' => true,
|
||||
'phpdoc_to_comment' => false,
|
||||
'phpdoc_trim' => true,
|
||||
'phpdoc_trim_consecutive_blank_line_separation' => true,
|
||||
'phpdoc_types' => ['groups' => ['simple', 'meta']],
|
||||
'phpdoc_types_order' => true,
|
||||
'phpdoc_to_return_type' => true,
|
||||
'phpdoc_var_without_name' => true,
|
||||
'pow_to_exponentiation' => true,
|
||||
'protected_to_private' => true,
|
||||
'return_assignment' => true,
|
||||
'return_type_declaration' => ['space_before' => 'none'],
|
||||
'self_accessor' => false,
|
||||
'semicolon_after_instruction' => true,
|
||||
'set_type_to_cast' => true,
|
||||
'short_scalar_cast' => true,
|
||||
'simplified_null_return' => true,
|
||||
'single_blank_line_at_eof' => true,
|
||||
'single_import_per_statement' => true,
|
||||
'single_line_after_imports' => true,
|
||||
'single_quote' => true,
|
||||
'standardize_not_equals' => true,
|
||||
'ternary_to_null_coalescing' => true,
|
||||
'trailing_comma_in_multiline_array' => false,
|
||||
'trim_array_spaces' => true,
|
||||
'unary_operator_spaces' => true,
|
||||
'visibility_required' => [
|
||||
'elements' => [
|
||||
'const',
|
||||
'method',
|
||||
'property',
|
||||
],
|
||||
],
|
||||
'void_return' => true,
|
||||
'whitespace_after_comma_in_array' => true,
|
||||
'yoda_style' => false
|
||||
]
|
||||
)
|
||||
->setFinder(
|
||||
PhpCsFixer\Finder::create()
|
||||
->files()
|
||||
->in(__DIR__ . '/src')
|
||||
->in(__DIR__ . '/tests')
|
||||
->notName('*.phpt')
|
||||
->notName('autoload.php')
|
||||
);
|
||||
33
vendor/theseer/tokenizer/.travis.yml
vendored
33
vendor/theseer/tokenizer/.travis.yml
vendored
@@ -1,33 +0,0 @@
|
||||
os:
|
||||
- linux
|
||||
|
||||
language: php
|
||||
|
||||
before_install:
|
||||
- wget https://phar.io/releases/phive.phar
|
||||
- wget https://phar.io/releases/phive.phar.asc
|
||||
- gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79
|
||||
- gpg --verify phive.phar.asc phive.phar
|
||||
- chmod +x phive.phar
|
||||
- sudo mv phive.phar /usr/bin/phive
|
||||
|
||||
install:
|
||||
- ant setup
|
||||
|
||||
script: ./tools/phpunit
|
||||
|
||||
php:
|
||||
- 5.6
|
||||
- 7.0
|
||||
- 7.1
|
||||
- 7.0snapshot
|
||||
- 7.1snapshot
|
||||
- master
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- php: master
|
||||
fast_finish: true
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
71
vendor/theseer/tokenizer/CHANGELOG.md
vendored
Normal file
71
vendor/theseer/tokenizer/CHANGELOG.md
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to Tokenizer are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
|
||||
|
||||
|
||||
## [1.2.1] - 2021-07-28
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#13](https://github.com/theseer/tokenizer/issues/13): Fatal error when tokenizing files that contain only a single empty line
|
||||
|
||||
|
||||
## [1.2.0] - 2020-07-13
|
||||
|
||||
This release is now PHP 8.0 compliant.
|
||||
|
||||
### Fixed
|
||||
|
||||
* Whitespace handling in general (only noticable in the intermediate `TokenCollection`) is now consitent
|
||||
|
||||
### Changed
|
||||
|
||||
* Updated `Tokenizer` to deal with changed whitespace handling in PHP 8.0
|
||||
The XMLSerializer was unaffected.
|
||||
|
||||
|
||||
## [1.1.3] - 2019-06-14
|
||||
|
||||
### Changed
|
||||
|
||||
* Ensure XMLSerializer can deal with empty token collections
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#2](https://github.com/theseer/tokenizer/issues/2): Fatal error in infection / phpunit
|
||||
|
||||
|
||||
## [1.1.2] - 2019-04-04
|
||||
|
||||
### Changed
|
||||
|
||||
* Reverted PHPUnit 8 test update to stay PHP 7.0 compliant
|
||||
|
||||
|
||||
## [1.1.1] - 2019-04-03
|
||||
|
||||
### Fixed
|
||||
|
||||
* [#1](https://github.com/theseer/tokenizer/issues/1): Empty file causes invalid array read
|
||||
|
||||
### Changed
|
||||
|
||||
* Tests should now be PHPUnit 8 compliant
|
||||
|
||||
|
||||
## [1.1.0] - 2017-04-07
|
||||
|
||||
### Added
|
||||
|
||||
* Allow use of custom namespace for XML serialization
|
||||
|
||||
|
||||
## [1.0.0] - 2017-04-05
|
||||
|
||||
Initial Release
|
||||
|
||||
[1.1.3]: https://github.com/theseer/tokenizer/compare/1.1.2...1.1.3
|
||||
[1.1.2]: https://github.com/theseer/tokenizer/compare/1.1.1...1.1.2
|
||||
[1.1.1]: https://github.com/theseer/tokenizer/compare/1.1.0...1.1.1
|
||||
[1.1.0]: https://github.com/theseer/tokenizer/compare/1.0.0...1.1.0
|
||||
[1.0.0]: https://github.com/theseer/tokenizer/compare/b2493e57de80c1b7414219b28503fa5c6b4d0a98...1.0.0
|
||||
1
vendor/theseer/tokenizer/README.md
vendored
1
vendor/theseer/tokenizer/README.md
vendored
@@ -2,6 +2,7 @@
|
||||
|
||||
A small library for converting tokenized PHP source code into XML.
|
||||
|
||||
[](https://github.com/theseer/tokenizer/actions/workflows/ci.yml)
|
||||
[](https://scrutinizer-ci.com/g/theseer/tokenizer/?branch=master)
|
||||
[](https://scrutinizer-ci.com/g/theseer/tokenizer/?branch=master)
|
||||
[](https://scrutinizer-ci.com/g/theseer/tokenizer/build-status/master)
|
||||
|
||||
41
vendor/theseer/tokenizer/build.xml
vendored
41
vendor/theseer/tokenizer/build.xml
vendored
@@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="Tokenizer" default="setup">
|
||||
<target name="setup" depends="clean,install-tools,generate-autoloader"/>
|
||||
|
||||
<target name="clean" unless="clean.done" description="Cleanup build artifacts">
|
||||
<delete dir="${basedir}/tools"/>
|
||||
<delete dir="${basedir}/vendor"/>
|
||||
<delete file="${basedir}/src/autoload.php"/>
|
||||
|
||||
<property name="clean.done" value="true"/>
|
||||
</target>
|
||||
|
||||
<target name="prepare" unless="prepare.done" depends="clean" description="Prepare for build">
|
||||
<property name="prepare.done" value="true"/>
|
||||
</target>
|
||||
|
||||
<target name="-tools-installed">
|
||||
<available file="${basedir}/tools" property="tools-installed" type="dir"/>
|
||||
</target>
|
||||
|
||||
<target name="install-tools" unless="tools-installed" depends="-tools-installed" description="Install tools with Phive">
|
||||
<exec executable="phive" taskname="phive">
|
||||
<arg value="install"/>
|
||||
<arg value="--trust-gpg-keys" />
|
||||
<arg value="4AA394086372C20A,2A8299CE842DD38C" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="generate-autoloader" depends="install-tools" description="Generate autoloader using PHPAB">
|
||||
<exec executable="${basedir}/tools/phpab" taskname="phpab">
|
||||
<arg value="--output"/>
|
||||
<arg path="${basedir}/src/autoload.php"/>
|
||||
<arg path="${basedir}/src"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="test" depends="generate-autoloader" description="Run tests">
|
||||
<exec executable="${basedir}/tools/phpunit" taskname="phpunit"/>
|
||||
</target>
|
||||
</project>
|
||||
|
||||
2
vendor/theseer/tokenizer/composer.json
vendored
2
vendor/theseer/tokenizer/composer.json
vendored
@@ -13,7 +13,7 @@
|
||||
"issues": "https://github.com/theseer/tokenizer/issues"
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0",
|
||||
"php": "^7.2 || ^8.0",
|
||||
"ext-xmlwriter": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-tokenizer": "*"
|
||||
|
||||
22
vendor/theseer/tokenizer/composer.lock
generated
vendored
Normal file
22
vendor/theseer/tokenizer/composer.lock
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "b010f1b3d9d47d431ee1cb54ac1de755",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^7.2 || ^8.0",
|
||||
"ext-xmlwriter": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-tokenizer": "*"
|
||||
},
|
||||
"platform-dev": []
|
||||
}
|
||||
5
vendor/theseer/tokenizer/phive.xml
vendored
5
vendor/theseer/tokenizer/phive.xml
vendored
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phive xmlns="https://phar.io/phive">
|
||||
<phar name="phpunit" version="^6.0" installed="6.0.10" location="./tools/phpunit"/>
|
||||
<phar name="phpab" version="^1.23.0" installed="1.23.0" location="./tools/phpab"/>
|
||||
</phive>
|
||||
25
vendor/theseer/tokenizer/phpunit.xml
vendored
25
vendor/theseer/tokenizer/phpunit.xml
vendored
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/5.7/phpunit.xsd"
|
||||
bootstrap="src/autoload.php"
|
||||
backupGlobals="false"
|
||||
beStrictAboutOutputDuringTests="true"
|
||||
beStrictAboutTestsThatDoNotTestAnything="true"
|
||||
beStrictAboutTodoAnnotatedTests="true"
|
||||
verbose="true">
|
||||
<testsuite>
|
||||
<directory suffix="Test.php">tests</directory>
|
||||
</testsuite>
|
||||
|
||||
<filter>
|
||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">src</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
|
||||
<logging>
|
||||
<log type="coverage-html" target="build/coverage/html" title="phpDox"
|
||||
charset="UTF-8" highlight="true" lowUpperBound="60" highLowerBound="90"/>
|
||||
</logging>
|
||||
|
||||
</phpunit>
|
||||
1
vendor/theseer/tokenizer/src/Exception.php
vendored
1
vendor/theseer/tokenizer/src/Exception.php
vendored
@@ -2,5 +2,4 @@
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
class Exception extends \Exception {
|
||||
|
||||
}
|
||||
|
||||
@@ -6,9 +6,6 @@ class NamespaceUri {
|
||||
/** @var string */
|
||||
private $value;
|
||||
|
||||
/**
|
||||
* @param string $value
|
||||
*/
|
||||
public function __construct(string $value) {
|
||||
$this->ensureValidUri($value);
|
||||
$this->value = $value;
|
||||
@@ -18,10 +15,10 @@ class NamespaceUri {
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
private function ensureValidUri($value) {
|
||||
if (strpos($value, ':') === false) {
|
||||
private function ensureValidUri($value): void {
|
||||
if (\strpos($value, ':') === false) {
|
||||
throw new NamespaceUriException(
|
||||
sprintf("Namespace URI '%s' must contain at least one colon", $value)
|
||||
\sprintf("Namespace URI '%s' must contain at least one colon", $value)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,5 +2,4 @@
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
class NamespaceUriException extends Exception {
|
||||
|
||||
}
|
||||
|
||||
26
vendor/theseer/tokenizer/src/Token.php
vendored
26
vendor/theseer/tokenizer/src/Token.php
vendored
@@ -3,27 +3,17 @@ namespace TheSeer\Tokenizer;
|
||||
|
||||
class Token {
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
/** @var int */
|
||||
private $line;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
/** @var string */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
/** @var string */
|
||||
private $value;
|
||||
|
||||
/**
|
||||
* Token constructor.
|
||||
*
|
||||
* @param int $line
|
||||
* @param string $name
|
||||
* @param string $value
|
||||
*/
|
||||
public function __construct(int $line, string $name, string $value) {
|
||||
$this->line = $line;
|
||||
@@ -31,25 +21,15 @@ class Token {
|
||||
$this->value = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getLine(): int {
|
||||
return $this->line;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getValue(): string {
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
81
vendor/theseer/tokenizer/src/TokenCollection.php
vendored
81
vendor/theseer/tokenizer/src/TokenCollection.php
vendored
@@ -3,86 +3,53 @@ namespace TheSeer\Tokenizer;
|
||||
|
||||
class TokenCollection implements \ArrayAccess, \Iterator, \Countable {
|
||||
|
||||
/**
|
||||
* @var Token[]
|
||||
*/
|
||||
/** @var Token[] */
|
||||
private $tokens = [];
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
/** @var int */
|
||||
private $pos;
|
||||
|
||||
/**
|
||||
* @param Token $token
|
||||
*/
|
||||
public function addToken(Token $token) {
|
||||
public function addToken(Token $token): void {
|
||||
$this->tokens[] = $token;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Token
|
||||
*/
|
||||
public function current(): Token {
|
||||
return current($this->tokens);
|
||||
return \current($this->tokens);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function key(): int {
|
||||
return key($this->tokens);
|
||||
return \key($this->tokens);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function next() {
|
||||
next($this->tokens);
|
||||
public function next(): void {
|
||||
\next($this->tokens);
|
||||
$this->pos++;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function valid(): bool {
|
||||
return $this->count() > $this->pos;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function rewind() {
|
||||
reset($this->tokens);
|
||||
public function rewind(): void {
|
||||
\reset($this->tokens);
|
||||
$this->pos = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function count(): int {
|
||||
return count($this->tokens);
|
||||
return \count($this->tokens);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $offset
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function offsetExists($offset): bool {
|
||||
return isset($this->tokens[$offset]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $offset
|
||||
*
|
||||
* @return Token
|
||||
* @throws TokenCollectionException
|
||||
*/
|
||||
public function offsetGet($offset): Token {
|
||||
if (!$this->offsetExists($offset)) {
|
||||
throw new TokenCollectionException(
|
||||
sprintf('No Token at offest %s', $offset)
|
||||
\sprintf('No Token at offest %s', $offset)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -90,39 +57,37 @@ class TokenCollection implements \ArrayAccess, \Iterator, \Countable {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $offset
|
||||
* @param Token $value
|
||||
*
|
||||
* @throws TokenCollectionException
|
||||
*/
|
||||
public function offsetSet($offset, $value) {
|
||||
if (!is_int($offset)) {
|
||||
$type = gettype($offset);
|
||||
public function offsetSet($offset, $value): void {
|
||||
if (!\is_int($offset)) {
|
||||
$type = \gettype($offset);
|
||||
|
||||
throw new TokenCollectionException(
|
||||
sprintf(
|
||||
\sprintf(
|
||||
'Offset must be of type integer, %s given',
|
||||
$type === 'object' ? get_class($value) : $type
|
||||
$type === 'object' ? \get_class($value) : $type
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if (!$value instanceof Token) {
|
||||
$type = gettype($value);
|
||||
$type = \gettype($value);
|
||||
|
||||
throw new TokenCollectionException(
|
||||
sprintf(
|
||||
\sprintf(
|
||||
'Value must be of type %s, %s given',
|
||||
Token::class,
|
||||
$type === 'object' ? get_class($value) : $type
|
||||
$type === 'object' ? \get_class($value) : $type
|
||||
)
|
||||
);
|
||||
}
|
||||
$this->tokens[$offset] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $offset
|
||||
*/
|
||||
public function offsetUnset($offset) {
|
||||
public function offsetUnset($offset): void {
|
||||
unset($this->tokens[$offset]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,5 +2,4 @@
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
class TokenCollectionException extends Exception {
|
||||
|
||||
}
|
||||
|
||||
74
vendor/theseer/tokenizer/src/Tokenizer.php
vendored
74
vendor/theseer/tokenizer/src/Tokenizer.php
vendored
@@ -41,7 +41,12 @@ class Tokenizer {
|
||||
|
||||
public function parse(string $source): TokenCollection {
|
||||
$result = new TokenCollection();
|
||||
$tokens = token_get_all($source);
|
||||
|
||||
if ($source === '') {
|
||||
return $result;
|
||||
}
|
||||
|
||||
$tokens = \token_get_all($source);
|
||||
|
||||
$lastToken = new Token(
|
||||
$tokens[0][2],
|
||||
@@ -50,7 +55,7 @@ class Tokenizer {
|
||||
);
|
||||
|
||||
foreach ($tokens as $pos => $tok) {
|
||||
if (is_string($tok)) {
|
||||
if (\is_string($tok)) {
|
||||
$token = new Token(
|
||||
$lastToken->getLine(),
|
||||
$this->map[$tok],
|
||||
@@ -58,25 +63,80 @@ class Tokenizer {
|
||||
);
|
||||
$result->addToken($token);
|
||||
$lastToken = $token;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$line = $tok[2];
|
||||
$values = preg_split('/\R+/Uu', $tok[1]);
|
||||
$values = \preg_split('/\R+/Uu', $tok[1]);
|
||||
|
||||
foreach ($values as $v) {
|
||||
$token = new Token(
|
||||
$line,
|
||||
token_name($tok[0]),
|
||||
\token_name($tok[0]),
|
||||
$v
|
||||
);
|
||||
$result->addToken($token);
|
||||
$line++;
|
||||
$lastToken = $token;
|
||||
$line++;
|
||||
|
||||
if ($v === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$result->addToken($token);
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
return $this->fillBlanks($result, $lastToken->getLine());
|
||||
}
|
||||
|
||||
private function fillBlanks(TokenCollection $tokens, int $maxLine): TokenCollection {
|
||||
$prev = new Token(
|
||||
0,
|
||||
'Placeholder',
|
||||
''
|
||||
);
|
||||
|
||||
$final = new TokenCollection();
|
||||
|
||||
foreach ($tokens as $token) {
|
||||
if ($prev === null) {
|
||||
$final->addToken($token);
|
||||
$prev = $token;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$gap = $token->getLine() - $prev->getLine();
|
||||
|
||||
while ($gap > 1) {
|
||||
$linebreak = new Token(
|
||||
$prev->getLine() + 1,
|
||||
'T_WHITESPACE',
|
||||
''
|
||||
);
|
||||
$final->addToken($linebreak);
|
||||
$prev = $linebreak;
|
||||
$gap--;
|
||||
}
|
||||
|
||||
$final->addToken($token);
|
||||
$prev = $token;
|
||||
}
|
||||
|
||||
$gap = $maxLine - $prev->getLine();
|
||||
|
||||
while ($gap > 0) {
|
||||
$linebreak = new Token(
|
||||
$prev->getLine() + 1,
|
||||
'T_WHITESPACE',
|
||||
''
|
||||
);
|
||||
$final->addToken($linebreak);
|
||||
$prev = $linebreak;
|
||||
$gap--;
|
||||
}
|
||||
|
||||
return $final;
|
||||
}
|
||||
}
|
||||
|
||||
45
vendor/theseer/tokenizer/src/XMLSerializer.php
vendored
45
vendor/theseer/tokenizer/src/XMLSerializer.php
vendored
@@ -5,19 +5,13 @@ use DOMDocument;
|
||||
|
||||
class XMLSerializer {
|
||||
|
||||
/**
|
||||
* @var \XMLWriter
|
||||
*/
|
||||
/** @var \XMLWriter */
|
||||
private $writer;
|
||||
|
||||
/**
|
||||
* @var Token
|
||||
*/
|
||||
/** @var Token */
|
||||
private $previousToken;
|
||||
|
||||
/**
|
||||
* @var NamespaceUri
|
||||
*/
|
||||
/** @var NamespaceUri */
|
||||
private $xmlns;
|
||||
|
||||
/**
|
||||
@@ -32,24 +26,14 @@ class XMLSerializer {
|
||||
$this->xmlns = $xmlns;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TokenCollection $tokens
|
||||
*
|
||||
* @return DOMDocument
|
||||
*/
|
||||
public function toDom(TokenCollection $tokens): DOMDocument {
|
||||
$dom = new DOMDocument();
|
||||
$dom = new DOMDocument();
|
||||
$dom->preserveWhiteSpace = false;
|
||||
$dom->loadXML($this->toXML($tokens));
|
||||
|
||||
return $dom;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TokenCollection $tokens
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function toXML(TokenCollection $tokens): string {
|
||||
$this->writer = new \XMLWriter();
|
||||
$this->writer->openMemory();
|
||||
@@ -57,12 +41,16 @@ class XMLSerializer {
|
||||
$this->writer->startDocument();
|
||||
$this->writer->startElement('source');
|
||||
$this->writer->writeAttribute('xmlns', $this->xmlns->asString());
|
||||
$this->writer->startElement('line');
|
||||
$this->writer->writeAttribute('no', '1');
|
||||
|
||||
$this->previousToken = $tokens[0];
|
||||
foreach ($tokens as $token) {
|
||||
$this->addToken($token);
|
||||
if (\count($tokens) > 0) {
|
||||
$this->writer->startElement('line');
|
||||
$this->writer->writeAttribute('no', '1');
|
||||
|
||||
$this->previousToken = $tokens[0];
|
||||
|
||||
foreach ($tokens as $token) {
|
||||
$this->addToken($token);
|
||||
}
|
||||
}
|
||||
|
||||
$this->writer->endElement();
|
||||
@@ -72,10 +60,7 @@ class XMLSerializer {
|
||||
return $this->writer->outputMemory();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Token $token
|
||||
*/
|
||||
private function addToken(Token $token) {
|
||||
private function addToken(Token $token): void {
|
||||
if ($this->previousToken->getLine() < $token->getLine()) {
|
||||
$this->writer->endElement();
|
||||
|
||||
@@ -87,7 +72,7 @@ class XMLSerializer {
|
||||
if ($token->getValue() !== '') {
|
||||
$this->writer->startElement('token');
|
||||
$this->writer->writeAttribute('name', $token->getName());
|
||||
$this->writer->writeRaw(htmlspecialchars($token->getValue(), ENT_NOQUOTES | ENT_DISALLOWED | ENT_XML1));
|
||||
$this->writer->writeRaw(\htmlspecialchars($token->getValue(), \ENT_NOQUOTES | \ENT_DISALLOWED | \ENT_XML1));
|
||||
$this->writer->endElement();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
<?php declare(strict_types = 1);
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \TheSeer\Tokenizer\NamespaceUri
|
||||
*/
|
||||
class NamespaceUriTest extends TestCase {
|
||||
|
||||
public function testCanBeConstructedWithValidNamespace() {
|
||||
$this->assertInstanceOf(
|
||||
NamespaceUri::class,
|
||||
new NamespaceUri('a:b')
|
||||
);
|
||||
}
|
||||
|
||||
public function testInvalidNamespaceThrowsException() {
|
||||
$this->expectException(NamespaceUriException::class);
|
||||
new NamespaceUri('invalid-no-colon');
|
||||
}
|
||||
|
||||
public function testStringRepresentationCanBeRetrieved() {
|
||||
$this->assertEquals(
|
||||
'a:b',
|
||||
(new NamespaceUri('a:b'))->asString()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
<?php declare(strict_types = 1);
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \TheSeer\Tokenizer\TokenCollection
|
||||
*/
|
||||
class TokenCollectionTest extends TestCase {
|
||||
|
||||
/** @var TokenCollection */
|
||||
private $collection;
|
||||
|
||||
protected function setUp() {
|
||||
$this->collection = new TokenCollection();
|
||||
}
|
||||
|
||||
public function testCollectionIsInitiallyEmpty() {
|
||||
$this->assertCount(0, $this->collection);
|
||||
}
|
||||
|
||||
public function testTokenCanBeAddedToCollection() {
|
||||
$token = $this->createMock(Token::class);
|
||||
$this->collection->addToken($token);
|
||||
|
||||
$this->assertCount(1, $this->collection);
|
||||
$this->assertSame($token, $this->collection[0]);
|
||||
}
|
||||
|
||||
public function testCanIterateOverTokens() {
|
||||
$token = $this->createMock(Token::class);
|
||||
$this->collection->addToken($token);
|
||||
$this->collection->addToken($token);
|
||||
|
||||
foreach($this->collection as $position => $current) {
|
||||
$this->assertInternalType('integer', $position);
|
||||
$this->assertSame($token, $current);
|
||||
}
|
||||
}
|
||||
|
||||
public function testOffsetCanBeUnset() {
|
||||
$token = $this->createMock(Token::class);
|
||||
$this->collection->addToken($token);
|
||||
|
||||
$this->assertCount(1, $this->collection);
|
||||
unset($this->collection[0]);
|
||||
$this->assertCount(0, $this->collection);
|
||||
}
|
||||
|
||||
public function testTokenCanBeSetViaOffsetPosition() {
|
||||
$token = $this->createMock(Token::class);
|
||||
$this->collection[0] = $token;
|
||||
$this->assertCount(1, $this->collection);
|
||||
$this->assertSame($token, $this->collection[0]);
|
||||
}
|
||||
|
||||
public function testTryingToUseNonIntegerOffsetThrowsException() {
|
||||
$this->expectException(TokenCollectionException::class);
|
||||
$this->collection['foo'] = $this->createMock(Token::class);
|
||||
}
|
||||
|
||||
public function testTryingToSetNonTokenAtOffsetThrowsException() {
|
||||
$this->expectException(TokenCollectionException::class);
|
||||
$this->collection[0] = 'abc';
|
||||
}
|
||||
|
||||
public function testTryingToGetTokenAtNonExistingOffsetThrowsException() {
|
||||
$this->expectException(TokenCollectionException::class);
|
||||
$x = $this->collection[3];
|
||||
}
|
||||
|
||||
}
|
||||
31
vendor/theseer/tokenizer/tests/TokenTest.php
vendored
31
vendor/theseer/tokenizer/tests/TokenTest.php
vendored
@@ -1,31 +0,0 @@
|
||||
<?php declare(strict_types = 1);
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class TokenTest extends TestCase {
|
||||
|
||||
/** @var Token */
|
||||
private $token;
|
||||
|
||||
protected function setUp() {
|
||||
$this->token = new Token(1,'test-dummy', 'blank');
|
||||
}
|
||||
|
||||
public function testTokenCanBeCreated() {
|
||||
$this->assertInstanceOf(Token::class, $this->token);
|
||||
}
|
||||
|
||||
public function testTokenLineCanBeRetrieved() {
|
||||
$this->assertEquals(1, $this->token->getLine());
|
||||
}
|
||||
|
||||
public function testTokenNameCanBeRetrieved() {
|
||||
$this->assertEquals('test-dummy', $this->token->getName());
|
||||
}
|
||||
|
||||
public function testTokenValueCanBeRetrieved() {
|
||||
$this->assertEquals('blank', $this->token->getValue());
|
||||
}
|
||||
|
||||
}
|
||||
21
vendor/theseer/tokenizer/tests/TokenizerTest.php
vendored
21
vendor/theseer/tokenizer/tests/TokenizerTest.php
vendored
@@ -1,21 +0,0 @@
|
||||
<?php declare(strict_types = 1);
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \TheSeer\Tokenizer\Tokenizer
|
||||
*/
|
||||
class TokenizerTest extends TestCase {
|
||||
|
||||
public function testValidSourceGetsParsed() {
|
||||
$tokenizer = new Tokenizer();
|
||||
$result = $tokenizer->parse(file_get_contents(__DIR__ . '/_files/test.php'));
|
||||
|
||||
$expected = unserialize(
|
||||
file_get_contents(__DIR__ . '/_files/test.php.tokens'),
|
||||
[TokenCollection::class]
|
||||
);
|
||||
$this->assertEquals($expected, $result);
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
<?php declare(strict_types = 1);
|
||||
namespace TheSeer\Tokenizer;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \TheSeer\Tokenizer\XMLSerializer
|
||||
*/
|
||||
class XMLSerializerTest extends TestCase {
|
||||
|
||||
/** @var TokenCollection $tokens */
|
||||
private $tokens;
|
||||
|
||||
protected function setUp() {
|
||||
$this->tokens = unserialize(
|
||||
file_get_contents(__DIR__ . '/_files/test.php.tokens'),
|
||||
[TokenCollection::class]
|
||||
);
|
||||
}
|
||||
|
||||
public function testCanBeSerializedToXml() {
|
||||
$expected = file_get_contents(__DIR__ . '/_files/test.php.xml');
|
||||
|
||||
$serializer = new XMLSerializer();
|
||||
$this->assertEquals($expected, $serializer->toXML($this->tokens));
|
||||
}
|
||||
|
||||
public function testCanBeSerializedToDomDocument() {
|
||||
$serializer = new XMLSerializer();
|
||||
$result = $serializer->toDom($this->tokens);
|
||||
|
||||
$this->assertInstanceOf(\DOMDocument::class, $result);
|
||||
$this->assertEquals('source', $result->documentElement->localName);
|
||||
}
|
||||
|
||||
public function testCanBeSerializedToXmlWithCustomNamespace() {
|
||||
$expected = file_get_contents(__DIR__ . '/_files/customns.xml');
|
||||
|
||||
$serializer = new XMLSerializer(new NamespaceUri('custom:xml:namespace'));
|
||||
$this->assertEquals($expected, $serializer->toXML($this->tokens));
|
||||
}
|
||||
|
||||
}
|
||||
177
vendor/theseer/tokenizer/tests/_files/customns.xml
vendored
177
vendor/theseer/tokenizer/tests/_files/customns.xml
vendored
@@ -1,177 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<source xmlns="custom:xml:namespace">
|
||||
<line no="1">
|
||||
<token name="T_OPEN_TAG"><?php </token>
|
||||
<token name="T_DECLARE">declare</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_STRING">strict_types</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_EQUAL">=</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_LNUMBER">1</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="2">
|
||||
<token name="T_NAMESPACE">namespace</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">foo</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="3"/>
|
||||
<line no="4">
|
||||
<token name="T_CLASS">class</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">bar</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="5">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CONST">const</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">x</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_EQUAL">=</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CONSTANT_ENCAPSED_STRING">'abc'</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="6"/>
|
||||
<line no="7">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_DOC_COMMENT">/** @var int */</token>
|
||||
</line>
|
||||
<line no="8">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PRIVATE">private</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$y</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_EQUAL">=</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_LNUMBER">1</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="9"/>
|
||||
<line no="10">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">__construct</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="11">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_COMMENT">// do something</token>
|
||||
</line>
|
||||
<line no="12">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="13"/>
|
||||
<line no="14">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">getY</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_COLON">:</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">int</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="15">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_RETURN">return</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$this</token>
|
||||
<token name="T_OBJECT_OPERATOR">-></token>
|
||||
<token name="T_STRING">y</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="16">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="17"/>
|
||||
<line no="18">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">getSomeX</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_COLON">:</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">string</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="19">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_RETURN">return</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">self</token>
|
||||
<token name="T_DOUBLE_COLON">::</token>
|
||||
<token name="T_STRING">x</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="20">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="21"/>
|
||||
<line no="22">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">some</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_STRING">bar</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$b</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_COLON">:</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">string</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="23">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_RETURN">return</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$b</token>
|
||||
<token name="T_OBJECT_OPERATOR">-></token>
|
||||
<token name="T_STRING">getSomeX</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_DOT">.</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CONSTANT_ENCAPSED_STRING">'-def'</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="24">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="25">
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="26"/>
|
||||
</source>
|
||||
25
vendor/theseer/tokenizer/tests/_files/test.php
vendored
25
vendor/theseer/tokenizer/tests/_files/test.php
vendored
@@ -1,25 +0,0 @@
|
||||
<?php declare(strict_types = 1);
|
||||
namespace foo;
|
||||
|
||||
class bar {
|
||||
const x = 'abc';
|
||||
|
||||
/** @var int */
|
||||
private $y = 1;
|
||||
|
||||
public function __construct() {
|
||||
// do something
|
||||
}
|
||||
|
||||
public function getY(): int {
|
||||
return $this->y;
|
||||
}
|
||||
|
||||
public function getSomeX(): string {
|
||||
return self::x;
|
||||
}
|
||||
|
||||
public function some(bar $b): string {
|
||||
return $b->getSomeX() . '-def';
|
||||
}
|
||||
}
|
||||
Binary file not shown.
177
vendor/theseer/tokenizer/tests/_files/test.php.xml
vendored
177
vendor/theseer/tokenizer/tests/_files/test.php.xml
vendored
@@ -1,177 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<source xmlns="https://github.com/theseer/tokenizer">
|
||||
<line no="1">
|
||||
<token name="T_OPEN_TAG"><?php </token>
|
||||
<token name="T_DECLARE">declare</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_STRING">strict_types</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_EQUAL">=</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_LNUMBER">1</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="2">
|
||||
<token name="T_NAMESPACE">namespace</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">foo</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="3"/>
|
||||
<line no="4">
|
||||
<token name="T_CLASS">class</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">bar</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="5">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CONST">const</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">x</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_EQUAL">=</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CONSTANT_ENCAPSED_STRING">'abc'</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="6"/>
|
||||
<line no="7">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_DOC_COMMENT">/** @var int */</token>
|
||||
</line>
|
||||
<line no="8">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PRIVATE">private</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$y</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_EQUAL">=</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_LNUMBER">1</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="9"/>
|
||||
<line no="10">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">__construct</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="11">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_COMMENT">// do something</token>
|
||||
</line>
|
||||
<line no="12">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="13"/>
|
||||
<line no="14">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">getY</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_COLON">:</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">int</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="15">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_RETURN">return</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$this</token>
|
||||
<token name="T_OBJECT_OPERATOR">-></token>
|
||||
<token name="T_STRING">y</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="16">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="17"/>
|
||||
<line no="18">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">getSomeX</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_COLON">:</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">string</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="19">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_RETURN">return</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">self</token>
|
||||
<token name="T_DOUBLE_COLON">::</token>
|
||||
<token name="T_STRING">x</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="20">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="21"/>
|
||||
<line no="22">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_PUBLIC">public</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_FUNCTION">function</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">some</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_STRING">bar</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$b</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_COLON">:</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_STRING">string</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_OPEN_CURLY">{</token>
|
||||
</line>
|
||||
<line no="23">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_RETURN">return</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_VARIABLE">$b</token>
|
||||
<token name="T_OBJECT_OPERATOR">-></token>
|
||||
<token name="T_STRING">getSomeX</token>
|
||||
<token name="T_OPEN_BRACKET">(</token>
|
||||
<token name="T_CLOSE_BRACKET">)</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_DOT">.</token>
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CONSTANT_ENCAPSED_STRING">'-def'</token>
|
||||
<token name="T_SEMICOLON">;</token>
|
||||
</line>
|
||||
<line no="24">
|
||||
<token name="T_WHITESPACE"> </token>
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="25">
|
||||
<token name="T_CLOSE_CURLY">}</token>
|
||||
</line>
|
||||
<line no="26"/>
|
||||
</source>
|
||||
Reference in New Issue
Block a user