g dZddlZddlmZmZmZmZmZmZddl m Z ddl m Z Gdde Z d ZGd d eZej"ej$ej&dd Zd ZdZdZy)z#Guido van Rossum N)driverliteralstokentokenizeparsegrammar)pytree)pygramc eZdZy)PatternSyntaxErrorN)__name__ __module__ __qualname__6/opt/alt/python312/lib64/python3.12/lib2to3/patcomp.pyr r srr c#K tjtjtjh}t j t j|j}|D]}|\}}}}}||vs|ywN) rNEWLINEINDENTDEDENTrgenerate_tokensioStringIOreadline) inputskiptokens quintupletypevaluestartend line_texts rtokenize_wrapperr&sg@ MM5<< 6D  % %bkk%&8&A&A BF -6*eUC t Os A4A>7A>c0eZdZddZddZdZddZdZy) PatternCompilerNc |+tj|_tj|_n>t j ||_tj|j|_tj|_ tj|_ t j|jt|_y)N)convert)r pattern_grammarr pattern_symbolssymsr load_grammarSymbolspython_grammar pygrammarpython_symbolspysymsDriverpattern_convert)self grammar_files r__init__zPatternCompiler.__init__(s   !11DL..DI!..|$A99A>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|}|jSd}|j} t | dk\r4| djtjk(r| dj }| dd} d} t | dk\r0| dj|jj"k(r | d} | dd} |j| | }| | j} | d} | jtj$k(rd} tj&}n| jtj(k(rd} tj&}nV| jtj*k(r9|j-| dx} }t | dk(r|j-| d}  dk7sdk7r*|j}tj|gg| }|||_|jScc}wcc}wcc}w)Nrrminmax)r!r-Matcherchildren Alternativesr>lenr WildcardPatternoptimize Alternative NegatedUnit compile_basicNegatedPatternrEQUALr"RepeaterSTARHUGEPLUSLBRACEget_intname)r6nodechaltsapunitspatternr\nodesrepeatrLchildrFrGs rr>zPatternCompiler.compile_nodeCs 99 )) )==#D 99 .. .48MM#A#4FG4FbD%%b)4FDG4yA~Aw&&T':TT':qIA::<  99 -- -59]]C]rT&&r*]EC5zQQx&&wA1=A::<  99 -- -((qr):;G%%g.A::<   u:?uQx}} ;8>>D!"IE u:?uRy~~1C1CC2YF#2JE$$UF3  HQKEzzUZZ'kkuzz)kku||+!LL!55cx=A%,,x{3Cax3!8!**, 007)#3O  GL!!sH(;Ds+M4+ M9M>c|d}|jtjk(rGtt 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|j dk(r|j#|dS|j d k(r.|j#|d}tj(|ggdd Sy) NrzInvalid token: %rrzCan't have details for tokenany_zInvalid symbol: %r([rE)r!rSTRINGr=r evalStringr"r LeafPattern_type_of_literalNAMEisupper TOKEN_MAPr startswithgetattrr3r>rL NodePatternrO)r6rdrer]r"r!content subpatterns rrSzPatternCompiler.compile_basicsQx 99 $++DJJ78E%%&6u&=uE E YY%** $JJE}} ),-@5-HII9,-KLL)))E*:;;E>D))#."4;;trSr[rrrr(r(&s K +E"N!Frr()rprlNUMBERTOKENc|djrtjS|tjvrtj|Sy)Nr)isalpharrpr opmap)r"s rroros: Qxzz '-- }}U##rc |\}}}}|s||jvrtj|||Stj|||S)N)context) number2symbolr NodeLeaf)r raw_node_infor!r"rrLs rr5r5sIC%2"D%(47000{{47;;{{488rc4tj|Sr)r(rB)rcs rrBrBs   , ,W 55r) __author__rpgen2rrrrrr r r Exceptionr r&objectr(rprlrzrrror5rBrrrrsw3  ED  IfIZZZ||||  96r