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



]M2@sddlZddlmZddlmZeejejdZeejdZ	dde
dDZdde
dDZGd	d
d
Z
edkrddlZejdd
ddS)N)	iskeyword)PyParse_cCs"g|]}t|tkqS)chr_ASCII_ID_CHARS).0xrr0/opt/alt/python35/lib64/python3.5/HyperParser.py
<listcomp>s	rcCs"g|]}t|tkqSr)r_ASCII_ID_FIRST_CHARS)rr	rrr
rs	c@seZdZddZddZddZddZd	d
ddZed
ddhZ	e
ddZdZddZ
dS)HyperParserc
s|_|j_}tj|j|j}dd}||j|}|jsx|jD]}t	||d}t
|d}	d|}
|j|j|	|
d|j
|j|	}|dk	s|dkrePqeW|j|pdn_|jd|}|r%|d}	nd	}	d|}
|j|j|	|
d|jd|jdd
_|
_|j_fddttjD_j|dS)NcSstt|S)N)intfloat)indexrrr

index2line#sz(HyperParser.__init__.<locals>.index2linez.0z%d.endz 
rZconsolez1.0csBg|]8}|dko;j|dj|ddkqS)rr)
bracketing)ri)selfrr
rLs	z(HyperParser.__init__.<locals>.<listcomp>)editwintextrZParserZindentwidthZtabwidthrZcontext_use_ps1Znum_context_linesmaxreprZset_strgetZfind_good_parse_startZ_build_char_in_string_funcZset_loZ
tag_prevrangestrrawtextstopatindexZget_last_stmt_bracketingrrangelenisopener	set_index)
rrrrparserrlnocontextZstartatZstartatindexr Zbodrr)rr
__init__s:		



	zHyperParser.__init__cCst|jt|jj||j}|dkrGtd|||_d|_xP|jt|jdkr|j|jdd|jkr|jd7_q\W|jt|jdkr
|j|jdd|jkr
|j	|jdr
|jd7_dS)Nrz(Index %s precedes the analyzed statementr)
r"rrrr 
ValueErrorindexinrawtextindexbracketrr#)rrr+rrr
r$Rs
		!!zHyperParser.set_indexcCs/|j|jo.|j|j|jddkS)Nr"')r-r.)r#r,rr)rrrr
is_in_stringgszHyperParser.is_in_stringcCs0|j|jp/|j|j|jddkS)Nr#r-r.)r0r-r.)r#r,rr)rrrr

is_in_codeoszHyperParser.is_in_codez([{FcCs|j|jd}|j}x{|j|sc|j|j|d|ksc|j|d|kr|d8}|dkr}dSt||j|d}q W|jd}x:|t|jkr|j|d|kr|d7}qW|jjd|jt|j|j|df}|t|jksQ|j|dt|jkrg|r[dS|j}n;|jjd|jt|j|j|ddf}||fS)Nrrz%s-%dc)	rr,r#rminr"rrr )rZopenersZ	mustcloseZbracketinglevelZbeforeafterZbeforeindexZ
afterindexrrr
get_surrounding_bracketsus0	

+ 		)z$HyperParser.get_surrounding_bracketsTrueFalseNonecCst}|}xL||krZt||ddkrZ|t||drZ|d8}qW||krMt||ddkrMx<|d|krd||d|jr|d8}qW|d|krd||d|jr|d8}|d|kr0d||d|jr0|d8}|||jsqdSn$||krqtt||sqdS||krt|||r||||jkrdS||S)Nrrarr)_IS_ASCII_ID_CHARordisidentifier_IS_ASCII_ID_FIRST_CHARr_ID_KEYWORDS)clsrlimitposZis_ascii_id_charrrrr
_eat_identifiers.&1.
.
zHyperParser._eat_identifierz 	
\c
Csk|jstd|j}|j}|j}||d}|j}|}d}xx||kr||d|jkr|d8}q\|r||kr||ddkr|d8}d}q\||kr'|dkr'|||dddkr'|d8}||d}||dd}q\Pq\W|s3P|j|||}|rg||}|}d}qY||krU||d}	x2|dkr||dd|	kr|d8}qW||d|krP||d}|d8}||d}|}||d	kr
qV||d
krQx.|dkrJ||ddkrJ|d8}qW|}PqYPqYW|||jS)Nz>get_expression should only be calledif index is inside a code.rTr.r0rFz([z'"ZrRbBuU)r1r*rrr,r+_whitespace_charsrB)
rrrZ
brck_indexZ
brck_limitrAZlast_identifier_posZ
postdot_phaseretlevelrrr
get_expressionsb				#
 
	

	'
#zHyperParser.get_expressionN)__name__
__module____qualname__r)r$r/r1r4	frozensetr>classmethodrBrDrGrrrr
rs7,:r__main__z"idlelib.idle_test.test_hyperparser	verbosityr)stringkeywordrZidlelibrrK
ascii_lettersdigitsrr
r!r:r=rrHZunittestmainrrrr
<module>s
Back to Directory File Manager