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` ThdZdZddlZddlmZmZmZmZmZm Z ddl m Z ddl m Z Gdd e Zd ZGd d 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 N)driverliteralstokentokenizeparsegrammar)pytree)pygramc eZdZy)PatternSyntaxErrorN)__name__ __module__ __qualname__(/usr/lib64/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%sd MM5<< 6D  % %bkk%&8&A&A BF -6*eUC t Os A3A=6A=c0eZdZddZddZdZddZdZy) PatternCompilerNc|+tj|_tj|_n>t j ||_tj|j|_tj|_ tj|_ t j|jt|_y)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__(sz  !11DL..DI!..|>D!"IE u:?uRy~~1C1CC2YF#2JE$$UF3  ;;$))"4"44 44HQKEzzUZZ'kkuzz)kku||+|((ELL888H /// LL!55cx=A%,,x{3Cuax3!8!**, 007)#3O  GL!!sH(;Ds*O1* O6?O;ct|dk\sJ|d}|jtjk(rGt t j |j}tjt||S|jtjk(r|j}|jrB|tvrtd|z|ddr tdtjt|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=rK NodePatternrN)r5rerfr^r!r content subpatterns rrRzPatternCompiler.compile_basics5zQQx 99 $++DJJ78E%%&6u&=uE E YY%** $JJE}} ),-@5-HII9,-KLL)))E*:;;E>D))#."4;;t !>**584J))J<.aQG Gdurcj|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   , ,W 55r)__doc__ __author__rpgen2rrrrrr r r Exceptionr r%objectr'rqrmr{rsrpr4rArrrrsw3  ED  IfIZZZ||||  96r