PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  oY@sdZddlZddlZddlmZmZmZmZmZm Z ddl m Z ddl m Z ej jej jedZGdd d eZd d ZGd d d eZdejdejdejddiZddZddZddZdS)z#Guido van Rossum N)driverliteralstokentokenizeparsegrammar)pytree)pygramzPatternGrammar.txtc@seZdZdS)PatternSyntaxErrorN)__name__ __module__ __qualname__rr&/opt/python35/lib/python3.5/patcomp.pyr s r c csntjtjtjh}tjtj|j}x4|D],}|\}}}}}||kr:|Vq:WdS)N) rNEWLINEINDENTDEDENTrgenerate_tokensioStringIOreadline) inputskiptokensZ quintupletypevaluestartendZ line_textrrrtokenize_wrapper!s   rc@sXeZdZeddZddddZddZdd d Zd d ZdS) PatternCompilercCs^tj||_tj|j|_tj|_tj|_ tj |jdt |_dS)Nconvert) rZ load_grammarrr ZSymbolssymsZpython_grammarZ pygrammarZpython_symbolspysymsZDriverpattern_convert)selfZ grammar_filerrr__init__-s   zPatternCompiler.__init__FcCst|}y|jj|d|}Wn:tjk rd}ztt|WYdd}~XnX|r~|j||fS|j|SdS)Ndebug)rrZ parse_tokensrZ ParseErrorr str compile_node)r%rr'Z with_treerrooterrrcompile_pattern8s %zPatternCompiler.compile_patternc s6|jjjkr"|jd}|jjjkrfdd|jdddD}t|dkrz|dStjdd|Ddddd}|jS|jjj krfd d|jD}t|dkr|dStj|gdddd}|jS|jjj krij |jdd}tj |}|jSd}|j}t|d kr|djt jkr|dj}|dd}d}t|dkr|d jjjkr|d }|dd}j ||}|dk r|j} | d} | jt jkr]d} tj} nu| jt jkrd} tj} nQ| jt jkrj| d} } t| d krj| d } n| dks| dkr|j}tj|ggd| d| }|dk r,||_|jS)Nrcsg|]}j|qSr)r)).0ch)r%rr Ps z0PatternCompiler.compile_node..rcSsg|]}|gqSrr)r-arrrr/Ss minmaxcsg|]}j|qSr)r))r-r.)r%rrr/Ws r6r6)rr"ZMatcherchildrenZ Alternativeslenr WildcardPatternoptimizeZ AlternativeZ NegatedUnit compile_basicZNegatedPatternrEQUALrZRepeaterSTARZHUGEPLUSLBRACEget_intname) r%nodeZaltspZunitspatternrAnodesrepeatr7Zchildr2r3r)r%rr)Ds^ )(    ( +       !  zPatternCompiler.compile_nodeNcCs|d}|jtjkrJttj|j}tjt ||S|jtj krX|j}|j r|t krt d||ddrt dtjt |S|dkrd}n@|jdst|j|d}|dkrt d||ddr?|j|djdg}nd}tj||Sna|jdkrx|j|dS|jd kr|j|d}tj|ggd dd dSdS) NrzInvalid token: %rrzCan't have details for tokenany_zInvalid symbol: %r([r2r3)rrSTRINGr(rZ evalStringrr Z LeafPattern_type_of_literalNAMEisupper TOKEN_MAPr startswithgetattrr#r)r7Z NodePatternr9)r%rErFrBrrZcontent subpatternrrrr;s8         zPatternCompiler.compile_basiccCs t|jS)N)intr)r%rBrrrr@szPatternCompiler.get_int) r r r_PATTERN_GRAMMAR_FILEr&r,r)r;r@rrrrr +s   G#r rMrKNUMBERZTOKENcCs9|djrtjS|tjkr1tj|SdSdS)Nr)isalpharrMrZopmap)rrrrrLs  rLcCsW|\}}}}|s'||jkr=tj||d|Stj||d|SdS)Ncontext)Z number2symbolr ZNodeZLeaf)rZ raw_node_inforrrWr7rrrr$sr$cCstj|S)N)r r,)rDrrrr,sr,) __author__rosZpgen2rrrrrrr r pathjoindirname__file__rT Exceptionr robjectr rMrKrUrOrLr$r,rrrr s"  .