� c��j)4��� ddlZddlZddlZddlmZddlmZgd�ZGd�d�Zdd�Z d�Z ejd ej�jZd �Zd �Zed k(rSeej&�d k(ree��yej&d Zee�5Zeeee��ddd�yy#1swYyxYw)�N)�deque)�StringIO)�shlex�split�quote�joinc�d�eZdZ d d�Zed��Zd�Zdd�Zd�Zd�Z d�Z d �Z dd �Z d �Z d �Zy)rNc���t|t�r t|�}|�||_||_nt j |_d|_||_|rd|_nd|_d|_ d|_ |jr|xjdz c_ d|_ d|_ d|_ d|_d |_d |_t#�|_d |_d |_d|_t#�|_d|_|sd}n|d urd}||_|rst#�|_|xjdz c_ |jj5t6j9|��}|jj;|�|_ yy)N��#�?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz Fz'"�\�"� �rTz();<>|&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)�selfrrr�punctuation_chars�ts �/usr/lib64/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��|jS�N)r(�r.s r1r/zshlex.punctuation_charsDs���&�&�&r3c�� |jdk\rtdt|�z�|jj |�y)Nrzshlex: pushing token )r$�print�reprr"� appendleft)r.�toks r1� push_tokenzshlex.push_tokenHs4��D� �:�:��?� �)�D��I�5� 6� � � � � ��%r3c�^� t|t�r t|�}|jj |j |j |jf�||_||_d|_|jr4|�td|j ���ytd|j ���yy)Nrzshlex: pushing to file zshlex: pushing to stream ) rrrr&r:rrr#r$r8)r.� newstream�newfiles r1� push_sourcezshlex.push_sourceNs���C� �i�� %� ��+�I� ���!�!�4�;�;�� � �t�{�{�"K�L��� �!�� ��� � �:�:��"��T�[�[�B�C��t�}�}�F�G� r3c�� |jj�|jj�\|_|_|_|j r$td|j|j fz�d|_y)Nzshlex: popping to %s, line %dr) r�closer&�popleftrr#r$r8r!r6s r1� pop_sourcezshlex.pop_source\sb��%� � � ����48�N�N�4J�4J�4L�1���d�m�T�[� �:�:� �1��]�]�D�K�K�0�1� 2��� r3c��� |jrB|jj�}|jdk\rtdt |�z�|S|j �}|j �g||j k(rX|j|j ��}|r|\}}|j||�|j�}||j k(r�X||jk(rH|js |jS|j�|j�}||jk(r�H|jdk\r3||jk7rtdt |�z�|Std�|S)Nrzshlex: popping token z shlex: token=zshlex: token=EOF) r"rCr$r8r9� read_tokenr'� sourcehookr@� get_tokenrr&rD)r.r;�raw�specr?r>s r1rHzshlex.get_tokenes.��L� �=�=��-�-�'�'�)�C��z�z�Q���-��S� �9�:��J��o�o��� �;�;� "�����$����t���'8�9���+/�(�W�i��$�$�Y��8��n�n�&�� ����$��T�X�X�o��>�>��x�x�����!��n�n�&�� �T�X�X�o� �:�:��?��d�h�h���o��S� �1�2�� ��(�)�� r3c� �d}d} |jr'|jr|jj�}n|jj d�}|dk(r|xj dz c_|j dk\rtd|j�d|���|j� d |_ �n<|jdk(�r\|s d|_�n!||jvr8|j d k\r td �|js|jr|r�nݐ� ||jvr1|jj�|xj dz c_�n�|jr||jvr d }||_�nu||jvr||_ d |_�nW||jvr||_ d |_�n9||j vr|js||_ ||_�n|j"r||_ d |_�n�||_ |js|jr|r�nҐ�|j|j vr�d}|s%|j d k\r td�t%d��||jk(r3|js|xj|z c_ d|_�nVd |_�nK|jr;||jvr-|j|j&vr|j}||_�n|xj|z c_ �n�|j|jvr�|s%|j d k\r td�t%d��||j vr3||jk7r$||k7r|xj|jz c_ |xj|z c_ ||_�nO|jdv�r@|s d|_�n7||jvr?|j d k\r td�d|_|js|jr|r�n���||jvra|jj�|xj dz c_|j�r�d|_|js|jr|r�n}��i|jd k(rW||jvr|xj|z c_ �nE||jvr|jj)|�d|_�n|jr||j vr||_n�|jr||jvr d }||_n�||jvs(||j vs|j"r$||jvr|xj|z c_ n�|jr|jj)|�n|j*j-|�|j d k\r td�d|_|js|jr|rn�����|j}d |_ |jr |s|d k(rd}|j dkDr&|rtdt/|�z�|Std�|S)NFrTr� �zshlex: in state z I see character: r �z+shlex: I see whitespace in whitespace state�a�cz shlex: I see EOF in quotes statezNo closing quotationz shlex: I see EOF in escape statezNo escaped character)rOrPz%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)r/r)�popr�readr#r$r8r!r%rrr�readlinerrrr� ValueErrorr �appendr"r:r9)r.�quoted� escapedstate�nextchar�results r1rFzshlex.read_token�s ����� ���%�%�$�*>�*>��/�/�3�3�5���=�=�-�-�a�0���4��� � �q� � ��z�z�Q���$�*�*�BJ�L�M��z�z�!��� �����s�"��!%�D�J������0��z�z�Q���K�L��z�z�d�j�j�V�� �����0��M�M�*�*�,��K�K�1�$�K��Z�Z�H�� � �$;�#&�L�!)�D�J�����/�!)�D�J�!$�D�J���!7�!7�7�!)�D�J�!$�D�J�����,��:�:�%-�� �!)�D�J��*�*�!)�D�J�!$�D�J�!)�D�J��z�z�d�j�j�V�� ����t�{�{�*�����z�z�Q���@�A�$�%;�<�<��t�z�z�)��:�:�� � �h�.� �%(�� ��%(�� ��j�j�X����%<�����+�+�B,�#'�:�:�L�!)�D�J��J�J�(�*�J����t�{�{�*���z�z�Q���@�A�$�%;�<�<�!�D�K�K�/� �D�J�J�.�8�|�3K��J�J�$�*�*�,�J�� � �h�&� �)�� ����z�)��!%�D�J������0��z�z�Q���E�F�!$�D�J��z�z�d�j�j�V�� �����0��M�M�*�*�,��K�K�1�$�K��z�z�%(�� ��:�:�$�*�*��!�$��Z�Z�3�&��4�#9�#9�9�� � �h�.� �#�4�?�?�:� �0�0�7�7��A�%(�� ���Z�Z�H�� � �$;�!)�D�J��Z�Z�H�� � �$;�#&�L�!)�D�J��$�.�.�0�H�� � �4K��/�/�"�$�*@�*@�@��J�J�(�*�J��-�-��,�,�3�3�H�=�� � �0�0��:��z�z�Q���F�G�!$�D�J��z�z�d�j�j�V�� �G�H������ � �:�:�f��2���F� �:�:��>���)�D��L�8�9�� ��,�-�� r3c�:� |ddk(r|dd}t|jt�rftjj |�sGtjj tjj|j�|�}|t|d�fS)Nrrr������r) rrr�os�path�isabsr�dirname�open)r.r?s r1rGzshlex.sourcehooksp��2� �1�:�� ��a��m�G� �d�k�k�3� '���� � �g�0F��g�g�l�l�2�7�7�?�?�4�;�;�#?��I�G���g�s�+�,�,r3c�J� |� |j}|� |j}d||fzS)Nz"%s", line %d: )rr#)r.rr#s r1� error_leaderzshlex.error_leader s1��F� �>��[�[�F� �>��[�[�F�"�f�f�%5�5�5r3c��|Sr5�r6s r1�__iter__zshlex.__iter__(s��� r3c�P�|j�}||jk(rt�|Sr5)rHr� StopIteration)r.r%s r1�__next__zshlex.__next__+s%����� �� �D�H�H� �� �� r3)NNFFr5)NN)�__name__� __module__� __qualname__r2�propertyr/r<r@rDrHrFrGrcrfrirer3r1rrsV��>�9>�#(�-9�^�'��'�&� H���@P�d-�6��r3rc�n� |� td��t||��}d|_|sd|_t |�S)Nzs argument must not be None)rTr )rTrrr�list)�s�commentsr�lexs r1rr1s>��7��y��6�7�7� ��� �C��C�� ���� ��9�r3c�4� djd�|D��S)Nrc3�2K�|]}t|����y�wr5)r)�.0�args r1� zjoin..>s����8�-�3�E�#�J�-�s�)r)� split_commands r1rr<s��=� �8�8�8�-�8� 8�8r3z[^\w@%+=:,./-]c�T� |syt|��|Sd|jdd�zdzS)Nz''�'z'"'"')� _find_unsafe�replace)rps r1rrCs7��;� ���A����� ����3� �*� *�S� 0�0r3c�~�|j�x}r+tdt|�z�|j�x}r�*yy)NzToken: )rHr8r9)�lexer�tts r1� _print_tokensr�Os9�����!� !�"� !� �i�$�r�(�"�#����!� !�"� !r3�__main__r)FT)r]�rer� collectionsr�ior�__all__rrr�compile�ASCII�searchr{rr�rj�len�argv�fnra�frer3r1�r�s���>� � � ��� -��\�\�|�9� �r�z�z�+�R�X�X�6�=�=� � 1�$� �z�� �3�8�8�}����e�g�� �X�X�a�[�� �"�X�� �%��2�,� '��X� � �X�s �B5�5B>