CasperSecurity

Current Path : /lib/python3.10/lib2to3/__pycache__/
Upload File :
Current File : //lib/python3.10/lib2to3/__pycache__/patcomp.cpython-310.pyc

o

��bc��@s�dZdZddlZddlmZmZmZmZmZm	Z	ddl
mZddl
mZGdd	�d	e
�Zd
d�ZGdd
�d
e�Zejejejdd�Zdd�Zdd�Zdd�ZdS)z�Pattern compiler.

The grammar is taken from PatternGrammar.txt.

The compiler compiles a pattern to a pytree.*Pattern instance.
z#Guido van Rossum <guido@python.org>�N�)�driver�literals�token�tokenize�parse�grammar)�pytree)�pygramc@seZdZdS)�PatternSyntaxErrorN)�__name__�
__module__�__qualname__�rr�&/usr/lib/python3.10/lib2to3/patcomp.pyrsrc	csN�tjtjtjh}t�t�|�j�}|D]}|\}}}}}||vr$|VqdS)z6Tokenizes a string suppressing significant whitespace.N)	r�NEWLINE�INDENT�DEDENTr�generate_tokens�io�StringIO�readline)	�input�skip�tokens�	quintuple�type�value�start�end�	line_textrrr�tokenize_wrappers���r!c@s:eZdZd
dd�Zddd�Zdd�Zd
d	d
�Zdd�ZdS)�PatternCompilerNcCsZ|dur
tj|_tj|_n
t�|�|_t�|j�|_tj|_	tj
|_tj|jt
d�|_dS)z^Initializer.

        Takes an optional alternative filename for the pattern grammar.
        N)�convert)r
�pattern_grammarr�pattern_symbols�symsr�load_grammar�Symbols�python_grammar�	pygrammar�python_symbols�pysyms�Driver�pattern_convert)�self�grammar_filerrr�__init__(s
zPatternCompiler.__init__Fc
Csbt|�}z
|jj||d�}Wntjy"}ztt|��d�d}~ww|r,|�|�|fS|�|�S)z=Compiles a pattern string to a nested pytree.*Pattern object.)�debugN)r!r�parse_tokensr�
ParseErrorr�str�compile_node)r/rr2�	with_treer�root�errr�compile_pattern7s��
zPatternCompiler.compile_patternc
s�|j�jjkr|jd}|j�jjkr=�fdd�|jddd�D�}t|�dkr,|dStjdd�|D�ddd�}|��S|j�jj	kre�fd	d�|jD�}t|�dkrX|dStj|gddd�}|��S|j�jj
kr��|jdd��}t�|�}|��S|j�jj
ks�J�d}|j}t|�d
kr�|djtjkr�|dj}|dd�}d}t|�dkr�|dj�jjkr�|d}|dd�}��||�}|du�rA|j�jjks�J�|j}	|	d}
|
jtjkr�d}tj}nA|
jtjkr�d}tj}n5|
jtjk�r'|	djtjk�sJ�t|	�dv�sJ���|	d�}}t|	�d
k�r&��|	d
�}nJ�|dk�s3|dk�rA|��}tj|gg||d�}|du�rI||_|��S)zXCompiles a node, recursively.

        This is one big switch on the node type.
        rc�g|]}��|��qSr�r6��.0�ch�r/rr�
<listcomp>O�z0PatternCompiler.compile_node.<locals>.<listcomp>N�rcSsg|]}|g�qSrr)r>�arrrrARs��min�maxcr;rr<r=r@rrrAVrB����)rH�rJ)rr&�Matcher�children�Alternatives�lenr	�WildcardPattern�optimize�Alternative�NegatedUnit�
compile_basic�NegatedPattern�Unitr�EQUALr�Repeater�STAR�HUGE�PLUS�LBRACE�RBRACE�get_int�name)
r/�node�alts�p�units�patternr^�nodes�repeatrL�childrFrGrr@rr6Csj



�
zPatternCompiler.compile_nodecCsZt|�dksJ�|d}|jtjkr"tt�|j��}t�	t
|�|�S|jtjkr�|j}|��rJ|t
vr9td|��|dd�rCtd��t�	t
|�S|dkrQd}n|�d�sgt|j|d�}|durgtd|��|dd�ry|�|djd�g}nd}t�||�S|jdkr�|�|d�S|jd	kr�|dus�J�|�|d�}tj|ggddd
�SJ|��)NrrzInvalid token: %rzCan't have details for token�any�_zInvalid symbol: %r�(�[rE)rNrr�STRINGr5r�
evalStringrr	�LeafPattern�_type_of_literal�NAME�isupper�	TOKEN_MAPr�
startswith�getattrr,r6rL�NodePatternrO)r/rdrer_rr�content�
subpatternrrrrS�s<


zPatternCompiler.compile_basiccCs|jtjksJ�t|j�S�N)rr�NUMBER�intr)r/r_rrrr]�s
zPatternCompiler.get_intrw)FF)rr
rr1r:r6rSr]rrrrr"&s


G#r")rorkrx�TOKENcCs*|d��r	tjS|tjvrtj|SdS)Nr)�isalpharror�opmap)rrrrrn�s


rncCs:|\}}}}|s
||jvrtj|||d�Stj|||d�S)z9Converts raw node information to a Node or Leaf instance.)�context)�
number2symbolr	�Node�Leaf)r�
raw_node_inforrr}rLrrrr.�sr.cCst��|�Srw)r"r:)rcrrrr:�sr:)�__doc__�
__author__r�pgen2rrrrrr�r	r
�	Exceptionrr!�objectr"rorkrxrqrnr.r:rrrr�<module>s$ 
�		
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY