radarrplexorganizrnginxsonarrdashboardembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdall
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							89 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							89 lines
						
					
					
						
							2.7 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * This file is part of the Symfony package. | |
|  * | |
|  * (c) Fabien Potencier <fabien@symfony.com> | |
|  * | |
|  * For the full copyright and license information, please view the LICENSE | |
|  * file that was distributed with this source code. | |
|  */ | |
| 
 | |
| namespace Symfony\Component\CssSelector\Parser\Tokenizer; | |
| 
 | |
| /** | |
|  * CSS selector tokenizer patterns builder. | |
|  * | |
|  * This component is a port of the Python cssselect library, | |
|  * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect. | |
|  * | |
|  * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com> | |
|  * | |
|  * @internal | |
|  */ | |
| class TokenizerPatterns | |
| { | |
|     private $unicodeEscapePattern; | |
|     private $simpleEscapePattern; | |
|     private $newLineEscapePattern; | |
|     private $escapePattern; | |
|     private $stringEscapePattern; | |
|     private $nonAsciiPattern; | |
|     private $nmCharPattern; | |
|     private $nmStartPattern; | |
|     private $identifierPattern; | |
|     private $hashPattern; | |
|     private $numberPattern; | |
|     private $quotedStringPattern; | |
| 
 | |
|     public function __construct() | |
|     { | |
|         $this->unicodeEscapePattern = '\\\\([0-9a-f]{1,6})(?:\r\n|[ \n\r\t\f])?'; | |
|         $this->simpleEscapePattern = '\\\\(.)'; | |
|         $this->newLineEscapePattern = '\\\\(?:\n|\r\n|\r|\f)'; | |
|         $this->escapePattern = $this->unicodeEscapePattern.'|\\\\[^\n\r\f0-9a-f]'; | |
|         $this->stringEscapePattern = $this->newLineEscapePattern.'|'.$this->escapePattern; | |
|         $this->nonAsciiPattern = '[^\x00-\x7F]'; | |
|         $this->nmCharPattern = '[_a-z0-9-]|'.$this->escapePattern.'|'.$this->nonAsciiPattern; | |
|         $this->nmStartPattern = '[_a-z]|'.$this->escapePattern.'|'.$this->nonAsciiPattern; | |
|         $this->identifierPattern = '(?:'.$this->nmStartPattern.')(?:'.$this->nmCharPattern.')*'; | |
|         $this->hashPattern = '#((?:'.$this->nmCharPattern.')+)'; | |
|         $this->numberPattern = '[+-]?(?:[0-9]*\.[0-9]+|[0-9]+)'; | |
|         $this->quotedStringPattern = '([^\n\r\f%s]|'.$this->stringEscapePattern.')*'; | |
|     } | |
| 
 | |
|     public function getNewLineEscapePattern(): string | |
|     { | |
|         return '~^'.$this->newLineEscapePattern.'~'; | |
|     } | |
| 
 | |
|     public function getSimpleEscapePattern(): string | |
|     { | |
|         return '~^'.$this->simpleEscapePattern.'~'; | |
|     } | |
| 
 | |
|     public function getUnicodeEscapePattern(): string | |
|     { | |
|         return '~^'.$this->unicodeEscapePattern.'~i'; | |
|     } | |
| 
 | |
|     public function getIdentifierPattern(): string | |
|     { | |
|         return '~^'.$this->identifierPattern.'~i'; | |
|     } | |
| 
 | |
|     public function getHashPattern(): string | |
|     { | |
|         return '~^'.$this->hashPattern.'~i'; | |
|     } | |
| 
 | |
|     public function getNumberPattern(): string | |
|     { | |
|         return '~^'.$this->numberPattern.'~'; | |
|     } | |
| 
 | |
|     public function getQuotedStringPattern(string $quote): string | |
|     { | |
|         return '~^'.sprintf($this->quotedStringPattern, $quote).'~i'; | |
|     } | |
| }
 | |
| 
 |