File: //usr/local/lib/python3.7/site-packages/wheel/vendored/packaging/__pycache__/_parser.cpython-37.pyc
B
O��g�( � @ s� d Z ddlZddlmZmZmZmZmZmZ ddl m
Z
mZ G dd� d�ZG dd � d e�Z
G d
d� de�ZG dd
� d
e�Zee
ef Zeeeef ZeZee ZG dd� de�Zeed�dd�Zeed�dd�Zeeeeee f d�dd�Zeeeed�dd�Zeee d�dd�Zeee d�dd�Zeed�dd �Zeed�d!d"�Zeed�d#d$�Zeed�d%d&�Z eed�d'd(�Z!eed�d)d*�Z"eed�d+d,�Z#eed�d-d.�Z$ee
d/�d0d1�Z%eed2�d3d4�Z&eed�d5d6�Z'dS )7z�Handwritten parser of dependency specifiers.
The docstring for each __parse_* function contains ENBF-inspired grammar representing
the implementation.
� N)�Any�List�
NamedTuple�Optional�Tuple�Union� )�
DEFAULT_RULES� Tokenizerc @ sF e Zd Zedd�dd�Zed�dd�Zed�dd �Zed�d
d�ZdS )�NodeN)�value�returnc C s
|| _ d S )N)r )�selfr � r �D/tmp/pip-unpacked-wheel-f1gdtpe6/wheel/vendored/packaging/_parser.py�__init__ s z
Node.__init__)r
c C s | j S )N)r )r r r r �__str__ s zNode.__str__c C s d| j j� d| � d�S )N�<z('z')>)� __class__�__name__)r r r r �__repr__ s z
Node.__repr__c C s t �d S )N)�NotImplementedError)r r r r � serialize s zNode.serialize)r �
__module__�__qualname__�strr r r r r r r r r
s r c @ s e Zd Zed�dd�ZdS )�Variable)r
c C s t | �S )N)r )r r r r r s zVariable.serializeN)r r r r r r r r r r s r c @ s e Zd Zed�dd�ZdS )�Value)r
c C s d| � d�S )N�"r )r r r r r ! s zValue.serializeN)r r r r r r r r r r s r c @ s e Zd Zed�dd�ZdS )�Op)r
c C s t | �S )N)r )r r r r r &