| Server IP : 127.0.0.1 / Your IP : 216.73.216.109 Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10 System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64 User : SERVERWEB ( 0) PHP Version : 8.1.10 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/cygwin64/lib/python3.9/site-packages/pip/_vendor/pygments/__pycache__/ |
Upload File : |
a
X��e � @ sl d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ e� d�Z
ed�Zdd � Zd
d� Z
dd
d�ZdS )a
pygments.regexopt
~~~~~~~~~~~~~~~~~
An algorithm that generates optimized regexes for matching long lists of
literal strings.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�escape)�commonprefix)�groupby)�
itemgetterz[\[\^\\\-\]]c C s dt �dd� d�| �� d S )N�[c S s d| � � S )N�\)�group)�m� r
�A/usr/lib/python3.9/site-packages/pip/_vendor/pygments/regexopt.py�<lambda> � zmake_charset.<locals>.<lambda>� �])� CS_ESCAPE�sub�join)Zlettersr
r
r �make_charset s r c s� |rdp
d}| sdS | d � t | �dkr8|t� � | S � sZ|t| dd� d� d | S t � �dkr�g }g }| D ]&}t |�dkr�|�|� qr|�|� qrt |�dkr�|r�|t|d� d t|� | S |t|� | S t| �}|�rt |��|t|� t�fd d
�| D �d� | S dd
� | D �}t|�}|�rpt |��|tt�fdd
�| D ��d� t|ddd� � | S |d�dd
� t| � fdd��D �� | S )zEReturn a regex that matches any string in the sorted list of strings.�)r r � Nz(?:�?�|c s g | ]}|� d � �qS �Nr
��.0�s)�plenr
r �
<listcomp>? r
z#regex_opt_inner.<locals>.<listcomp>c S s g | ]}|d d d� �qS )N���r
r r
r
r r B r
c 3 s | ]}|d � � V qd S r r
r )�slenr
r � <genexpr>H r
z"regex_opt_inner.<locals>.<genexpr>r c s s | ]}t t|d �d�V qdS )r r N)�regex_opt_inner�list)r r r
r
r r M s �c s | d � d kS )Nr r
)r )�firstr
r r N r
z!regex_opt_inner.<locals>.<lambda>) �lenr r! �appendr r �sortedr r ) �stringsZ
open_parenZclose_parenZ oneletter�restr �prefixZstrings_rev�suffixr
)r# r r r r! sj ����
�����
���r! r c C s t | �} |t| d� | S )z�Return a compiled regex that matches any string in the given list.
The strings to match must be literal strings, not regexes. They will be
regex-escaped.
*prefix* and *suffix* are pre- and appended to the final regex.
�()r&