/usr/lib64/python3.9/lib2to3/__pycache__
Edit: /usr/lib64/python3.9/lib2to3/__pycache__/patcomp.cpython-39.pyc (5605B)
a
´iŽ ã @ s d Z dZddlZddlmZmZmZmZmZm Z ddl
mZ ddl
mZ G dd „ d e
ƒZd
d„ ZG dd
„ 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
é Né )ÚdriverÚliteralsÚtokenÚtokenizeÚparseÚgrammar)Úpytree)Úpygramc @ s e Zd ZdS )ÚPatternSyntaxErrorN)Ú__name__Ú
__module__Ú__qualname__© r r ú'/usr/lib64/python3.9/lib2to3/patcomp.pyr s r c c sL t jt jt jh}t t | ¡j¡}|D ] }|\}}}}}||vr&|V q&dS )z6Tokenizes a string suppressing significant whitespace.N) r ÚNEWLINEÚINDENTÚDEDENTr Úgenerate_tokensÚioÚStringIOÚreadline) ÚinputÚskipÚtokensZ quintupleÚtypeÚvalueÚstartÚendZ line_textr r r Útokenize_wrapper s r c @ s: e Zd Zd
dd„Zddd„Zdd„ Zdd d
„Zdd„ ZdS )ÚPatternCompilerNc C sZ |du rt j| _t j| _nt |¡| _t | j¡| _t j| _ t j
| _tj| jt
d�| _dS )z^Initializer.
Takes an optional alternative filename for the pattern grammar.
N)Úconvert)r
Zpattern_grammarr Zpattern_symbolsÚsymsr Zload_grammarZSymbolsZpython_grammarZ pygrammarZpython_symbolsÚpysymsZDriverÚpattern_convert)ÚselfZgrammar_filer r r Ú__init__( s
zPatternCompiler.__init__Fc
C sr t |ƒ}z| jj||d�}W n4 tjyP } ztt|ƒƒd‚W Y d}~n
d}~0 0 |rd| |¡|fS | |¡S dS )z=Compiles a pattern string to a nested pytree.*Pattern object.)ÚdebugN)r r Zparse_tokensr Z
ParseErrorr ÚstrÚcompile_node)r% r r' Z with_treer ÚrootÚer r r Úcompile_pattern7 s $zPatternCompiler.compile_patternc
s° |j ˆ jjkr|jd }|j ˆ jjkrz‡ fdd„|jddd… D ƒ}t|ƒdkrX|d S tjdd„ |D ƒddd�}| ¡ S |j ˆ jj krʇ fd d„|jD ƒ}t|ƒdkr°|d S tj|gddd�}| ¡ S |j ˆ jj
krþˆ |jdd… ¡}t |¡}| ¡ S |j ˆ jj
k�sJ ‚d}|j}t|ƒd
k�rR|d j tjk�rR|d j}|dd… }d}t|ƒdk�rŒ|d j ˆ jjk�rŒ|d }|dd… }ˆ ||¡}|du�r˜|j ˆ jjk�s¶J ‚|j} | d }
|
j tjk�rÞd}tj}nŠ|
j tjk�rød}tj}np|
j tjk�r^| d j tjk�sJ ‚t| ƒdv �s.J ‚ˆ | d ¡ }}t| ƒd
k�rhˆ | d
¡}n
d�shJ ‚|dk�s||dk�r˜| ¡ }tj|gg||d�}|du�r¨||_| ¡ S )zXCompiles a node, recursively.
This is one big switch on the node type.
r c s g | ]}ˆ |¡‘qS r ©r) ©Ú.0Zch©r% r r Ú
O ó z0PatternCompiler.compile_node..Né r c S s g | ]
}|g‘qS r r )r/ Úar r r r1 R r2 ©ÚminÚmaxc s g | ]}ˆ |¡‘qS r r- r. r0 r r r1 V r2 é éÿÿÿÿ)r8 é r: F)r r" ZMatcherÚchildrenZAlternativesÚlenr ÚWildcardPatternÚoptimizeZAlternativeZNegatedUnitÚ
compile_basicZNegatedPatternZUnitr ÚEQUALr ZRepeaterÚSTARZHUGEÚPLUSÚLBRACEÚRBRACEÚget_intÚname)
r% ÚnodeZaltsÚpZunitsÚpatternrF ÚnodesÚrepeatr; Úchildr6 r7 r r0 r r) C sh
"
zPatternCompiler.compile_nodec C sn t |ƒdksJ ‚|d }|jtjkrDtt |j¡ƒ}t t
|ƒ|¡S |jtjk�r|j}| ¡ r–|t
vrttd| ƒ‚|dd … rˆtdƒ‚t t
| ¡S |dkr¤d }n,| d¡sÐt| j|d ƒ}|d u rÐtd| ƒ‚|dd … rô| |d jd ¡g}nd }t ||¡S nV|jdk�r | |d ¡S |jd k�r\|d u �s:J ‚| |d ¡}tj|ggddd
�S d�sjJ |ƒ‚d S )Nr r zInvalid token: %rzCan't have details for tokenÚanyÚ_zInvalid symbol: %rú(ú[r5 F)r<