Your IP : 13.59.103.62


Current Path : /lib64/python2.7/
Upload File :
Current File : //lib64/python2.7/shlex.pyc

�
�mec@sdZddlZddlZddlmZyddlmZWn!ek
reddlmZnXddgZ	ddd��YZ
eed�Z
ed	kreej�d
kr�e
�Zn"ejd
Ze
ee�e�Zx+ej�Zer
dee�GHq�Pq�ndS(
s8A lexical analyzer class for simple shell-like syntaxes.i����N(tdeque(tStringIOtshlextsplitcBszeZdZdded�Zd�Zdd�Zd�Zd�Z	d�Z
d�Zddd�Zd	�Z
d
�ZRS(s8A lexical analyzer class for simple shell-like syntaxes.cCs<t|t�rt|�}n|dk	r?||_||_ntj|_d|_||_|rod|_	n	d|_	d|_
d|_|jr�|jd7_nd|_t
|_d|_d|_d|_d	|_t�|_d
|_d|_d|_t�|_d|_|jr8d|j|jfGHndS(
Ntt#t?abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_s>�����������������������������������������������������������s 	
s'"s\t"t iisshlex: reading from %s, line %d(t
isinstancet
basestringRtNonetinstreamtinfiletsyststdintposixteoft
commenterst	wordcharst
whitespacetFalsetwhitespace_splittquotestescapet
escapedquoteststateRtpushbacktlinenotdebugttokent	filestacktsource(tselfRR
R((s/usr/lib64/python2.7/shlex.pyt__init__s<																		cCs5|jdkr!dt|�GHn|jj|�dS(s:Push a token onto the stack popped by the get_token methodisshlex: pushing token N(RtreprRt
appendleft(R!ttok((s/usr/lib64/python2.7/shlex.pyt
push_token;scCs�t|t�rt|�}n|jj|j|j|jf�||_||_d|_|jr�|dk	r�d|jfGHq�d|jfGHndS(s9Push an input source onto the lexer's input source stack.isshlex: pushing to file %ssshlex: pushing to stream %sN(
R	R
RRR$R
RRRR(R!t	newstreamtnewfile((s/usr/lib64/python2.7/shlex.pytpush_sourceAs"				cCs\|jj�|jj�\|_|_|_|jrOd|j|jfGHnd|_dS(sPop the input source stack.sshlex: popping to %s, line %dRN(RtcloseRtpopleftR
RRR(R!((s/usr/lib64/python2.7/shlex.pyt
pop_sourceOs
!	cCs/|jr=|jj�}|jdkr9dt|�GHn|S|j�}|jdk	r�x\||jkr�|j|j��}|r�|\}}|j||�n|j	�}q[Wnx9||j
kr�|js�|j
S|j�|j	�}q�W|jdkr+||j
kr#dt|�GHq+dGHn|S(sBGet a token from the input stream (or from stack if it's nonempty)isshlex: popping token s
shlex: token=sshlex: token=EOFN(
RR+RR#t
read_tokenR Rt
sourcehookR)t	get_tokenRRR,(R!R%trawtspecR(R'((s/usr/lib64/python2.7/shlex.pyR/Xs.		
cCsnt}d}x�tr|jjd�}|dkrF|jd|_n|jdkrxdGt|j�GdGt|�GHn|jdkr�d|_	Pq|jdkr�|s�d|_Pq||j
kr�|jdkr�d	GHn|j	s�|jr|rPq�qq||jkr-|jj
�|jd|_q|jrW||jkrWd
}||_q||jkr{||_	d
|_q||jkr�|js�||_	n||_q|jr�||_	d
|_q||_	|j	s�|jr|rPqqq|j|jkr�t}|s5|jdkr)dGHntd�n||jkrv|jsj|j	||_	d|_Pq�d
|_q|jr�||jkr�|j|jkr�|j}||_q|j	||_	q|j|jkr_|s|jdkr�d
GHntd�n||jkrC||jkrC||krC|j	|j|_	n|j	||_	||_q|jd
kr|s�d|_Pq||j
kr�|jdkr�dGHnd|_|j	s�|jr|rPq�qq||jkr5|jj
�|jd|_|jr�d|_|j	s(|jr|rPq2qq�q|jrY||jkrY||_q|jr�||jkr�d
}||_q||jks�||jks�|jr�|j	||_	q|jj|�|jdkr�dGHnd|_|j	rPqqqqW|j	}d|_	|jr;|r;|dkr;d}n|jdkrj|rbdt|�GHqjdGHn|S(NRis
isshlex: in statesI see character:Ris+shlex: I see whitespace in whitespace statetas shlex: I see EOF in quotes statesNo closing quotations shlex: I see EOF in escape statesNo escaped characters%shlex: I see whitespace in word states&shlex: I see punctuation in word statesshlex: raw token=sshlex: raw token=EOF(RtTrueRtreadRRR#RRRRRRtreadlineRRRRt
ValueErrorRRR$(R!tquotedtescapedstatetnextchartresult((s/usr/lib64/python2.7/shlex.pyR-xs�			
										
						
			cCs|ddkr |dd!}nt|jt�rltjj|�rltjjtjj|j�|�}n|t|d�fS(s(Hook called on a filename to be sourced.iRii����tr(	R	R
R
tostpathtisabstjointdirnametopen(R!R(((s/usr/lib64/python2.7/shlex.pyR.�s
%'cCs>|dkr|j}n|dkr0|j}nd||fS(s<Emit a C-compiler-like, Emacs-friendly error-message leader.s"%s", line %d: N(RR
R(R!R
R((s/usr/lib64/python2.7/shlex.pyterror_leaders
cCs|S(N((R!((s/usr/lib64/python2.7/shlex.pyt__iter__	scCs(|j�}||jkr$t�n|S(N(R/Rt
StopIteration(R!R((s/usr/lib64/python2.7/shlex.pytnexts	N(t__name__t
__module__t__doc__RRR"R&R)R,R/R-R.RBRCRE(((s/usr/lib64/python2.7/shlex.pyRs$				 	�			cCs7t|d|�}t|_|s-d|_nt|�S(NRR(RR3RRtlist(tstcommentsRtlex((s/usr/lib64/python2.7/shlex.pyRs
	t__main__isToken: ((RHtos.pathR<RtcollectionsRt	cStringIORtImportErrort__all__RRR3RRFtlentargvtlexertfileRAR/tttR#(((s/usr/lib64/python2.7/shlex.pyt<module>s(
�