g& ddlmZddlmZmZddlmZmZeZeZ ejZ eZ dZ dZdZGddeZd d Zd Zd Zy ))pytree)grammartoken)pattern_symbolspython_symbolsc.eZdZ ddZdZdZdZdZy)MinNodeNcf||_||_g|_d|_d|_g|_g|_y)NF)typenamechildrenleafparent alternativesgroup)selfrrs 8/opt/alt/python312/lib64/python3.12/lib2to3/btm_utils.py__init__zMinNode.__init__s4      c^t|jdzt|jzS)N )strrr)rs r__repr__zMinNode.__repr__s"499~#c$))n44rcF |}g}|r|jtk(r|jj|t |jt |j k(r*t |jg}g|_|j}|j}d} |S|jtk(r|jj|t |jt |j k(r*t|j}g|_ |j}|j}d} |S|jtjk(r(|jr|j|jn|j|j|j}|r|SN)rTYPE_ALTERNATIVESrappendlenrtupler TYPE_GROUPrget_characteristic_subpattern token_labelsNAMEr)rnodesubps r leaf_to_rootzMinNode.leaf_to_root!sU 7yy--!!((.t(()S-??!$"3"345D(*D%;;D;;DD, )yyJ& !!$'tzz?c$--&888DD!#DJ;;D;;DD yyL---$)) DII& DII&;;DCD rc\ |jD]}|j}|s|cSyr)leavesr))rlr(s rget_linear_subpatternzMinNode.get_linear_subpatternKs- A>>#D rc#K |jD]}|jEd{|js|yy7wr)rr+)rchilds rr+zMinNode.leaves`s<7]]E||~ % %#}}J &s$A?A)NN)__name__ __module__ __qualname__rrr)r-r+rrr r s!5(T*rr Nc d}|jtjk(r|jd}|jtjk(rt |jdkrt |jd|}ntt}|jD]K}|jj|dzr"t ||}|1|jj|Mna|jtjk(rt |jdkDr\tt}|jD],}t ||}|s|jj|.|jsd}nt |jd|}n|jtjk(rt|jdtj r5|jdj"dk(rt |jd|St|jdtj r|jdj"dk(sMt |jdkDr6t%|jddr|jdj"dk(ryd}d}d}d }d} d } |jD]}|jtj&k(rd }|}nA|jtj(k(rd}|} n|jtjk(r|}t%|dss|j"d k(sd} | r:|jd} t%| dr.| j"dk(r|jd } n|jd} | jt*j,k(r| j"d k(rtt.}nt%t*| j"r%tt1t*| j"}ntt1t2| j"}n| jt*j4k(rS| j"j7d } | t8vrtt8| }nEtt*j,| }n)| jtjk(r t ||}|rB| jdj"dk(rd}n#| jdj"dk(rnt:|r@|>|jddD],}t ||}||jj|.|r||_|S)N)rr([valueTF=any')rr*+r)rsymsMatcherr Alternativesr! reduce_treer rindexr Alternativer#Unit isinstancerLeafr9hasattrDetailsRepeaterr%r&TYPE_ANYgetattrpysymsSTRINGstriptokensNotImplementedErrorr) r'rnew_noder/reducedr details_nodealternatives_node has_repeater repeater_nodehas_variable_name name_leafrs rrCrCgsNH yyDLL }}Q yyD%%% t}}  ""4==#3V>\.. .%'"1<9&GL)//,RSH&GFIOO,LMH ^^|22 2??((-Dv~"t 5" (9(9E ^^t00 0"#4f=H %%a(..#5''*00C7*) H0%..q4%eX6&%%,,W5 5   Orc t|ts|St|dk(r|dSg}g}gdg}d|D]~}tt |dstt |fdr|j |Dtt |fdr|j |n|j ||r|}n |r|}n|r|}t |tS) Nrr5)inforifnotNonez[]().,:c$t|tuSr)rr)xs rz/get_characteristic_subpattern..s d1gnrc0t|txr|vSrrGr)rb common_charss rrcz/get_characteristic_subpattern..sjC&8&NQ,=N&Nrc0t|txr|vSrre)rb common_namess rrcz/get_characteristic_subpattern..s 1c(:(PqL?P(Pr)key)rGlistr!r<rec_testr max) subpatternssubpatterns_with_namessubpatterns_with_common_namessubpatterns_with_common_chars subpatternrfrhs @@rr$r$s k4 ( ;1~ $&!6L$&!L! x $<= >8JNPQ-44Z@XjPRS-44Z@'--j9", &3 &3 { $$rc#K |D]7}t|ttfrt||Ed{.||9y7wr)rGrjr"rk)sequence test_funcrbs rrkrks@  a$ '9- - -A,   -s,AAAr)rpgen2rrpygramrrr@rNopmaprQr%rLrr#objectr rCr$rkr3rrrzsZ2!3     UfUnBJ#%Jr