Viewing File: /opt/alt/python35/lib64/python3.5/idlelib/__pycache__/PyParse.cpython-35.opt-1.pyc



YfO@sddlZddlZddlmZed\ZZZZZ	ej
dejejBj
Zej
dejjZej
dejejBjZej
dejjZej
dejjZej
d	ejjZGd
ddeZGdd
d
ZdS)N)Mappingz
    ^
    [ \t]*
    (?: while
    |   else
    |   def
    |   return
    |   assert
    |   break
    |   class
    |   continue
    |   elif
    |   try
    |   except
    |   raise
    |   import
    |   yield
    )
    \b
z'
    [ \t]*
    (?: \# \S .* )?
    \n
aK
    \""" [^"\\]* (?:
                     (?: \\. | "(?!"") )
                     [^"\\]*
                 )*
    (?: \""" )?

|   " [^"\\\n]* (?: \\. [^"\\\n]* )* "?

|   ''' [^'\\]* (?:
                   (?: \\. | '(?!'') )
                   [^'\\]*
                )*
    (?: ''' )?

|   ' [^'\\\n]* (?: \\. [^'\\\n]* )* '?
zM
    [ \t]*
    [^\s#\\]    # if we match, m.end()-1 is the interesting char
z_
    \s*
    (?: return
    |   break
    |   continue
    |   raise
    |   pass
    )
    \b
z
    [^[\](){}#'"\\]+
c@sUeZdZdZddZddZddZdd	Zd
ddZd
S)
StringTranslatePseudoMappingaTUtility class to be used with str.translate()

    This Mapping class wraps a given dict. When a value for a key is
    requested via __getitem__() or get(), the key is looked up in the
    given dict. If found there, the value from the dict is returned.
    Otherwise, the default value given upon initialization is returned.

    This allows using str.translate() to make some replacements, and to
    replace all characters for which no replacement was specified with
    a given character instead of leaving them as-is.

    For example, to replace everything except whitespace with 'x':

    >>> whitespace_chars = ' \t\n\r'
    >>> preserve_dict = {ord(c): ord(c) for c in whitespace_chars}
    >>> mapping = StringTranslatePseudoMapping(preserve_dict, ord('x'))
    >>> text = "a + b\tc\nd"
    >>> text.translate(mapping)
    'x x x\tx\nx'
    cCs4||_||_|j|dd}||_dS)NcSs
|||S)N)key_getZ_defaultrr4/opt/alt/python35/lib64/python3.5/idlelib/PyParse.pyrysz3StringTranslatePseudoMapping.__init__.<locals>._get)
_non_defaultsZ_default_valuegetr)selfZnon_defaults
default_valuerrrr__init__us		z%StringTranslatePseudoMapping.__init__cCs
|j|S)N)r)ritemrrr__getitem__}sz(StringTranslatePseudoMapping.__getitem__cCs
t|jS)N)lenr	)rrrr__len__sz$StringTranslatePseudoMapping.__len__cCs
t|jS)N)iterr	)rrrr__iter__sz%StringTranslatePseudoMapping.__iter__NcCs
|j|S)N)r)rrdefaultrrrr
sz StringTranslatePseudoMapping.get)	__name__
__module____qualname____doc__r
rrrr
rrrrr`src@sBeZdZddZddZdeddZdd	ZiZej	d
ddDej	d
ddDej	dddDe
ededZddZddZ
ddZddZddZddZdd Zd!d"Zd#d$ZdZd%d&ZdZd'd(ZdS))ParsercCs||_||_dS)N)indentwidthtabwidth)rrrrrrr
s	zParser.__init__cCs||_d|_dS)Nr)strstudy_level)rsrrrset_strs	zParser.set_strNc
CsI|jd}}|sdSt|}xtdD]}|jdd|}|dkr[P|jdd|d}||||}|r||jr|j}P|}q3W|dkr||}|r||jr|j}|S|d}xA|||}|r@|j\}	}||	sA|	}qPqW|S)Nrz:
r
)rrrangerfindstartspan)
rZis_char_in_string_synchrerposlimitZtriesimrrrrfind_good_parse_starts8
	
	zParser.find_good_parse_startcCs&|dkr"|j|d|_dS)Nr)r)rlorrrset_losz
Parser.set_loccs'|]}t|tdfVqdS)(N)ord).0crrr	<genexpr>szParser.<genexpr>z({[ccs'|]}t|tdfVqdS))N)r/)r0r1rrrr2sz)}]ccs'|]}t|t|fVqdS)N)r/)r0r1rrrr2sz"'\
#rxc
Csp|jdkrdSd|_|j}|j|j}|jdd}|jdd}|jdd}|jdd}|jdd}t}d}}dg|_}|j}dt|}}xO||kr||}	|d}|	dkrq|	dkr.|d}|dkr||q|	d	krG|d}q|	d
krf|r|d}q|	dks~|	dkr|	}
||d|d
|
dkr|
d}
|}t|
d}||}x||kr||}	|d}|	dkrq||d|||
kr+||}P|	dkrg|d}|dkr|dkrc||Pq|	dkr||dkr|d}|d}qqW|d|krt	}qt
}q|	dkr|jd|}q||dkr|d}|d|krt}|d}qW|t	krI|t
krI|dkrIt
}||_|d|krl||dS)Nr!Zxxxxxxxxr4ZxxxxZxxz
xr rr.r3"'\#)rr	translate_tranreplaceC_NONE	goodlinesappendrC_STRING_FIRST_LINEC_STRING_NEXT_LINESfindC_BACKSLASH	C_BRACKETcontinuation)
rrrGlevelZlnor@Z	push_goodr)nchZquoteZfirstlnowrrr_study1s		
	





"








	
	zParser._study1cCs|j|jS)N)rLrG)rrrrget_continuation_typegs
zParser.get_continuation_typecCsg|jdkrdS|jd|_|j|j}}t|d}t|}xp|r|}x@t||d||D]#}|jdd|dd}qWt||r|d}qXPqXW|dkr|}|||_|_	d}g}|j
}	|dfg}
x$||kr7t|||}|r|j}|d}x*||krz||dkrz|d}qQW||kr||}|}||krP||}
|
dkr|	||
j
|t|f|
}|d}q|
dkr5|r	|d=|
}|d}|
j
|t|fq|
d	ksM|
d
kr|
j
|t|df|
}t
|||j}|
j
|t|fq|
dkr|
j
|t|df|jd||d}|
j
|t|fq|d}||dkr*|
||}|d}qW||_|rT|d
|_t|
|_dS)Nr7r!r rz 	
z([{z)]}r5r6r:r;r;)rrLrr@rr"r#_junkre
stmt_startstmt_endrA_chew_ordinaryreend_match_stringrerDlastchlastopenbracketpostuplestmt_bracketing)rrr@r)pqZnothingrUstackZ
push_stackZ
bracketingr*ZnewprJrrr_study2|s
		"!
	






	
zParser._study2cCs|j|j}|j}t|}|jdd|d}}|d}x||krt||}|r|jd}d}PqR|jd|d}}qRW|}}x||dkr|d}qW|j}t|||j	|j
|S)Nr rr!z 	)r\rVrrr#_itemrerSrDr
expandtabsr)rjrrIZorigir)r*Zextrarrrcompute_bracket_indents$
		

	zParser.compute_bracket_indentcCs#|j|j}|d|dS)Nr!r7r;)rLr@)rr@rrrget_num_lines_in_stmts
	zParser.get_num_lines_in_stmtcCs|j|j}|j}x||dkr<|d}qW|}|jd|d}d}}x	||krn||}|dkr|d}|d}qf|dkr|r|d}|d}qf|dks|dkrt|||j}qf|d	krPqf|dkra|d
kra|dksC||ddkra||dd
krad}Pqf|d}qfW|r|d}tjd|||dk}|s|}x||d
kr|d}qWt||j|j	|j
dS)Nz 	r!r rz([{z)]}r5r6r:=z=<>!z\s*\\z 	
)r\rrPrDrTrSrematchrr^r)rrr)startposendposfoundrHrJrrrcompute_backslash_indentsH
		





 
"zParser.compute_backslash_indentcCsg|j|j|j}}|}|j}x*||krX||dkrX|d}q/W|||S)Nz 	r!)r\rPrQr)rr)rIr_rrrrget_base_indent_stringFs
	zParser.get_base_indent_stringcCs|j|jdkS)N:)r\rU)rrrris_block_openerQs
zParser.is_block_openercCs#|jt|j|jdk	S)N)r\_closererrP)rrrris_block_closerWs
zParser.is_block_closercCs|j|jS)N)r\rV)rrrrget_last_open_bracket_pos^s
z Parser.get_last_open_bracket_poscCs|j|jS)N)r\rX)rrrrget_last_stmt_bracketinggs
zParser.get_last_stmt_bracketing)rrrr
rr&r+r-r=updaterr/rLrMr\r`rbrirjrlrnrVrorXrprrrrrs.3	m	5r)rdsyscollectionsrr"r?rErBrCrFcompileVERBOSE	MULTILINEsearchr&rerODOTALLrTr]rmrRrrrrrr<module>s"	*
Back to Directory File Manager