gdZdZddlZddlmZmZmZmZmZm 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__6/opt/alt/python312/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