grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|j½4ã@sè ddlZddlZddlZddlmZddlmZgd¢ZGdd„dƒZdd d „Z d d „Z e  d ej ¡j Zdd„Zdd„ZedkrreejƒdkrOeeƒƒdSejdZeeƒ�ZeeeeƒƒWdƒdS1skwYdSdS)éN)Údeque)ÚStringIO)ÚshlexÚsplitÚquoteÚjoinc@steZdZ  ddd„Zedd„ƒZdd„Zdd d „Zd d „Zd d„Z dd„Z dd„Z ddd„Z dd„Z dd„ZdS)rNFcCst|tƒr t|ƒ}|dur||_||_ntj|_d|_||_|r$d|_nd|_d|_ d|_ |jr7|j d7_ d|_ d|_ d|_ d|_d |_d |_tƒ|_d |_d |_d|_tƒ|_d|_|sbd}n|d urhd}||_|rŠtƒ|_|j d7_ |j  t |¡¡}|j  |¡|_ dSdS)NÚú#Z?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-ú,/opt/alt/python310/lib64/python3.10/shlex.pyÚ__init__sL ùzshlex.__init__cCs|jS©N)r$©r*r-r-r.r+Dszshlex.punctuation_charscCs, |jdkrtdt|ƒƒ|j |¡dS)Nr zshlex: pushing token )r ÚprintÚreprrÚ appendleft)r*Útokr-r-r.Ú push_tokenHs zshlex.push_tokencCsx t|tƒr t|ƒ}|j |j|j|jf¡||_||_d|_|jr:|dur0t d|jfƒdSt d|jfƒdSdS)Nr zshlex: pushing to file %szshlex: pushing to stream %s) rrrr"r4rrrr r2)r*Ú newstreamÚnewfiler-r-r.Ú push_sourceNs üzshlex.push_sourcecCsF |j ¡|j ¡\|_|_|_|jrtd|j|jfƒd|_dS)Nzshlex: popping to %s, line %dr ) rÚcloser"Úpopleftrrr r2rr1r-r-r.Ú pop_source\s  ÿ zshlex.pop_sourcecCsè |jr|j ¡}|jdkrtdt|ƒƒ|S| ¡}|jdurB||jkrB| | ¡¡}|r9|\}}| ||¡|  ¡}||jks&||j krZ|j sM|j S|  ¡|  ¡}||j ksG|jdkrr||j krntdt|ƒƒ|Stdƒ|S)Nr zshlex: popping token z shlex: token=zshlex: token=EOF) rr;r r2r3Ú read_tokenr#Ú sourcehookr9Ú get_tokenrr"r<)r*r5ÚrawÚspecr8r7r-r-r.r?es6      û  û  ÿzshlex.get_tokencCsÀd}d} |jr|jr|j ¡}n|j d¡}|dkr"|jd7_|jdkr0td|j|fƒ|jdur:d|_ �nù|jdkrÄ|sFd|_�ní||j vr_|jd krTtd ƒ|j s\|j r^|r^�nÕq||j vrr|j  ¡|jd7_�nÀ|j r�||jvr�d }||_�n±||jvrŽ||_ d |_�n¤||jvr›||_ d |_�n—||jvr«|j s¦||_ ||_�n‡|jr¶||_ d |_�n|||_ |j sÁ|j rÃ|rÃ�npq|j|jv�rd}|sÜ|jd krØtd ƒtdƒ‚||jkrõ|j sð|j |7_ d|_�nCd |_�n=|j �r||jv�r|j|jv�r|j}||_�n$|j |7_ �n|j|jv�rS|�s/|jd k�r+tdƒtdƒ‚||jv�rH||jk�rH||k�rH|j |j7_ |j |7_ ||_nß|jdv�r2|�s`d|_nÓ||j v�r€|jd k�rptdƒd|_|j �s~|j �r|�rn´q||j v�r§|j  ¡|jd7_|j �r¦d|_|j �s¤|j �r¥|�r¥nŽqn‹|jd k�rË||jv�r»|j |7_ nw||j v�rÇ|j |¡d|_nh|j �rÙ||jv�rÙ||_nY|j �ré||jv�réd }||_nI||jv�sÿ||jv�sÿ|j�r||jv�r|j |7_ n+|j�r|j |¡n|j |¡|jd k�r"tdƒd|_|j �s0|j �r1|�r1nqq|j }d|_ |j �rG|�sG|dk�rGd}|jdk�r^|�rZtdt|ƒƒ|Stdƒ|S)NFr Tr Ú éz&shlex: in state %r I see character: %rré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)rErFz%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)r+r%ÚpoprÚreadrr r2rr!rrrÚreadlinerrrrÚ ValueErrorrÚappendrr4r3)r*ZquotedZ escapedstateZnextcharÚresultr-r-r.r=…s    ÿ                 ÿ        û    ÿ   �ü ÿzshlex.read_tokencCsX |ddkr |dd…}t|jtƒr%tj |¡s%tj tj |j¡|¡}|t|dƒfS)Nrr r éÿÿÿÿÚr) rrrÚosÚpathÚisabsrÚdirnameÚopen)r*r8r-r-r.r>s   zshlex.sourcehookcCs* |dur|j}|dur|j}d||fS)Nz"%s", line %d: )rr)r*rrr-r-r.Ú error_leader s  zshlex.error_leadercCs|Sr0r-r1r-r-r.Ú__iter__(szshlex.__iter__cCs| ¡}||jkr t‚|Sr0)r?rÚ StopIteration)r*r!r-r-r.Ú__next__+s zshlex.__next__)NNFFr0)NN)Ú__name__Ú __module__Ú __qualname__r/Úpropertyr+r6r9r<r?r=r>rTrUrWr-r-r-r.rs" ÿ/      rFTcCsF |durddl}|jdtdd�t||d�}d|_|sd|_t|ƒS)Nrz4Passing None for 's' to shlex.split() is deprecated.rD)Ú stacklevel)rTr)ÚwarningsÚwarnÚDeprecationWarningrrrÚlist)ÚsZcommentsrr]Zlexr-r-r.r1sÿ rcCs d dd„|Dƒ¡S)Nr css�|]}t|ƒVqdSr0)r)Ú.0Úargr-r-r.Ú @s€zjoin..)r)Z split_commandr-r-r.r>srz[^\w@%+=:,./-]cCs. |sdSt|ƒdur |Sd| dd¡dS)Nz''ú'z'"'"')Ú _find_unsafeÚreplace)rar-r-r.rEs  rcCs$ | ¡}|s dStdt|ƒƒq)Nr zToken: )r?r2r3)ZlexerZttr-r-r.Ú _print_tokensQs ürhÚ__main__r )FT)rOÚrerÚ collectionsrÚiorÚ__all__rrrÚcompileÚASCIIÚsearchrfrrhrXÚlenÚargvÚfnrSÚfr-r-r-r.Ús.        "ÿû