python (3.12.0)

(root)/
lib/
python3.12/
lib2to3/
__pycache__/
btm_matcher.cpython-312.opt-2.pyc

̑et	dZddlZddlZddlmZddlmZddlmZGdde	Z
Gd	d
e	ZiadZ
y)z+George Boutsioukis <gboutsioukis@gmail.com>N)defaultdict)pytree)reduce_treec6eZdZ	ejZdZy)BMNodecji|_g|_ttj|_d|_y)N)transition_tablefixersnextrcountidcontentselfs G/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/lib2to3/btm_matcher.py__init__zBMNode.__init__s( "v||$N)__name__
__module____qualname__	itertoolsrrrrrrsIIOOErrc,eZdZ	dZdZdZdZdZy)
BottomMatcherct|_t|_|jg|_g|_t
jd|_y)NRefactoringTool)	setmatchrrootnodesrlogging	getLoggerloggerrs rrzBottomMatcher.__init__s;U
H	ii[
''(9:rc	|jj|t|j}|j	}|j||j}|D]}|jj|y)Nstart)rappendrpattern_treeget_linear_subpatternaddr!)rfixertreelinearmatch_nodes
match_nodes      r	add_fixerzBottomMatcher.add_fixer%sr		
5!5--.++-hhvTYYh7%	,J$$U+	,rc		|s|gSt|dtrLg}|dD]@}|j||}|D]&}|j|j|dd|(B|S|d|jvrt}||j|d<n|j|d}|ddr|j|dd|}|S|g}|S)Nrr'r)
isinstancetupler,extendrr)rpatternr(r0alternative	end_nodesend	next_nodes        rr,zBottomMatcher.add1s?7Ngaj%(K&qz
C!HH[H>	$CC&&txxS'ABC	
Cqz!7!77"H	5>&&wqz2"2271:>	qr{ HHWQR[	HB	'K	rc	|j}tt}|D]?}|}|s	d|_|jD]5}t|tjs|jdk(s.d|_n|jdk(r
|j}n|j}||jvr5|j|}|jD]}||j|nq|j}|j|jjr||jvr4|j|}|jD]}||j||j}|r7B|S)NT;Fr)r!rlistwas_checkedchildrenr4rLeafvaluetyperrr)parent)	rleavescurrent_ac_noderesultsleafcurrent_ast_nodechild
node_tokenr-s	         rrunzBottomMatcher.runSst	))d##	;D#"/3 ,-66E!%5%++:L7<(4	
$((A-!1!7!7J!1!6!6J!A!AA&5&F&Fz&RO!0!7!7@--.>?@'+iiO(//;,33??"_%E%EE*9*J*J:*V%4%;%;DE#EN112BCD$4#:#: C##	;Hrcb	tdfd|jtdy)Nz
digraph g{c
*|jjD]u}|j|}td|j|jt	|t|jfz|dk(rt|j|wy)Nz%d -> %d [label=%s] //%sr)rkeysprintr	type_reprstrrr)nodesubnode_keysubnode
print_nodes   rrVz*BottomMatcher.print_ac.<locals>.print_nodes#4499;
$//<0ww

Ik,BCDWXYZ!#'//*7#

$r})rPr!)rrVs @rprint_aczBottomMatcher.print_acs(F
l	$	499
c
rN)rrrrr2r,rLrXrrrrrs"+;
, D6prrctsDddlm}|jj	D]!\}}t|tk(s|t|<#tj||S)Nr)python_symbols)_type_reprspygramrZ__dict__itemsrCint
setdefault)type_numrZnamevals    rrQrQsT*(00668	9ID#CyCDS!1	9!!(H55r)
__author__r#rcollectionsrr
r	btm_utilsrobjectrrr[rQrrr<module>rhsHG;
#"V}F}@6r