File: //lib/python3.12/__pycache__/shlex.cpython-312.pyc
�
    )!�h)4  �                   �  � d Z ddlZddlZddlZddlmZ ddlmZ g d�Z G d� d�      Z	dd�Z
d	� Z ej                  d
ej                  �      j                  Zd� Zd� Zed
k(  rS eej(                  �      dk(  r e e	�       �       yej(                  d   Z ee�      5 Z e e	ee�      �       ddd�       yy# 1 sw Y   yxY w)�8A lexical analyzer class for simple shell-like syntaxes.�    N)�deque)�StringIO)�shlex�split�quote�joinc                   �f   � e Zd ZdZ	 	 dd�Zed� �       Zd� Zdd�Zd� Z	d� Z
d	� Zd
� Zdd�Z
d� Zd
� Zy)r   r   Nc                 �  � t        |t        �      rt        |�      }|�|| _        || _        nt
        j                  | _        d | _        || _        |rd | _        nd| _        d| _	        d| _
        | j                  r| xj                  dz
  c_
        d| _        d| _        d| _
        d| _        d	| _        d
| _        t#        �       | _        d| _        d| _        d| _        t#        �       | _        d | _        |sd}n|d
u rd}|| _        |rst#        �       | _        | xj                  dz
  c_
        | j                  j5                  t6        j9                  |�      �      }| j                  j;                  |�      | _
        y y )N� �#�?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|   ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz 	
Fz'"�\�"� �   r   Tz();<>|&z~-./*?=)�
isinstance�strr   �instream�infile�sys�stdin�posix�eof�
commenters�	wordchars�
whitespace�whitespace_split�quotes�escape�
escapedquotes�stater   �pushback�lineno�debug�token�	filestack�source�_punctuation_chars�_pushback_chars�	maketrans�dict�fromkeys�	translate)�selfr   r   r   �punctuation_chars�ts         �/usr/lib/python3.12/shlex.py�__init__zshlex.__init__   sN  � ��h��$���)�H���$�D�M� �D�K��I�I�D�M��D�K���
���D�H��D�H����B����:�:��N�N�  ^� 
_�N�#��� %��������� �����
����
������
���
�������� � "��
�$�
&� )��"3����#(�7�D� ��N�N�i�'�N����(�(����7H�)I�J�A�!�^�^�5�5�a�8�D�N� �    c                 �   � | j                   S �N)r)   �r/   s    r2   r0   zshlex.punctuation_charsD   s   � ��&�&�&r4   c                 �   � | j                   dk\  rt        dt        |�      z   �       | j                  j	                  |�       y)z:Push a token onto the stack popped by the get_token methodr   zshlex: pushing token N)r%   �print�reprr#   �
appendleft)r/   �toks     r2   �
push_tokenzshlex.push_tokenH   s1   � ��:�:��?��)�D��I�5�6��
�
� � ��%r4   c                 �\  � t        |t        �      rt        |�      }| j                  j	                  | j
                  | j                  | j                  f�       || _        || _        d| _        | j                  r4|�t        d| j
                  ���       yt        d| j                  ���       yy)z9Push an input source onto the lexer's input source stack.r   Nzshlex: pushing to file zshlex: pushing to stream )
r   r   r   r'