File: //opt/saltstack/salt/lib/python3.10/site-packages/packaging/__pycache__/_parser.cpython-310.pyc
o
�N�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�Zdedefdd�Zdedefdd�Zdedeeeee f fdd�Zdedededefdd�Zdedee fdd�Zdedee fdd �Zdedefd!d"�Zdedefd#d$�Zdedefd%d&�Zdedefd'd(�Z dedefd)d*�Z!dedefd+d,�Z"dedefd-d.�Z#d/ede
fd0d1�Z$d2edefd3d4�Z%dedefd5d6�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 @ sH e Zd Zdeddfdd�Zdefdd�Zdefdd �Zdefd
d�ZdS )�Node�value�returnNc C s
|| _ d S �N�r )�selfr � r �E/opt/saltstack/salt/lib/python3.10/site-packages/packaging/_parser.py�__init__ s
z
Node.__init__c C s | j S r 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 �r )�NotImplementedErrorr r r r � serialize s zNode.serialize)r �
__module__�__qualname__�strr r r r r r r r r
s
r c @ � e Zd Zdefdd�ZdS )�Variabler
c C � t | �S r �r r r r r r � zVariable.serializeN�r r r r r r r r r r � r c @ r )�Valuer
c C s d| � d�S )N�"r r r r r r ! s zValue.serializeNr$ r r r r r&