Augmentation vers version 3.3.0
This commit is contained in:
47
vendor/s9e/regexp-builder/src/Passes/PromoteSingleStrings.php
vendored
Normal file
47
vendor/s9e/regexp-builder/src/Passes/PromoteSingleStrings.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package s9e\RegexpBuilder
|
||||
* @copyright Copyright (c) 2016-2018 The s9e Authors
|
||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||
*/
|
||||
namespace s9e\RegexpBuilder\Passes;
|
||||
|
||||
/**
|
||||
* Replaces alternations that only contain one string to allow other passes to replace
|
||||
* (?:a0?x|bx) with (?:a0?|b)x
|
||||
*/
|
||||
class PromoteSingleStrings extends AbstractPass
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function runPass(array $strings)
|
||||
{
|
||||
return array_map([$this, 'promoteSingleStrings'], $strings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Promote single strings found inside given string
|
||||
*
|
||||
* @param array $string Original string
|
||||
* @return array Modified string
|
||||
*/
|
||||
protected function promoteSingleStrings(array $string)
|
||||
{
|
||||
$newString = [];
|
||||
foreach ($string as $element)
|
||||
{
|
||||
if (is_array($element) && count($element) === 1)
|
||||
{
|
||||
$newString = array_merge($newString, $element[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$newString[] = $element;
|
||||
}
|
||||
}
|
||||
|
||||
return $newString;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user