B 2»ðó·ƒã@s<dZddlTddlZGdd„dƒZdd„Zedkr8eƒdS) zDBasic regular expression demonstration facility (Perl style syntax).é)Ú*Nc@s8eZdZdd„Zdd„Zdd„Zd dd „Zd d d „ZdS)ÚReDemocCs||_t|jtdd|_|jjttdt|jƒ|_|jjtd|j  ¡|  ¡t|jdtd|_ |j jttdt|jtdd|_ |j jtd|j jtdt |ƒ|_|jjttdt|ƒ|_|j d ¡t|jd |jd |jd |_|jjtd t|jd |jd|jd |_|jjtd t|jddd|_|jjtdd|jjdddt|jdtd|_|jjtdt|jƒ|_|jjdtd|j d|j¡|j d|j¡d|_ | ¡|j !¡}|j !|dd…|dd…¡|j !¡}|j !|dd…|dd…¡dS)Nz&Enter a Perl-style regular expression:)ÚanchorÚtext)ÚsideÚfill)rÚ)rrzEnter a string to search:)rrÚfirstzHighlight first match)rÚvariableÚvalueÚcommand)rzHighlight all matchesÚallé<é)ÚwidthZheighté)rÚexpandÚhitÚyellow)Ú backgroundzGroups:)rrz)"ÚmasterZLabelÚWÚ promptdisplayÚpackZTOPÚXZEntryÚ regexdisplayZ focus_setÚ addoptionsÚ statusdisplayZ labeldisplayÚFrameZ showframeZ StringVarÚshowvarÚsetZ RadiobuttonÚ recompileZshowfirstradioÚLEFTZ showallradioZTextÚ stringdisplayZBOTHÚ tag_configureZ grouplabelZListboxÚ grouplistZbindÚ reevaluateÚcompiledZbindtags)ÚselfrZbtags©r)ú6/opt/alt/python37/lib64/python3.7/Tools/demo/redemo.pyÚ__init__ sZ             zReDemo.__init__c Cs¤g|_g|_g|_xŒdD]„}t|jƒddkrPt|jƒ}|jtd|j |¡t t |ƒj }t ƒ}t |||d||jd}|jtd|j |¡|j |¡qWdS)N)Ú IGNORECASEÚ MULTILINEÚDOTALLÚVERBOSEér)r)r rZoffvalueZonvaluer )r)ZframesZboxesÚvarsÚlenrrrrÚappendÚgetattrÚrer ZIntVarZ Checkbuttonr!r")r(ÚnameÚframeÚvalÚvarZboxr)r)r*rIs"        zReDemo.addoptionscCs(d}x|jD]}|| ¡B}q W|}|S)Nr)r1Úget)r(Úflagsr9r)r)r*Úgetflags_s  zReDemo.getflagsNc Cs†y6t |j ¡| ¡¡|_|jd}|jjd|dWnBtj k rx}z"d|_|jjdt |ƒddWdd}~XYnX|  ¡dS)Nrr)rrz re.error: %sZred) r5Úcompilerr:r<r'rrÚconfigÚerrorÚstrr&)r(ÚeventZbgÚmsgr)r)r*r!fs    zReDemo.recompilec CsÂy|j ddt¡Wntk r(YnXy|j ddt¡Wntk rRYnX|j dt¡|jsldS|jjddd|jjddd|j dt¡}d}d}xð|t |ƒkr’|j  ||¡}|dkrÊP|  ¡\}}||krì|d}d}nd}d |}d |} |j  ||| ¡|dkrx|j  |¡t| ¡ƒ} |  d| ¡¡x4tt | ƒƒD]$} d | | | f} |j t| ¡qPW|d}|j ¡d kr¤Pq¤W|dkr°|jjd dd n|jjdddS)Nrz1.0Zhit0rr)rZorangerz1.0 + %d charsz%2d: %rr z (no match))rrr)r)r#Z tag_removeZENDZTclErrorr%Údeleter'r$r:r2ÚsearchÚspanZtag_addZyview_pickplaceÚlistÚgroupsÚinsertÚgroupÚrangerrr>) r(rArZlastZnmatchesÚmr ÚtagZpfirstZplastrGÚiÚgr)r)r*r&ssT      zReDemo.reevaluate)N)N)Ú__name__Ú __module__Ú __qualname__r+rr<r!r&r)r)r)r*rs ? rcCs(tƒ}t|ƒ}| d|j¡| ¡dS)NZWM_DELETE_WINDOW)ZTkrZprotocolÚquitZmainloop)ÚrootZdemor)r)r*Úmain¥srTÚ__main__)Ú__doc__Ztkinterr5rrTrOr)r)r)r*Ús