HEX
Server: Apache
System: Linux br34.hostgator.com.br 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64
User: chiko513 (1020)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //usr/libexec/oracle-cloud-agent/plugins/osms/shlex.pyc
a

���d�4�@s�dZddlZddlZddlZddlmZddlmZgd�ZGdd�d�Z	dd
d�Z
dd
�Ze�dej
�jZdd�Zdd�Zedkr�eej�dkr�ee	��n@ejdZee��Zee	ee��Wd�n1s�0YdS)�8A lexical analyzer class for simple shell-like syntaxes.�N)�deque)�StringIO)�shlex�split�quote�joinc@sreZdZdZddd�Zedd��Zdd	�Zdd
d�Zdd
�Z	dd�Z
dd�Zdd�Zddd�Z
dd�Zdd�ZdS)rrNFcCst|t�rt|�}|dur(||_||_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
ur�d}||_|�rt�|_|j
d7_
|j
�t�|��}|j
�|�|_
dS)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�t�r/�/usr/lib64/python3.9/shlex.py�__init__sJ
zshlex.__init__cCs|jS�N)r&�r,r/r/r0r-Dszshlex.punctuation_charscCs*|jdkrtdt|��|j�|�dS)z:Push a token onto the stack popped by the get_token methodrzshlex: pushing token N)r"�print�reprr �
appendleft)r,�tokr/r/r0�
push_tokenHs
zshlex.push_tokencCspt|t�rt|�}|j�|j|j|jf�||_||_d|_|jrl|dur\t	d|jf�nt	d|jf�dS)z9Push an input source onto the lexer's input source stack.rNzshlex: pushing to file %szshlex: pushing to stream %s)
rrrr$r6rrr!r"r4)r,�	newstream�newfiler/r/r0�push_sourceNs
zshlex.push_sourcecCsD|j��|j��\|_|_|_|jr:td|j|jf�d|_dS)zPop the input source stack.zshlex: popping to %s, line %drN)	r�closer$�popleftrr!r"r4rr3r/r/r0�
pop_source\s

�zshlex.pop_sourcecCs�|jr.|j��}|jdkr*tdt|��|S|��}|jdurz||jkrz|�|���}|rp|\}}|�||�|�	�}q@||j
kr�|js�|j
S|��|�	�}qz|jdkr�||j
kr�tdt|��ntd�|S)zBGet a token from the input stream (or from stack if it's nonempty)rzshlex: popping token Nz
shlex: token=zshlex: token=EOF)
r r=r"r4r5�
read_tokenr%�
sourcehookr;�	get_tokenrr$r>)r,r7�raw�specr:r9r/r/r0rAes.








zshlex.get_tokencCs�d}d}|jr |jr |j��}n|j�d�}|dkrB|jd7_|jdkr^td|j|f�|jdurtd|_	�q�q|jdk�r�|s�d|_�q��q�||j
vr�|jdkr�td	�|j	s�|jr|r�q�nqn�||jvr�|j�
�|jd7_n�|j�r||jv�rd
}||_n�||jv�r&||_	d
|_nr||jv�r@||_	d|_nX||jv�rb|j�sZ||_	||_n6|j�rx||_	d
|_n ||_	|j	�s�|jr|r�q�nqq|j|jv�rDd}|�s�|jdk�r�td
�td��||jk�r|j�s�|j	|7_	d|_�q�nd
|_n>|j�r4||jv�r4|j|jv�r4|j}||_n|j	|7_	q|j|jv�r�|�st|jdk�rltd�td��||jv�r�||jk�r�||k�r�|j	|j7_	|j	|7_	||_q|jdvr|�s�d|_�q�q||j
v�r|jdk�r�td�d|_|j	�s�|jr|r�q�nqq||jv�rh|j�
�|jd7_|j�r�d|_|j	�s�|jr|r�q�nqq|jdk�r�||jv�r�|j	|7_	n"||j
v�r�|j�|�d|_�q�q|j�r�||jv�r�||_q|j�r�||jv�r�d
}||_q||jv�s||jv�s|j�r,||jv�r,|j	|7_	q|j�rB|j�|�n|j�|�|jdk�rbtd�d|_|j	�s�|jr|r�q�qqq|j	}d|_	|j�r�|�s�|dk�r�d}|jdk�r�|�r�tdt|��ntd�|S)NFrr�
�z&shlex: in state %r I see character: %rr	�z+shlex: I see whitespace in whitespace state�a�cTz shlex: I see EOF in quotes statezNo closing quotationz shlex: I see EOF in escape statezNo escaped character)rGrHz%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"r4rr#rrr�readlinerrrr�
ValueErrorr�appendr r6r5)r,�quoted�escapedstate�nextchar�resultr/r/r0r?�s

�




���

��zshlex.read_tokencCsV|ddkr|dd�}t|jt�rHtj�|�sHtj�tj�|j�|�}|t|d�fS)z(Hook called on a filename to be sourced.rr
r����r)	rrr�os�path�isabsr�dirname�open)r,r:r/r/r0r@s
zshlex.sourcehookcCs(|dur|j}|dur|j}d||fS)z<Emit a C-compiler-like, Emacs-friendly error-message leader.Nz"%s", line %d: )rr!)r,rr!r/r/r0�error_leader s
zshlex.error_leadercCs|Sr2r/r3r/r/r0�__iter__(szshlex.__iter__cCs|��}||jkrt�|Sr2)rAr�
StopIteration)r,r#r/r/r0�__next__+s
zshlex.__next__)NNFF)N)NN)�__name__�
__module__�__qualname__�__doc__r1�propertyr-r8r;r>rAr?r@rYrZr\r/r/r/r0rs �
/

	 	
rFTcCsD|dur ddl}|jdtdd�t||d�}d|_|s<d|_t|�S)	z-Split the string *s* using shell-like syntax.Nrz4Passing None for 's' to shlex.split() is deprecated.rF)�
stacklevel)rTr	)�warnings�warn�DeprecationWarningrrr�list)�s�commentsrrc�lexr/r/r0r1s�rcCsd�dd�|D��S)z3Return a shell-escaped string from *split_command*.rcss|]}t|�VqdSr2)r)�.0�argr/r/r0�	<genexpr>@�zjoin.<locals>.<genexpr>)r)�
split_commandr/r/r0r>srz[^\w@%+=:,./-]cCs,|sdSt|�dur|Sd|�dd�dS)z1Return a shell-escaped version of the string *s*.z''N�'z'"'"')�_find_unsafe�replace)rgr/r/r0rEs
rcCs$|��}|sq tdt|��qdS)NzToken: )rAr4r5)�lexer�ttr/r/r0�
_print_tokensQsrt�__main__r)FT)r`rT�rer�collectionsr�ior�__all__rrr�compile�ASCII�searchrprrtr]�len�argv�fnrX�fr/r/r/r0�<module>s(