U e5d 4 ã @ sÎ d dl Z d dlZd dlZd dlmZ d dlmZ ddddgZG dd„ dƒZddd„Z dd„ Z e d ej¡j Zdd„ Zdd„ ZedkrÊeejƒdkržeeƒ ƒ n,ejd Zeeƒ�Zeeeeƒƒ W 5 Q R X dS )é N)Údeque)ÚStringIOÚshlexÚsplitÚquoteÚjoinc @ sn e Zd Zddd„Zedd„ ƒZdd„ Zdd d „Zdd„ Zd d„ Z dd„ Z dd„ Zddd„Zdd„ Z dd„ ZdS )r NFc C s t |tƒrt|ƒ}|d k r(|| _|| _ntj| _d | _|| _|rHd | _nd| _d| _ d| _ | jrn| j d7 _ d| _d| _d| _ d| _d | _d | _tƒ | _d| _d| _d| _tƒ | _d | _|sÄd}n|d krÐd}|| _|�rtƒ | _| j d7 _ | j t |¡¡}| j |¡| _ d S )NÚ ú#Z?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Út© r- ú/usr/lib64/python3.8/shlex.pyÚ__init__ sJ zshlex.__init__c C s | j S ©N)r$ ©r* r- r- r. r+ D s zshlex.punctuation_charsc C s* | j dkrtdt|ƒ ƒ | j |¡ d S )Nr zshlex: pushing token )r ÚprintÚreprr Ú appendleft)r* Útokr- r- r. Ú push_tokenH s zshlex.push_tokenc C sp t |tƒrt|ƒ}| j | j| j| jf¡ || _|| _d| _| jrl|d k r\t d| jf ƒ nt d| jf ƒ d S )Nr zshlex: pushing to file %szshlex: pushing to stream %s) r r r r" r4 r r r r r2 )r* Ú newstreamÚnewfiler- r- r. Úpush_sourceN s zshlex.push_sourcec C sD | j ¡ | j ¡ \| _| _ | _| jr:td| j | jf ƒ d| _d S )Nzshlex: popping to %s, line %dr ) r Úcloser" Úpopleftr r r r2 r r1 r- r- r. Ú pop_source\ s ÿzshlex.pop_sourcec C sÔ | j r.| j ¡ }| jdkr*tdt|ƒ ƒ |S | ¡ }| jd k rz|| jkrz| | ¡ ¡}|rp|\}}| ||¡ | ¡ }q@|| j kr¢| js�| j S | ¡ | ¡ }qz| jdkrÐ|| j krÈtdt|ƒ ƒ ntdƒ |S )Nr zshlex: popping token z shlex: token=zshlex: token=EOF) r r; r r2 r3 Ú read_tokenr# Ú sourcehookr9 Ú get_tokenr r" r<