File: //lib64/python3.9/lib2to3/__pycache__/fixer_util.cpython-39.opt-1.pyc
a
    �DOgf;  �                   @   s�  d Z ddlmZ ddlmZmZ ddlmZ ddl	m
Z
 dd� Zdd	� Zd
d� Z
dd
� ZdNdd�Zdd� Zdd� Zdd� Ze� e
� fdd�ZdOdd�Zdd� Zdd� ZdPdd �Zd!d"� ZdQd#d$�ZdRd%d&�Zd'd(� Zd)d*� Zd+d,� Zd-d.� Zd/d0� Zh d1�Z d2d3� Z!d4a"d5a#d6a$d7a%d8d9� Z&d:d;� Z'd<d=� Z(d>d?� Z)d@dA� Z*dBdC� Z+dDdE� Z,dFdG� Z-ej.ej/hZ0dSdHdI�Z1ej/ej.ej2hZ3dJdK� Z4dTdLdM�Z5dS )Uz1Utility functions, node construction macros, etc.�   )�token)�Leaf�Node)�python_symbols)�patcompc                 C   s   t tj| ttjd�|g�S )N�=)r   �syms�argumentr   r   �EQUAL)�keyword�value� r
   �*/usr/lib64/python3.9/lib2to3/fixer_util.py�
KeywordArg   s    �r   c                   C   s   t tjd�S )N�()r   r   �LPARr
   r
   r
   r   �LParen   s    r   c                   C   s   t tjd�S )N�))r   r   �RPARr
   r
   r
   r   �RParen   s    r   c                 C   sH   t | t�s| g} t |t�s&d|_|g}ttj| ttjddd�g | �S )zBuild an assignment statement� r   ��prefix)	�
isinstance�listr   r   r   �atomr   r   r
   )�target�sourcer
   r
   r   �Assign   s    
�r   Nc                 C   s   t tj| |d�S )zReturn a NAME leafr   )r   r   �NAME)�namer   r
   r
   r   �Name$   s    r!   c                 C   s   | t tjt� |g�gS )zA node tuple for obj.attr)r   r   �trailer�Dot)�obj�attrr
   r
   r   �Attr(   s    r&