tQc@sddlZddlZed\ZZZZZejdej ej Bj Z ejdej j Zejdej ejBj Zejdej j Zejdej j Zejdej j Zd gd Zxd D]Zd eeet ||ksPt ||dkr|d}|d|krt }qn|d}qW|t kr|t kr|dkrt}n||_|tk|d|kkst |d|kr ||ndS(NitxxxxxxxxRtxxxxtxxs xs iRRt"t'iis\t#i(RRt translatet_trantreplacetC_NONEt goodlinesR R R tC_STRING_FIRST_LINEtC_STRING_NEXT_LINEStfindt C_BACKSLASHt C_BRACKETt continuation( RRR8tleveltlnoR2t push_goodR"tntchtquotetfirstlnotw((s%/sys/lib/python2.7/idlelib/PyParse.pyt_study1s                                     "cCs|j|jS(N(RAR8(R((s%/sys/lib/python2.7/idlelib/PyParse.pytget_continuation_typePs cCs|jdkrdS|jd|_|j|j}}t|d}t|}x||r|sjt|}x@t||d||D]#}|jdd|dd}qWt||r|d}qXPqXW|dkr|dkst|}n|||_ |_ d}g}|j } |dfg} xu||krt |||} | r| j } | d}x*||kr||dkr|d}qrW||kr||}n| }||krPqn||} | dkr| || j |t|f| }|d}q5n| dkrh|r9|d =n| }|d}| j |t|fq5n| d ks| d kr| j |t|df| }t|||j }| j |t|fq5n| d krM| j |t|df|jd||d}|dks.t| j |t|fq5n| d ks_t|d}||ks{t||dkr| ||}n|d}q5W||_|r|d |_nt| |_dS(Niis iRs s([{s)]}iR+R,R-s\(RRARR2R R RRt_junkret stmt_starttstmt_endR t_chew_ordinaryretendt_match_stringreR5tlastchtlastopenbracketposttupletstmt_bracketing(RRR2R"tptqtnothingRItstackt push_stackt bracketingR#tnewpR=((s%/sys/lib/python2.7/idlelib/PyParse.pyt_study2es     "!                   cCs|j|jtkst|j}|j}t|}|jdd|d}}|d}x||krt||}|r|j d}d}Pqg|j d|d}}qgW|}}x||dkr|d}qW|j }t|||!j |j |S(Ns iis (RTR8R7R RJRR Rt_itemreRGR5Rt expandtabsR(RtjRR<torigiR"R#textra((s%/sys/lib/python2.7/idlelib/PyParse.pytcompute_bracket_indents&       cCs#|j|j}|d|dS(Nii(RAR2(RR2((s%/sys/lib/python2.7/idlelib/PyParse.pytget_num_lines_in_stmts  cCs |j|jtkst|j}|j}x||dkrQ|d}q4W|}|jd|d}d}}x ||kr||}|dkr|d}|d}q{|dkr|r|d}n|d}q{|dks|dkrt|||j}q{|d kr#Pq{|dkry|d kry|dks[||dd kry||dd kryd}Pq{|d}q{W|r|d}t j d |||!dk}n|s|}x!||d kr|d}qWnt ||j|!j |jdS(Ns is is([{s)]}R+R,R-t=s=<>!s\s*\\s (RTR8R6R RRDR5RHRGtretmatchRR RVR(RRR"tstartpostendpostfoundR9R=((s%/sys/lib/python2.7/idlelib/PyParse.pytcompute_backslash_indentsJ              "cCsd|j|j|j}}|}|j}x*||krX||dkrX|d}q/W|||!S(Ns i(RTRDRER(RR"R<RWR((s%/sys/lib/python2.7/idlelib/PyParse.pytget_base_indent_string/s  cCs|j|jdkS(Nt:(RTRI(R((s%/sys/lib/python2.7/idlelib/PyParse.pytis_block_opener:s cCs#|jt|j|jdk S(N(RTt_closereRRDR(R((s%/sys/lib/python2.7/idlelib/PyParse.pytis_block_closer@s cCs|j|jS(N(RTRJ(R((s%/sys/lib/python2.7/idlelib/PyParse.pytget_last_open_bracket_posGs cCs|j|jS(N(RTRL(R((s%/sys/lib/python2.7/idlelib/PyParse.pytget_last_stmt_bracketingPs N(t__name__t __module__RRRRR%R'RARBRTRZR[RbRcReRgRJRhRLRi(((s%/sys/lib/python2.7/idlelib/PyParse.pyRps$   3  m  5   ((R]tsysRR1R6R3R4R7tcompiletVERBOSEt MULTILINEtsearchRR^RCtDOTALLRHRURfRFR/R=RRR tunicodeR t NameErrorRR(((s%/sys/lib/python2.7/idlelib/PyParse.pyts8