python (3.11.7)

(root)/
lib/
python3.11/
lib2to3/
__pycache__/
patcomp.cpython-311.opt-1.pyc

edZdZddlZddlmZmZmZmZmZm	Z	ddl
mZddl
mZGdd	e
Zd
ZGddeZejejejdd
ZdZdZdZdS)zPattern 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)driverliteralstokentokenizeparsegrammar)pytree)pygramceZdZdS)PatternSyntaxErrorN)__name__
__module____qualname__C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/lib2to3/patcomp.pyr
r
sDrr
c#Ktjtjtjh}t	jt
j|j}|D]}|\}}}}}||vr|VdS)z6Tokenizes a string suppressing significant whitespace.N)	rNEWLINEINDENTDEDENTrgenerate_tokensioStringIOreadline)	inputskiptokens	quintupletypevaluestartend	line_texts	         rtokenize_wrapperr%ssM5<6D

%bk%&8&8&A
B
BF	-6*eUCtOOOrc2eZdZddZd	dZdZddZdZdS)
PatternCompilerNcL|#tj|_tj|_n7tj||_tj|j|_tj|_	tj
|_tj|jt|_dS)z^Initializer.

        Takes an optional alternative filename for the pattern grammar.
        N)convert)rpattern_grammarr	pattern_symbolssymsrload_grammarSymbolspython_grammar	pygrammarpython_symbolspysymsDriverpattern_convert)selfgrammar_files  r__init__zPatternCompiler.__init__(su
!1DL.DII!.|<<DLt|44DI.+mDL/JJJrFc t|}	|j||}n4#tj$r"}tt
|dd}~wwxYw|r|||fS||S)z=Compiles a pattern string to a nested pytree.*Pattern object.)debugN)r%rparse_tokensr
ParseErrorr
strcompile_node)r5rr9	with_treerrootes       rcompile_patternzPatternCompiler.compile_pattern7s!%((	7;++F%+@@DD	7	7	7$SVV,,$6	7	+$$T**D00$$T***s.AAAcP|jjjkr
|jd}|jjjkrlfd|jdddD}t|dkr|dSt
jd|Ddd}|S|jjj	krZfd|jD}t|dkr|dSt
j|gdd}|S|jjj
krJ|jdd}t
j|}|Sd}|j}t|d	kr2|djtjkr|dj}|dd}d}t|dkr-|d
jjjkr|d
}|dd
}||}||j}	|	d}
|
jtjkrd}tj}n|
jtjkrd}tj}n`|
jtjkrK|	dx}}t|	dkr|	d	}|dks|dkr-|}t
j|gg||}|||_|S)zXCompiles a node, recursively.

        This is one big switch on the node type.
        rc:g|]}|Srr=.0chr5s  r
<listcomp>z0PatternCompiler.compile_node.<locals>.<listcomp>Os'GGGbD%%b))GGGrNrcg|]}|gSrr)rFas  rrHz0PatternCompiler.compile_node.<locals>.<listcomp>Rs':':':':':':rminmaxc:g|]}|SrrDrEs  rrHz0PatternCompiler.compile_node.<locals>.<listcomp>Vs'CCCrT&&r**CCCr)r r,MatcherchildrenAlternativeslenr
WildcardPatternoptimizeAlternativeNegatedUnit
compile_basicNegatedPatternrEQUALr!RepeaterSTARHUGEPLUSLBRACEget_intname)
r5nodealtspunitspatternrdnodesrepeatrTchildrMrNs
`            rr=zPatternCompiler.compile_nodeCs9	)))=#D9	...GGGGDM##A#4FGGGD4yyA~~Aw&':':T':':':qIIIA::<<9	---CCCCT]CCCE5zzQQx&wA1===A::<<9	---((qrr):;;G%g..A::<<
u::??uQx};;8>D!""IEu::??uRy~1CCC2YF#2#JE$$UF33HQKEzUZ''kuz))ku|++!LL!555cx==A%%,,x{33Caxx3!88!**,, 07)#3OOOGL!!!rc|d}|jtjkrHtt	j|j}tjt||S|jtj
kr|j}|rS|tvrtd|z|ddrtdtjt|S|dkrd}n?|ds*t|j|d}|td|z|ddr(||djdg}nd}tj||S|jdkr||dS|jd	kr4||d}tj|ggdd
SdS)NrzInvalid token: %rrzCan't have details for tokenany_zInvalid symbol: %r([rL)r rSTRINGr<r
evalStringr!r
LeafPattern_type_of_literalNAMEisupper	TOKEN_MAPr

startswithgetattrr2r=rTNodePatternrW)r5rjrkrer!r content
subpatterns        rr[zPatternCompiler.compile_basicsQx9$$+DJ7788E%&6u&=&=uEEE
Y%*
$
$JE}}
9	)),-@5-HIII9M,-KLLL))E*:;;;E>>DD))#..O"4;t<<D|01E1MNNN9##00q1B11EFFGGG"G)$888
Z3

$$U1X...
Z3

**5844J)J<.aQGGGG
rc*t|jSN)intr!)r5res  rrczPatternCompiler.get_ints4:rr)FF)rrrr7rAr=r[rcrrrr'r'&sw
K
K
K
K
+
+
+
+E"E"E"N!!!!Frr')rvrrNUMBERTOKENc|drtjS|tjvrtj|SdS)Nr)isalpharrvr	opmap)r!s rrurusAQxz	'-		}U##trc|\}}}}|s	||jvrtj|||Stj|||S)z9Converts raw node information to a Node or Leaf instance.)context)
number2symbolr
NodeLeaf)r	
raw_node_infor r!rrTs      rr4r4sS%2"D%(947000{47;;;;{48888rcDt|Sr)r'rA)ris rrArAs,,W555r)__doc__
__author__rpgen2rrrrrr	r
r	Exceptionr
r%objectr'rvrrrrxrur4rArrr<module>rs=3

			EDDDDDDDDDDDDDDD								IIIIIfIIIZZ||

	99966666r