python (3.12.0)

(root)/
lib/
python3.12/
lib2to3/
__pycache__/
patcomp.cpython-312.pyc

̑edZdZddlZddlmZmZmZmZmZm	Z	ddl
mZddl
mZGdd	e
Zd
ZGddeZej$ej&ej(dd
ZdZdZdZy)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)pygramceZdZy)PatternSyntaxErrorN)__name__
__module____qualname__C/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/lib2to3/patcomp.pyr
r
srr
c#Ktjtjtjh}t	j
t
j|j}|D]}|\}}}}}||vs|yw)z6Tokenizes a string suppressing significant whitespace.N)	rNEWLINEINDENTDEDENTrgenerate_tokensioStringIOreadline)	inputskiptokens	quintupletypevaluestartend	line_texts	         rtokenize_wrapperr%siMM5<<6D

%
%bkk%&8&A&A
BF	-6*eUCtOsA3A=6A=c0eZdZddZddZdZddZdZy)	PatternCompilerNc|+tj|_tj|_n>tj||_tj|j|_tj|_	tj|_tj|jt|_y)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__(sz
!11DL..DI!..|<DLt||4DI..++mmDLL/Jrct|}	|jj||}|r|j||fS|j|S#tj$r}tt
|dd}~wwxYw)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%+@D$$T*D00$$T**	7$SV,$6	7sAA=#A88A=c|j|jjk(r|jd}|j|jjk(rx|jdddDcgc]}|j|}}t
|dk(r|dStj|Dcgc]}|gc}dd}|jS|j|jjk(rd|jDcgc]}|j|}}t
|dk(r|dStj|gdd}|jS|j|jjk(rC|j|jdd}tj|}|jS|j|jjk(sJd}|j}	t
|	dk\r4|	djtj k(r|	dj"}|	dd}	d}
t
|	dk\r0|	dj|jj$k(r
|	d}
|	dd}	|j|	|
}|
S|
j|jj$k(sJ|
j}|d}|jtj&k(rd}
tj(}n|jtj*k(rd}
tj(}n|jtj,k(rj|djtj.k(sJt
|dvsJ|j1|dx}
}t
|d	k(r|j1|d}nJ|
dk7s|dk7r*|j}tj|gg|
|}|||_|jScc}wcc}wcc}w)
zXCompiles a node, recursively.

        This is one big switch on the node type.
        rNrminmax)rGrI)r r,MatcherchildrenAlternativesr=lenr
WildcardPatternoptimizeAlternativeNegatedUnit
compile_basicNegatedPatternUnitrEQUALr!RepeaterSTARHUGEPLUSLBRACERBRACEget_intname)r5nodechaltsapunitspatternr]nodesrepeatrKchildrErFs               rr=zPatternCompiler.compile_nodeCsO99		)))==#D99		...48MM#A#4FGbD%%b)GDG4yA~Aw&&T':':qIA::<99		---59]]CrT&&r*CEC5zQQx&&wA1=A::<99		---((qr):;G%%g.A::<yyDIINN**

u:?uQx}};8>>D!"IEu:?uRy~~1C1CC2YF#2JE$$UF3;;$))"4"444HQKEzzUZZ'kkuzz)kku||+|((ELL88H
// LL!55cx=A%,,x{3Cax3!8!**, 007)#3OGL!!sH(;Ds*O1*
O6?O;ct|dk\sJ|d}|jtjk(rGt	tj|j}tjt||S|jtjk(r|j}|jrB|tvrtd|z|ddrtdtjt|S|dk(rd}n8|jds't!|j"|d}|td|z|ddr#|j%|dj&dg}nd}tj(|S|jdk(r|j%|dS|jd	k(r2|J|j%|d}tj*|ggdd
SJ|)NrrzInvalid token: %rzCan't have details for tokenany_zInvalid symbol: %r([rD)rMr rSTRINGr<r
evalStringr!r
LeafPattern_type_of_literalNAMEisupper	TOKEN_MAPr

startswithgetattrr2r=rKNodePatternrN)r5rerfr^r!r content
subpatterns        rrRzPatternCompiler.compile_basics5zQQx99$++DJJ78E%%&6u&=uEE
YY%**
$JJE}}	),-@5-HII9,-KLL)))E*:;;E>D))#."4;;t<D|01E1MNN9#00q1B1B11EFGG"G))$88
ZZ3
$$U1X..
ZZ3
>!**584J))J<.aQGGdrcj|jtjk(sJt|jSN)r rNUMBERintr!)r5r^s  rr\zPatternCompiler.get_ints#yyELL((4::rrz)FF)rrrr7rAr=rRr\rrrr'r'&s
K
+E"N!Frr')rqrmr{TOKENc|djrtjS|tjvrtj|Sy)Nr)isalpharrqr	opmap)r!s rrprps:Qxzz	'--	}}U##rc|\}}}}|s||jvrtj|||Stj|||S)z9Converts raw node information to a Node or Leaf instance.)context)
number2symbolr
NodeLeaf)r	
raw_node_infor r!rrKs      rr4r4sF%2"D%(47000{{47;;{{488rc4tj|Srz)r'rA)rds rrArAs,,W55r)__doc__
__author__rpgen2rrrrrr	r
r	Exceptionr
r%objectr'rqrmr{rsrpr4rArrr<module>rsw3

ED		IfIZZZ||||
	96r