PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB` fdZdZddlZddlmZmZmZmZmZm Z ddl m Z ddl m Z Gdd e Zd ZGd d 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 N)driverliteralstokentokenizeparsegrammar)pytree)pygramceZdZdS)PatternSyntaxErrorN)__name__ __module__ __qualname__6/opt/alt/python311/lib64/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*eUC t  OOOrc2eZdZddZd dZdZddZdZdS) PatternCompilerNcL|#tj|_tj|_n7t j||_tj|j|_tj|_ tj |_ t j |jt|_dS)z^Initializer. Takes an optional alternative filename for the pattern grammar. N)convert)r pattern_grammarr pattern_symbolssymsr load_grammarSymbolspython_grammar pygrammarpython_symbolspysymsDriverpattern_convert)self grammar_files r__init__zPatternCompiler.__init__(su  !1DL.DII!.|<z0PatternCompiler.compile_node..Os'GGGbD%%b))GGGrNrcg|]}|gSrr)rFas rrHz0PatternCompiler.compile_node..Rs':':':':':':rminmaxc:g|]}|SrrDrEs rrHz0PatternCompiler.compile_node..Vs'CCCrT&&r**CCCr)rPrR)r r,Matcherchildren Alternativeslenr WildcardPatternoptimize Alternative NegatedUnit compile_basicNegatedPatternUnitrEQUALr!RepeaterSTARHUGEPLUSLBRACERBRACEget_intname) r5nodealtspunitspatternrfnodesrepeatrTchildrMrNs ` rr=zPatternCompiler.compile_nodeCs] 9 ) ) )=#D 9 . . .GGGGDM##A#4FGGGD4yyA~~Aw&':':T':':':qIIIA::<<  9 - - -CCCCT]CCCE5zzQQx&wA1===A::<<  9 - - -((qrr):;;G%g..A::<< yDIN****  u::??uQx} ;;8>D!""IE u::??uRy~1CCC2YF#2#JE$$UF33  ;$)"44444HQKEzUZ''kuz))ku|++|(EL8888H //// LL!555cx==A%%,,x{33Cuaxx3!88!**,, 07)#3OOO  GL!!!rct|dksJ|d}|jtjkrHt t j|j}tj t||S|jtj kr|j}| rS|tvrtd|z|ddrtdtj t|S|dkrd}n?|ds*t!|j|d}|td|z|ddr(||djdg}nd}tj||S|jdkr||dS|jd kr8|J||d}tj|ggdd SJ|) NrrzInvalid token: %rzCan't have details for tokenany_zInvalid symbol: %r([rL)rVr rSTRINGr<r evalStringr!r LeafPattern_type_of_literalNAMEisupper TOKEN_MAPr startswithgetattrr2r=rT NodePatternrW)r5rlrmrgr!r content subpatterns rr[zPatternCompiler.compile_basics5zzQQx 9 $ $+DJ7788E%&6u&=&=uEE E Y%* $ $JE}} 9 )),-@5-HIII9M,-KLLL))E*:;;;E>>DD))#..O"4;t<>>**5844J)J<.aQGGG GdurcX|jtjksJt|jSN)r rNUMBERintr!)r5rgs rrezPatternCompiler.get_ints%yEL((((4:rr)FF)rrrr7rAr=r[rerrrr'r'&sw K K K K + + + +E"E"E"N!!!!Frr')rxrtrTOKENc|dr tjS|tjvrtj|SdS)Nr)isalpharrxr opmap)r!s rrwrwsA 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)rks rrArAs    , ,W 5 55r)__doc__ __author__rpgen2rrrrrr r r Exceptionr r%objectr'rxrtrrzrwr4rArrrrs=3  EDDDDDDDDDDDDDDD        IIIIIfIIIZZ||   99966666r