o
    ew                     @   s   d Z ddlZdZdd e D Zdd eD ZedeeD ]Zee d  d9  < ee d  eed  d 7  < qed	d
 eD Zedd
 eD Z	de	e
fddZee
fddZG dd deZdS )z
Part of the astor library for Python AST manipulation.

License: 3-clause BSD

Copyright (c) 2015 Patrick Maupin

This module provides data and functions for mapping
AST nodes to symbols and precedences.

    Na   
    GeneratorExp                1

          Assign                1
       AnnAssign                1
       AugAssign                0
            Expr                0
           Yield                1
       YieldFrom                0
              If                1
             For                0
        AsyncFor                0
           While                0
          Return                1

           Slice                1
       Subscript                0
           Index                1
        ExtSlice                1
    comprehension_target        1
           Tuple                0
  FormattedValue                0

           Comma                1
       NamedExpr                1
          Assert                0
           Raise                0
    call_one_arg                1

          Lambda                1
           IfExp                0

   comprehension                1
              Or   or           1
             And   and          1
             Not   not          1

              Eq   ==           1
              Gt   >            0
             GtE   >=           0
              In   in           0
              Is   is           0
           NotEq   !=           0
              Lt   <            0
             LtE   <=           0
           NotIn   not in       0
           IsNot   is not       0

           BitOr   |            1
          BitXor   ^            1
          BitAnd   &            1
          LShift   <<           1
          RShift   >>           0
             Add   +            1
             Sub   -            0
            Mult   *            1
             Div   /            0
             Mod   %            0
        FloorDiv   //           0
         MatMult   @            0
          PowRHS                1
          Invert   ~            1
            UAdd   +            0
            USub   -            0
             Pow   **           1
           Await                1
             Num                1
        Constant                1
c                 C   s   g | ]}|  qS  )split.0xr   r   =D:\Projects\ConvertPro\env\Lib\site-packages\astor/op_util.py
<listcomp>V   s    r   c                 C   s4   g | ]}|r|d  d |dd t|d gqS )r       )joinintr   r   r   r   r   W   s   4 r
      c                 c   s&    | ]\}}}t t|d |fV  qd S Ngetattrastr   r   yzr   r   r   	<genexpr>\      $ r   c                 c   s&    | ]\}}}t t|d |fV  qd S r   r   r   r   r   r   r   ]   r   z%sc                 C   s   ||||   S )zFGiven an AST node object, returns a string containing the symbol.
    r   )objfmtsymbol_datatyper   r   r   get_op_symbol`   s   r   c                 C   s   |||  S )z6Given an AST node object, returns the precedence.
    r   )r   precedence_datar   r   r   r   get_op_precedencef   s   r   c                   @   s8   e Zd Ze dd eD  edd eD d ZdS )
Precedencec                 c   s    | ]
\}}}||fV  qd S r   r   r   r   r   r   r   m   s    zPrecedence.<genexpr>c                 c   s    | ]\}}}|V  qd S r   r   r   r   r   r   r   n   s    r   N)__name__
__module____qualname__varsupdateop_datamaxZhighestr   r   r   r   r   l   s    r   )__doc__r   r%   
splitlinesrangelenindexdictr   r   r   r   r   objectr   r   r   r   r   <module>   s   F"