PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  pYM2@sddlZddlmZddlmZeejejdZeejdZ dde dDZ dde dDZ Gd d d Z ed krddlZejd d ddS)N) iskeyword)PyParse_cCs"g|]}t|tkqS)chr_ASCII_ID_CHARS).0xrr*/opt/python35/lib/python3.5/HyperParser.py s r cCs"g|]}t|tkqSr)r_ASCII_ID_FIRST_CHARS)rr rrr r s c@seZdZddZddZddZddZd d d d Zed ddhZ e ddZ dZ 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_fd d ttjD_j|dS)NcSstt|S)N)intfloat)indexrrr index2line#sz(HyperParser.__init__..index2linez.0z%d.endz rZconsolez1.0csBg|]8}|dko;j|dj|ddkqS)rr) bracketing)ri)selfrr r Ls z(HyperParser.__init__..)editwintextrZParserZ indentwidthZtabwidthrZcontext_use_ps1Znum_context_linesmaxreprZset_strgetZfind_good_parse_startZ_build_char_in_string_funcZset_loZ tag_prevrangestrrawtext stopatindexZget_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 mustcloseZbracketinglevelZbeforeafterZ beforeindexZ 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||dd krJ|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 s