£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

f  c               @   s  d  Z  d Z d d l Z d d l Z d d l m Z m Z m Z m Z m	 Z	 m
 Z
 d d l m Z d d l m Z e j j e j j e  d  Z Gd	 d
   d
 e  Z d d   Z Gd d   d e  Z i e j d 6e j d 6e j d 6d d 6Z d d   Z d d   Z d d   Z d S(   u   Pattern compiler.

The grammer is taken from PatternGrammar.txt.

The compiler compiles a pattern to a pytree.*Pattern instance.
u#   Guido van Rossum <guido@python.org>i    Ni   (   u   driveru   literalsu   tokenu   tokenizeu   parseu   grammar(   u   pytree(   u   pygramu   PatternGrammar.txtc             B   s   |  Ee  Z d  Z d S(   u   PatternSyntaxErrorN(   u   __name__u
   __module__u   __qualname__(   u
   __locals__(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   PatternSyntaxError   s   u   PatternSyntaxErrorc       	      c   sw   t  t j t j t j f  } t j t j |   j	  } x7 | D]/ } | \ } } } } } | | k r@ | Vq@ q@ Wd S(   u6   Tokenizes a string suppressing significant whitespace.N(
   u   setu   tokenu   NEWLINEu   INDENTu   DEDENTu   tokenizeu   generate_tokensu   iou   StringIOu   readline(	   u   inputu   skipu   tokensu	   quintupleu   typeu   valueu   startu   endu	   line_text(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   tokenize_wrapper!   s    u   tokenize_wrapperc             B   s\   |  Ee  Z d  Z e d d  Z d d d d  Z d d   Z d d d  Z	 d	 d
   Z
 d S(   u   PatternCompilerc             C   s^   t  j |  |  _ t j |  j  |  _ t j |  _ t j |  _	 t  j
 |  j d t |  _  d S(   u^   Initializer.

        Takes an optional alternative filename for the pattern grammar.
        u   convertN(   u   driveru   load_grammaru   grammaru   pygramu   Symbolsu   symsu   python_grammaru	   pygrammaru   python_symbolsu   pysymsu   Driveru   pattern_convert(   u   selfu   grammar_file(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   __init__-   s
    u   PatternCompiler.__init__c             C   s   t  |  } y |  j j | d | } Wn: t j k
 rd } z t t |    WYd d } ~ Xn X| r~ |  j |  | f S|  j |  Sd S(   u=   Compiles a pattern string to a nested pytree.*Pattern object.u   debugN(   u   tokenize_wrapperu   driveru   parse_tokensu   parseu
   ParseErroru   PatternSyntaxErroru   stru   compile_node(   u   selfu   inputu   debugu	   with_treeu   tokensu   rootu   e(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   compile_pattern8   s    %u   PatternCompiler.compile_patternc          	      sK  | j    j j k r% | j d } n  | j    j j k r   f d d   | j d d d  D } t |  d k r} | d St j d d   | D d d d	 d } | j   S| j    j j	 k r"  f d
 d   | j D } t |  d k r | d St j | g d d d	 d } | j   S| j    j j
 k rl  j | j d d   } t j |  } | j   Sd } | j } t |  d k r| d j  t j k r| d j } | d d  } n  d } t |  d k r| d j    j j k r| d } | d d  } n    j | |  } | d k	 r)| j }	 |	 d }
 |
 j  t j k rfd } t j } nx |
 j  t j k rd } t j } nT |
 j  t j k r  j |	 d  } } t |	  d k r  j |	 d  } qn  | d k s| d k r)| j   } t j | g g d | d	 | } q)n  | d k	 rA| | _ n  | j   S(   uX   Compiles a node, recursively.

        This is one big switch on the node type.
        i    c                s   g  |  ] }   j  |   q S(    (   u   compile_node(   u   .0u   ch(   u   self(    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu
   <listcomp>P   s   	 u0   PatternCompiler.compile_node.<locals>.<listcomp>Ni   i   c             S   s   g  |  ] } | g  q S(    (    (   u   .0u   a(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu
   <listcomp>S   s   	 u   minu   maxc                s   g  |  ] }   j  |   q S(    (   u   compile_node(   u   .0u   ch(   u   self(    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu
   <listcomp>W   s   	 i   i   iii(   u   typeu   symsu   Matcheru   childrenu   Alternativesu   lenu   pytreeu   WildcardPatternu   optimizeu   Alternativeu   NegatedUnitu   compile_basicu   NegatedPatternu   Noneu   tokenu   EQUALu   valueu   Repeateru   STARu   HUGEu   PLUSu   LBRACEu   get_intu   name(   u   selfu   nodeu   altsu   pu   unitsu   patternu   nameu   nodesu   repeatu   childrenu   childu   minu   max(    (   u   selfu4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   compile_nodeD   s^    )(


	(+
	
'u   PatternCompiler.compile_nodec             C   s  | d } | j  t j k rJ t t j | j   } t j t	 |  |  S| j  t j
 k rd| j } | j   r | t k r t d |   n  | d d   r t d   n  t j t |  S| d k r d  } nF | j d  st |  j | d   } | d  k rt d |   qn  | d d   rK|  j | d j d  g } n d  } t j | |  Sna | j d k r|  j | d  S| j d	 k r|  j | d  } t j | g g d
 d d d Sd  S(   Ni    u   Invalid token: %ri   u   Can't have details for tokenu   anyu   _u   Invalid symbol: %ru   (u   [u   minu   max(   u   typeu   tokenu   STRINGu   stru   literalsu
   evalStringu   valueu   pytreeu   LeafPatternu   _type_of_literalu   NAMEu   isupperu	   TOKEN_MAPu   PatternSyntaxErroru   Noneu
   startswithu   getattru   pysymsu   compile_nodeu   childrenu   NodePatternu   WildcardPattern(   u   selfu   nodesu   repeatu   nodeu   valueu   typeu   contentu
   subpattern(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   compile_basic   s8    
		 u   PatternCompiler.compile_basicc             C   s   t  | j  S(   N(   u   intu   value(   u   selfu   node(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   get_int   s    u   PatternCompiler.get_intNF(   u   __name__u
   __module__u   __qualname__u   _PATTERN_GRAMMAR_FILEu   __init__u   Falseu   compile_patternu   compile_nodeu   Noneu   compile_basicu   get_int(   u
   __locals__(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   PatternCompiler+   s
   G#u   PatternCompileru   NAMEu   STRINGu   NUMBERu   TOKENc             C   s9   |  d j    r t j S|  t j k r1 t j |  Sd  Sd  S(   Ni    (   u   isalphau   tokenu   NAMEu   grammaru   opmapu   None(   u   value(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   _type_of_literal   s
    u   _type_of_literalc             C   sW   | \ } } } } | s' | |  j  k r= t j | | d | St j | | d | Sd S(   u9   Converts raw node information to a Node or Leaf instance.u   contextN(   u   number2symbolu   pytreeu   Nodeu   Leaf(   u   grammaru   raw_node_infou   typeu   valueu   contextu   children(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   pattern_convert   s    u   pattern_convertc             C   s   t    j |   S(   N(   u   PatternCompileru   compile_pattern(   u   pattern(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   compile_pattern   s    u   compile_pattern(    u   __doc__u
   __author__u   iou   osu   pgen2u   driveru   literalsu   tokenu   tokenizeu   parseu   grammaru    u   pytreeu   pygramu   pathu   joinu   dirnameu   __file__u   _PATTERN_GRAMMAR_FILEu	   Exceptionu   PatternSyntaxErroru   tokenize_wrapperu   objectu   PatternCompileru   NAMEu   STRINGu   NUMBERu   Noneu	   TOKEN_MAPu   _type_of_literalu   pattern_convertu   compile_pattern(    (    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   <module>	   s$   .	



		