U if 4 @ s d dl Z d dlZd dlZd dlmZ d dlmZ ddddgZG dd dZdddZ dd Z ed ejj Zdd Zdd Zedkreejdkree n,ejd ZeeZeeee W 5 Q R X dS ) N)deque)StringIOshlexsplitquotejoinc @ sn e Zd ZdddZedd Zdd Zdd d Zdd Zd d Z dd Z dd ZdddZdd Z dd ZdS )r NFc C s t |trt|}|d k r(|| _|| _ntj| _d | _|| _|rHd | _nd| _d| _ d| _ | jrn| j d7 _ d| _d| _d| _ d| _d | _d | _t | _d| _d| _d| _t | _d | _|sd}n|d krd}|| _|rt | _| j d7 _ | j t|}| j || _ d S )N #Z?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u| ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞz Fz'"\" r Tz();<>|&z~-./*?=) isinstancestrr instreaminfilesysstdinposixeof commenters wordchars whitespacewhitespace_splitquotesescape escapedquotesstater pushbacklinenodebugtoken filestacksource_punctuation_chars_pushback_chars maketransdictfromkeys translate)selfr r r punctuation_charst r- */opt/alt/python38/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 printreprr appendleft)r* tokr- r- r. push_tokenH s zshlex.push_tokenc C sp t |trt|}| 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* newstreamnewfiler- 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 krtdt| ntd |S )Nr zshlex: popping token z shlex: token=zshlex: token=EOF) r r; r r2 r3 read_tokenr# sourcehookr9 get_tokenr r" r<