grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]¸,ã @sddlZddlZddlZddlmZddlmZdddgZGdd„dƒZdd d d„Z ej d ej ƒj Z d d„Zd d„ZedkreejƒdkrÙeeƒƒn6ejdZeeƒ�ZeeeeƒƒWdQRXdS)éN)Údeque)ÚStringIOÚshlexÚsplitÚquotec@sšeZdZddddd„Zdd„Zddd„Zd d „Zd d „Zd d„Zdd„Z dddd„Z dd„Z dd„Z dS)rNFcCst|tƒrt|ƒ}|dk r<||_||_ntj|_d|_||_|rld|_n d|_d|_ d|_ |jrŸ|j d7_ d|_ d|_ d|_ d|_d |_d |_tƒ|_d |_d |_d|_tƒ|_d|_dS) NÚú#Z?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_u|ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÃ�ÂÃÄÅÆÇÈÉÊËÌÃ�ÃŽÃ�Ã�ÑÒÓÔÕÖØÙÚÛÜÃ�Þz Fz'"ú\ú"ú ér)Ú isinstanceÚstrrÚinstreamÚinfileÚsysÚstdinÚposixÚeofÚ commentersÚ wordcharsÚ whitespaceÚwhitespace_splitÚquotesÚescapeÚ escapedquotesÚstaterÚpushbackÚlinenoÚdebugÚtokenÚ filestackÚsource)Úselfrrr©r$ú*/opt/alt/python35/lib64/python3.5/shlex.pyÚ__init__s6                       zshlex.__init__cCs7|jdkr#tdt|ƒƒ|jj|ƒdS)Nr zshlex: pushing token )rÚprintÚreprrÚ appendleft)r#Útokr$r$r%Ú push_token5szshlex.push_tokencCsœt|tƒrt|ƒ}|jj|j|j|jfƒ||_||_d|_|jr˜|dk r„t d|jfƒnt d|jfƒdS)Nr zshlex: pushing to file %szshlex: pushing to stream %s) r rrr!r)rrrrr')r#Ú newstreamÚnewfiler$r$r%Ú push_source;s "     zshlex.push_sourcecCs^|jjƒ|jjƒ\|_|_|_|jrQtd|j|jfƒd|_dS)Nzshlex: popping to %s, line %dr ) rÚcloser!Úpopleftrrrr'r)r#r$r$r%Ú pop_sourceIs  ! zshlex.pop_sourcecCs2|jr?|jjƒ}|jdkr;tdt|ƒƒ|S|jƒ}|jdk r³xV||jkr²|j|jƒƒ}|r£|\}}|j||ƒ|j ƒ}q]Wx9||j krî|j sÕ|j S|j ƒ|j ƒ}q¶W|jdkr.||j kr$tdt|ƒƒn tdƒ|S)Nr zshlex: popping token z shlex: token=zshlex: token=EOF) rr0rr'r(Ú read_tokenr"Ú sourcehookr.Ú get_tokenrr!r1)r#r*ÚrawÚspecr-r,r$r$r%r4Rs.      zshlex.get_tokencCsud}d}xø|jjdƒ}|dkr=|jd|_|jdkrntdt|jƒdt|ƒƒ|jdkrŠd|_Pq|jdkré|s¬d|_Pq||jkrö|jd krÔtd ƒ|jsì|j r|rPqæqq||j kr%|jj ƒ|jd|_q|j rO||j krOd }||_q||j krs||_d |_q||jkr |j s”||_||_q|jr¾||_d |_q||_|jsß|j r|rPqqq|j|jkr¿d }|s,|jd kr td ƒtdƒ‚||jkrm|j sa|j||_d|_Pq¼d |_q|j r¬||j kr¬|j|jkr¬|j}||_q|j||_q|j|j krU|sü|jd krðtdƒtdƒ‚||jkr9||jkr9||kr9|j|j|_|j||_||_q|jd kr|swd|_Pq||jkrÊ|jd krŸtdƒd|_|jsÀ|j r|rPqqq||j kr*|jj ƒ|jd|_|j rd|_|js |j r|rPqqq|j rN||jkrN||_q|j rx||j krxd }||_q||j ksŸ||jksŸ|jr²|j||_q|jj|ƒ|jd krÛtdƒd|_|jsü|j r|rPqqqW|j}d|_|j r;| r;|dkr;d}|jdkrq|rgtdt|ƒƒn tdƒ|S)NFr r Ú ézshlex: in statezI see character:réz+shlex: I see whitespace in whitespace stateÚaTz shlex: I see EOF in quotes statezNo closing quotationz shlex: I see EOF in escape statezNo escaped characterz%shlex: I see whitespace in word statez&shlex: I see punctuation in word statezshlex: raw token=zshlex: raw token=EOF)rÚreadrrr'r(rr rrrÚreadlinerrrrÚ ValueErrorrrr))r#ZquotedZ escapedstateZnextcharÚresultr$r$r%r2rsà                                       zshlex.read_tokencCs||ddkr |dd…}t|jtƒritjj|ƒ ritjjtjj|jƒ|ƒ}|t|dƒfS)Nrr r Úréÿÿÿÿ) r rrÚosÚpathÚisabsÚjoinÚdirnameÚopen)r#r-r$r$r%r3òs %$zshlex.sourcehookcCs8|dkr|j}|dkr*|j}d||fS)Nz"%s", line %d: )rr)r#rrr$r$r%Ú error_leaderûs     zshlex.error_leadercCs|S)Nr$)r#r$r$r%Ú__iter__szshlex.__iter__cCs%|jƒ}||jkr!t‚|S)N)r4rÚ StopIteration)r#r r$r$r%Ú__next__s zshlex.__next__) Ú__name__Ú __module__Ú __qualname__r&r+r.r1r4r2r3rGrHrJr$r$r$r%rs !  €  FTcCs4t|d|ƒ}d|_|s*d|_t|ƒS)NrTr)rrrÚlist)ÚsZcommentsrZlexr$r$r%r s   z[^\w@%+=:,./-]cCs8|s dSt|ƒdkr |Sd|jddƒdS)Nz''ú'z'"'"')Ú _find_unsafeÚreplace)rOr$r$r%rs cCs2x+|jƒ}|sPtdt|ƒƒqWdS)NzToken: )r4r'r()ZlexerÚttr$r$r%Ú _print_tokens"s  rTÚ__main__r )rAÚrerÚ collectionsrÚiorÚ__all__rrÚcompileÚASCIIÚsearchrQrrTrKÚlenÚargvÚfnrFÚfr$r$r$r%Ú s   ú