<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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          	      sÁ  | 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 ƒ  S| j  ˆ  j j k s‡t ‚ d } | 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  ˆ  j j k set ‚ | j }	 |	 d }
 |
 j  t j k rœd } t j } n¸ |
 j  t j k rÀd } t j } n” |
 j  t j k rH|	 d j  t j k sît ‚ t |	 ƒ d k st ‚ ˆ  j |	 d ƒ } } t |	 ƒ d k rTˆ  j |	 d ƒ } qTn d sTt ‚ | d k sl| d k rŸ| j ƒ  } t j | g g d | d	 | ƒ} qŸn  | d k	 r·| | _ 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   iÿÿÿÿiÿÿÿÿiÿÿÿÿiÿÿÿÿ(   i   i   F(   u   typeu   symsu   Matcheru   childrenu   Alternativesu   lenu   pytreeu   WildcardPatternu   optimizeu   Alternativeu   NegatedUnitu   compile_basicu   NegatedPatternu   Unitu   AssertionErroru   Noneu   tokenu   EQUALu   valueu   Repeateru   STARu   HUGEu   PLUSu   LBRACEu   RBRACEu   get_intu   Falseu   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   sh    )(


	(+
	
'u   PatternCompiler.compile_nodec             C   s  t  | ƒ d k s t ‚ | d } | j t j k rb t t j | j ƒ ƒ } t	 j
 t | ƒ | ƒ S| j t j k r|| 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 ƒ s3t |  j | d  ƒ } | d  k r3t d | ƒ ‚ q3n  | d d  … rc|  j | d j d ƒ g } n d  } t	 j | | ƒ Sns | j d k rœ|  j | d ƒ S| j d	 k rï| d  k s½t ‚ |  j | d ƒ } t	 j | g g d
 d d d ƒSd st | ƒ ‚ d  S(   Ni   i    u   Invalid token: %ru   Can't have details for tokenu   anyu   _u   Invalid symbol: %ru   (u   [u   minu   maxF(   u   lenu   AssertionErroru   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   WildcardPatternu   False(   u   selfu   nodesu   repeatu   nodeu   valueu   typeu   contentu
   subpattern(    (    u4   /opt/alt/python33/lib64/python3.3/lib2to3/patcomp.pyu   compile_basic‹   s<    
		 u   PatternCompiler.compile_basicc             C   s%   | j  t j k s t ‚ t | j ƒ S(   N(   u   typeu   tokenu   NUMBERu   AssertionErroru   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$   .	
‰


		