§
    €zIfÒã  ã                   ó  — d Z ddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZ ddlmZ ddlmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lm Z  ddl!m"Z"  G d„ d¦  «        Z#d„ Z$e%dk    r
 e$¦   «          dgZ&dS )zl
A graphical tool for exploring the regular expression based chunk
parser ``nltk.chunk.RegexpChunkParser``.
é    N)
ÚButtonÚCanvasÚCheckbuttonÚFrameÚIntVarÚLabelÚMenuÚ	ScrollbarÚTextÚTk)ÚaskopenfilenameÚasksaveasfilename)ÚFont)Ú
ChunkScoreÚRegexpChunkParser)ÚRegexpChunkRule)Ú	conll2000Útreebank_chunk)ÚShowText)ÚTree)Úin_idlec                   óz  — e Zd ZdZi dd“dd“dd“dd	“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“i d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“¥dFdGdHdIdJdKdLdMdNdOdPdQœ¥Zg dR¢ZdS edT¬U¦  «        fdV edW¬U¦  «        fdX edY¬Z¦  «        fd[ ed\¬]¦  «        fd^ ed\¬]¦  «        fd_ ed`d`¬a¦  «        fdb edcdd¬a¦  «        fde edf¬U¦  «        fdg edh¬U¦  «        fdi edj¬U¦  «        fg
ZdkZ	 dlZ		 dmZ
	 dnZ	 doZ	  edpdqdrdrdkdsdtdu¬v¦  «        Z edldldrdrdwdkdsdtdu¬x¦	  «	        Z edydzd{d{dkdsdtdud|¬}¦	  «	        Z ed~dsdt¬¦  «        Z ed€d�¬‚¦  «        Z edƒdtdtd„¬…¦  «        Z ed{d{dkdsdtd†d‡¬ˆ¦  «        Z edƒdƒdƒ¬‰¦  «        ZdŠZdrZ edr¬Z¦  «        Z edŠ¬Z¦  «        Zd‹ZdŒ„ Z	 	 	 	 	 d¶d‘„Zd’„ Zd“„ Zd”„ Zd•„ Zd–Z d—Z!d˜„ Z"d—Z#d™„ Z$dš„ Z%d›„ Z&d—Z'dœ„ Z(d�„ Z)dž„ Z*dŸ„ Z+d „ Z,d¡„ Z-d¢„ Z.d£„ Z/d¤„ Z0d·d¥„Z1d¦„ Z2d§„ Z3d¨„ Z4d©„ Z5d·dª„Z6d«„ Z7d¬„ Z8d­„ Z9d®Z:d·d¯„Z;d·d°„Z<d·d±„Z=d²„ Z>d·d³„Z?d·d´„Z@dµ„ ZAdŽS )¸ÚRegexpChunkAppz¢
    A graphical tool for exploring the regular expression based chunk
    parser ``nltk.chunk.RegexpChunkParser``.

    See ``HELP`` for instructional text.
    ÚCCzCoordinating conjunctionzPRP$zPossessive pronounÚCDzCardinal numberÚRBÚAdverbÚDTÚ
DeterminerÚRBRzAdverb, comparativeÚEXzExistential thereÚRBSzAdverb, superlativeÚFWzForeign wordÚRPÚParticleÚJJÚ	AdjectiveÚTOÚtoÚJJRzAdjective, comparativeÚUHÚInterjectionÚJJSzAdjective, superlativeÚVBzVerb, base formÚLSzList item markerÚVBDzVerb, past tenseÚMDÚModalÚNNSzNoun, pluralÚNNzNoun, singular or maspsÚVBNzVerb, past participleÚVBZzVerb,3rd ps. sing. presentÚNNPzProper noun, singularÚNNPSzProper noun pluralÚWDTzwh-determinerÚPDTÚPredeterminerÚWPz
wh-pronounÚPOSzPossessive endingzWP$zPossessive wh-pronounÚPRPzPersonal pronounÚWRBz	wh-adverbú(zopen parenthesisú)zclose parenthesisz
open quoteÚcommazclose quoteÚperiodzpound sign (currency marker)zdollar sign (currency marker)zPreposition/subord. conjunctionz#Symbol (mathematical or scientific)zVerb, gerund/present participlezVerb, non-3rd ps. sing. presentÚcolon)z``ú,z''ú.ú#ú$ÚINÚSYMÚVBGÚVBPú:))ÚHelpÚ20a-  Welcome to the regular expression chunk-parser grammar editor.  You can use this editor to develop and test chunk parser grammars based on NLTK's RegexpChunkParser class.

Use this box ('Help') to learn more about the editor; click on the tabs for help on specific topics:<indent>
Rules: grammar rule types
Regexps: regular expression syntax
Tags: part of speech tags
</indent>
Use the upper-left box ('Grammar') to edit your grammar.  Each line of your grammar specifies a single 'rule', which performs an action such as creating a chunk or merging two chunks.

The lower-left box ('Development Set') runs your grammar on the development set, and displays the results.  Your grammar's chunks are <highlight>highlighted</highlight>, and the correct (gold standard) chunks are <underline>underlined</underline>.  If they match, they are displayed in <green>green</green>; otherwise, they are displayed in <red>red</red>.  The box displays a single sentence from the development set at a time; use the scrollbar or the next/previous buttons view additional sentences.

The lower-right box ('Evaluation') tracks the performance of your grammar on the development set.  The 'precision' axis indicates how many of your grammar's chunks are correct; and the 'recall' axis indicates how many of the gold standard chunks your system generated.  Typically, you should try to design a grammar that scores high on both metrics.  The exact precision and recall of the current grammar, as well as their harmonic mean (the 'f-score'), are displayed in the status bar at the bottom of the window.)ÚRulesÚ10aÉ  <h1>{...regexp...}</h1><indent>
Chunk rule: creates new chunks from words matching regexp.</indent>

<h1>}...regexp...{</h1><indent>
Strip rule: removes words matching regexp from existing chunks.</indent>

<h1>...regexp1...}{...regexp2...</h1><indent>
Split rule: splits chunks that match regexp1 followed by regexp2 in two.</indent>

<h1>...regexp...{}...regexp...</h1><indent>
Merge rule: joins consecutive chunks that match regexp1 and regexp2</indent>
)ÚRegexpsú10 60aZ  <h1>Pattern		Matches...</h1>
<hangindent>	<<var>T</var>>	a word with tag <var>T</var> (where <var>T</var> may be a regexp).
	<var>x</var>?	an optional <var>x</var>
	<var>x</var>+	a sequence of 1 or more <var>x</var>'s
	<var>x</var>*	a sequence of 0 or more <var>x</var>'s
	<var>x</var>|<var>y</var>	<var>x</var> or <var>y</var>
	.	matches any character
	(<var>x</var>)	Treats <var>x</var> as a group
	# <var>x...</var>	Treats <var>x...</var> (to the end of the line) as a comment
	\<var>C</var>	matches character <var>C</var> (useful when <var>C</var> is a special character like + or #)
</hangindent>
<h1>Examples:</h1>
<hangindent>	<regexp><NN></regexp>
		Matches <match>"cow/NN"</match>
		Matches <match>"green/NN"</match>
	<regexp><VB.*></regexp>
		Matches <match>"eating/VBG"</match>
		Matches <match>"ate/VBD"</match>
	<regexp><IN><DT><NN></regexp>
		Matches <match>"on/IN the/DT car/NN"</match>
	<regexp><RB>?<VBD></regexp>
		Matches <match>"ran/VBD"</match>
		Matches <match>"slowly/RB ate/VBD"</match>
\t<regexp><\#><CD> # This is a comment...</regexp>\n		Matches <match>"#/# 100/CD"</match>
</hangindent>)ÚTagsrS   zB<h1>Part of Speech Tags:</h1>
<hangindent><<TAGSET>></hangindent>
Úredz#a00©Ú
foregroundÚgreenz#080Ú	highlightz#ddd©Ú
backgroundÚ	underlineT)r\   Úh1Úindenté   ©Úlmargin1Úlmargin2Ú
hangindentr   é<   Úvarz#88fÚregexpz#ba7Úmatchz#6a6é   é   gš™™™™™É?g{®Gáz”?g{®Gáz¤?é(   é   z#efeÚgrooveé   Úword)ÚwidthÚheightr[   ÚhighlightbackgroundÚhighlightthicknessÚreliefÚborderÚwrapz#555)	ro   rp   r[   rq   rW   rr   rs   rt   ru   éF   é
   z#eef)é   )	ro   rp   r[   rq   rr   rs   rt   ru   Útabsz#9bb)r[   rs   rt   Ú	helveticaiìÿÿÿ©ÚfamilyÚsizez#777é   )r[   ÚpadxÚpadyrt   i,  i  )r[   rq   rr   rs   rt   ro   rp   )r[   Úactivebackgroundrq   z#abaé   c                 óÞ   — t          j        dd|¦  «        }t          j        dd|¦  «        }t          j        dd|¦  «        }|                     ¦   «         }t          j        dd|¦  «        }|S )	Nú((\\.|[^#])*)(#.*)?ú\1z +ú z\n\s+z\nz	([^\\])\$z\1\\$)ÚreÚsubÚstrip)ÚselfÚgrammars     úL/var/www/piapp/venv/lib/python3.11/site-packages/nltk/app/chunkparser_app.pyÚnormalize_grammarz RegexpChunkApp.normalize_grammar4  sa   € å”&Ð/°¸Ñ@Ô@ˆå”&˜˜s GÑ,Ô,ˆÝ”&˜ 5¨'Ñ2Ô2ˆØ—-’-‘/”/ˆå”&˜ x°Ñ9Ô9ˆØˆó    r   NÚ ÚNPc                 ót  — || _         |€| j        }|| _        |€G|dk    rt          j        d¦  «        }n,|dk    rt          j        ¦   «         }nt          d|z  ¦  «        ‚d| _        	 || _        	 d| _	        	 d| _
        	 || _        	 || _        	 d| _        	 d| _        	 g | _        	 d| _        	 d| _        	 d| _        	 d| _        	 t)          |¬¦  «        | _        	 t-          ¦   «         x}| _        |                     d	¦  «         |                     d
¦  «         |                     d| j        ¦  «         t9          |¦  «        | _        | j                             d¦  «         |                      |¦  «         |                       |¦  «         |  !                    |¦  «         |  "                    |¦  «         | j#         $                    ¦   «          |r9| j#         %                    d|dz   ¦  «         | j#         &                    dd¦  «         |  '                    d¦  «         |  (                    ¦   «          dS )aù  
        :param devset_name: The name of the development set; used for
            display & for save files.  If either the name 'treebank'
            or the name 'conll2000' is used, and devset is None, then
            devset will be set automatically.
        :param devset: A list of chunked sentences
        :param grammar: The initial grammar to display.
        :param tagset: Dictionary from tags to string descriptions, used
            for the help page.  Defaults to ``self.TAGSET``.
        Nr   z	train.txtÚtreebankzUnknown development set %sr   éÿÿÿÿ©Úchunk_labelz+50+50zRegexp Chunk Parser Appz<Control-q>éd   Úendú
Úinsertú1.0))Ú_chunk_labelÚTAGSETÚtagsetr   Úchunked_sentsr   Ú
ValueErrorÚchunkerr‹   Únormalized_grammarÚgrammar_changedÚdevsetÚdevset_nameÚdevset_indexÚ_last_keypressÚ_historyÚ_history_indexÚ_eval_grammarÚ_eval_normalized_grammarÚ_eval_indexr   Ú_eval_scorer   ÚtopÚgeometryÚtitleÚbindÚdestroyr   Ú_devset_sizeÚsetÚ_init_fontsÚ_init_widgetsÚ_init_bindingsÚ_init_menubarÚ
grammarboxÚfocusr™   Úmark_setÚshow_devsetÚupdate)rŠ   r¤   r£   r‹   r•   r�   r­   s          rŒ   Ú__init__zRegexpChunkApp.__init__?  si  € ð$ (ˆÔàˆ>Ø”[ˆFØˆŒð ˆ>Ø˜kÒ)Ð)Ý"Ô0°Ñ=Ô=��Ø˜:Ò%Ð%Ý'Ô5Ñ7Ô7��å Ð!=ÀÑ!KÑLÔLÐLàˆŒØ7àˆŒØ)à"&ˆÔØ7à ˆÔØ;àˆŒØAà&ˆÔØ?àˆÔð	-ð  ˆÔØ=àˆŒð	8ð  ˆÔð	Ið "ˆÔð	ð )-ˆÔ%Ø5àˆÔð	5õ &°+Ð>Ñ>Ô>ˆÔð	:õ ™œÐˆˆdŒhØ�Š�XÑÔÐØ�	Š	Ð+Ñ,Ô,Ð,Ø�Š� ¤Ñ-Ô-Ð-õ # 3™KœKˆÔØÔ×Ò˜cÑ"Ô"Ð"ð 	×Ò˜ÑÔÐØ×Ò˜3ÑÔÐØ×Ò˜CÑ Ô Ð Ø×Ò˜3ÑÔÐØŒ×ÒÑÔÐð ð 	6ØŒO×"Ò" 5¨'°D©.Ñ9Ô9Ð9ØŒO×$Ò$ X¨uÑ5Ô5Ð5ð 	×Ò˜ÑÔÐØ�Š‰ŒˆˆˆrŽ   c                 óD  ‡ — |                      d‰ j        ¦  «         |                      d‰ j        ¦  «         |                      d‰ j        ¦  «         |                      d‰ j        ¦  «         |                      dˆ fd„¦  «         |                      dˆ fd„¦  «         ‰ j                              d‰ j        ¦  «         ‰ j                              d‰ j        ¦  «         ‰ j                              d‰ j        ¦  «         ‰ j                              d	‰ j        ¦  «         d S )
Nz<Control-n>z<Control-p>z<Control-t>z
<KeyPress>z<Control-s>c                 ó,   •— ‰                      ¦   «         S ©N)Úsave_grammar©ÚerŠ   s    €rŒ   ú<lambda>z/RegexpChunkApp._init_bindings.<locals>.<lambda>¯  ó   ø€ ¨$×*;Ò*;Ñ*=Ô*=€ rŽ   z<Control-o>c                 ó,   •— ‰                      ¦   «         S rÀ   )Úload_grammarrÂ   s    €rŒ   rÄ   z/RegexpChunkApp._init_bindings.<locals>.<lambda>°  rÅ   rŽ   z<Configure>)r°   Ú_devset_nextÚ_devset_prevÚtoggle_show_tracer¼   r¸   ÚevalboxÚ
_eval_plot©rŠ   r­   s   ` rŒ   r¶   zRegexpChunkApp._init_bindingsª  s  ø€ Ø�Š� Ô 1Ñ2Ô2Ð2Ø�Š� Ô 1Ñ2Ô2Ð2Ø�Š� Ô 6Ñ7Ô7Ð7Ø�Š�˜tœ{Ñ+Ô+Ð+Ø�Š�Ð =Ð =Ð =Ð =Ñ>Ô>Ð>Ø�Š�Ð =Ð =Ð =Ð =Ñ>Ô>Ð>ØŒ×Ò˜]¨DÔ,BÑCÔCÐCØŒ×Ò˜]¨DÔ,=Ñ>Ô>Ð>ØŒ×Ò˜]¨DÔ,=Ñ>Ô>Ð>ð 	Œ×Ò˜-¨¬Ñ9Ô9Ð9Ð9Ð9rŽ   c                 ó@  — t          |¦  «        | _        | j                             d¦  «         t          d| j                             ¦   «          ¬¦  «        | _        t          dt          | j                             ¦   «         dz  dz  ¦  «         ¬¦  «        | _        d S )Nr_   rz   r{   é   )r   Ú_sizer³   r   ÚgetÚ_fontÚintÚ
_smallfontrÍ   s     rŒ   r´   zRegexpChunkApp._init_fonts¸  s†   € å˜C‘[”[ˆŒ
ØŒ
�Š�rÑÔÐÝ °D´J·N²NÑ4DÔ4DÐ3DÐEÑEÔEˆŒ
ÝØ¥s¨4¬:¯>ª>Ñ+;Ô+;¸bÑ+@ÀBÑ+FÑ'GÔ'GÐ%Hð
ñ 
ô 
ˆŒˆˆrŽ   c                 óz  — t          |¦  «        }t          |d¬¦  «        }|                     dd| j        ¬¦  «         |                     ddd| j        ¬¦  «         |                     ddd	| j        ¬¦  «         |                     d
d| j        ¬¦  «         |                     dd| j        d¬¦  «         |                     dd|¬¦  «         t          |d¬¦  «        }|                     d| j	        dd| j
        ¬¦  «         |                     d| j	        dd| j
        ¬¦  «         |                     d| j	        dd| j
        ¬¦  «         |                     d| j	        dd| j
        ¬¦  «         |                     d| j	        dd| j
        ¬¦  «         |                     dd|¬¦  «         t          |d¬¦  «        }|                     d| j        d| j        ¬ ¦  «         |                     d!| j        d"| j        ¬ ¦  «         |                     d#| j        d$| j        ¬ ¦  «         |                     d%| j        d&| j        ¬ ¦  «         |                     d'd|¬¦  «         t          |d¬¦  «        }|                     d(d| j        ¬¦  «         |                     d)d|¬¦  «         |                     |¬*¦  «         d S )+Nr   )ÚtearoffzReset Application)Úlabelr\   ÚcommandzSave Current GrammarzCtrl-s)r×   r\   ÚacceleratorrØ   zLoad GrammarzCtrl-ozSave Grammar Historyé   ÚExitrh   zCtrl-q)r×   r\   rØ   rÙ   ÚFile)r×   r\   ÚmenuÚTinyrw   )r×   Úvariabler\   ÚvaluerØ   ÚSmallé   ÚMediumr_   ÚLargeé   ÚHugeé"   ÚViewz50 sentencesé2   )r×   rß   rà   rØ   z100 sentencesr–   z200 sentenceséÈ   z500 sentencesiô  zDevelopment-SetÚAboutrN   )rÝ   )r	   Úadd_commandÚresetrÁ   rÇ   Úsave_historyr±   Úadd_cascadeÚadd_radiobuttonrÐ   Úresizer²   Úset_devset_sizeÚaboutÚconfig)rŠ   ÚparentÚmenubarÚfilemenuÚviewmenuÚ
devsetmenuÚhelpmenus          rŒ   r·   zRegexpChunkApp._init_menubarÁ  s„  € Ý�v‘,”,ˆå˜¨Ð+Ñ+Ô+ˆØ×ÒÐ#6À!ÈTÌZÐÑXÔXÐXØ×ÒØ(ØØ ØÔ%ð	 	ñ 	
ô 	
ð 	
ð 	×ÒØ ØØ ØÔ%ð	 	ñ 	
ô 	
ð 	
ð 	×ÒØ(°BÀÔ@Qð 	ñ 	
ô 	
ð 	
ð 	×ÒØ A¨t¬|Èð 	ñ 	
ô 	
ð 	
ð 	×Ò &°A¸HÐÑEÔEÐEå˜¨Ð+Ñ+Ô+ˆØ× Ò ØØ”ZØØØ”Kð 	!ñ 	
ô 	
ð 	
ð 	× Ò ØØ”ZØØØ”Kð 	!ñ 	
ô 	
ð 	
ð 	× Ò ØØ”ZØØØ”Kð 	!ñ 	
ô 	
ð 	
ð 	× Ò ØØ”ZØØØ”Kð 	!ñ 	
ô 	
ð 	
ð 	× Ò ØØ”ZØØØ”Kð 	!ñ 	
ô 	
ð 	
ð 	×Ò &°A¸HÐÑEÔEÐEå˜'¨1Ð-Ñ-Ô-ˆ
Ø×"Ò"Ø ØÔ&ØØÔ(ð	 	#ñ 	
ô 	
ð 	
ð 	×"Ò"Ø!ØÔ&ØØÔ(ð	 	#ñ 	
ô 	
ð 	
ð 	×"Ò"Ø!ØÔ&ØØÔ(ð	 	#ñ 	
ô 	
ð 	
ð 	×"Ò"Ø!ØÔ&ØØÔ(ð	 	#ñ 	
ô 	
ð 	
ð 	×ÒÐ"3¸qÀzÐÑRÔRÐRå˜¨Ð+Ñ+Ô+ˆØ×Ò 7°aÀÄÐÑLÔLÐLØ×Ò &°A¸HÐÑEÔEÐEà�Š˜7ˆÑ#Ô#Ð#Ð#Ð#rŽ   c                 óf   — | j         r|                      ¦   «          n|                      ¦   «          dS )NÚbreak)Ú_showing_tracer»   Ú
show_trace©rŠ   rÃ   s     rŒ   rÊ   z RegexpChunkApp.toggle_show_trace#  s7   € ØÔð 	Ø×ÒÑÔÐÐà�OŠOÑÔÐØˆwrŽ   é   Fc                 óØ
  — |                      d| j                             ¦   «         ¦  «        }|                      d| j                             ¦   «         ¦  «        }| j                             d¦  «         | j                             d|dz  dz
  ddd¬	¦  «        }| j                             |¦  «        d         d
z   |dz
  }}| j                             |||z
  dz  z   |dz
  ddd¬¦  «        }d| j                             |¦  «        d         dz
  }	}| j        d         }
| j                             | j         	                    dd|dz
  d|
|
¬¦  «        ¦  «         | j                             | j         	                    d|	dz   dd|
|
¬¦  «        ¦  «         | j
                              ¦   «         rût          | j        ¦  «        dk    rãdx}}dx}}t          dt          t          | j        ¦  «        | j        dz   ¦  «        ¦  «        D ]U}| j        |          \  }}}}t          ||¦  «        }t          ||¦  «        }t!          ||¦  «        }t!          ||¦  «        }ŒVt!          |dz
  d¦  «        }t!          |dz
  d¦  «        }t          |dz   d¦  «        }t          |dz   d¦  «        }ndx}}dx}}t          d¦  «        D ]Ž}|||z
  |dz  |z
  ||z
  z  z  z   }|	|	|z
  |dz  |z
  ||z
  z  z  z
  }||cxk     r|k     r"n n| j                             ||||	d¬¦  «         ||cxk     r|	k     r"n Œo| j                             ||||d¬¦  «         Œ�| j                             ||||	¦  «         | j                             ||	||	¦  «         | j                             |dz
  |	dddd|z  z  ¬	¦  «         | j                             |dz
  |dddd|z  z  ¬	¦  «         | j                             ||	dz   dddd|z  z  ¬	¦  «         | j                             ||	dz   dddd|z  z  ¬	¦  «         d x}}t%          | j        ¦  «        D �]'\  }\  }}}}|||z
  ||z
  ||z
  z  z  z   }|	|	|z
  ||z
  ||z
  z  z  z
  }|| j        k    rO| j                             |dz
  |dz
  |dz   |dz   d d!¬¦  «         d"|dz  z  d#|dz  z  z   d$|dz  z  z   | j        d%<   nD| j                             | j                             |dz
  |dz
  |dz   |dz   d&d'¬¦  «        ¦  «         |�P| j                              ¦   «         r7| j                             | j                             ||||d'¬¦  «        ¦  «         ||}}�Œ)d S )(Nro   rp   Úallrw   rm   ÚleftÚwÚ	Precision)ÚjustifyÚanchorÚtextr   ÚsÚRecallÚcenter)r  r  r  rh   r[   r   iˆ  )ÚfillÚoutlineg{®Gáz„?é   g      $@z#888)r  r~   ÚrightÚsez%d%%r–   ÚneÚnwz#0f0z#000zPrecision: %.2f%%	zRecall: %.2f%%	zF-score: %.2f%%r  ú#afaz#8c8)rÑ   rË   Úwinfo_widthÚwinfo_heightÚdeleteÚcreate_textÚbboxÚ_EVALBOX_PARAMSÚlowerÚcreate_rectangleÚ
_autoscaleÚlenr§   ÚrangeÚminÚ_SCALE_NÚmaxÚcreate_lineÚ	enumerater¨   Úcreate_ovalÚstatusÚ_eval_lines)rŠ   rÃ   rô   ro   rp   Útagr  r  r­   ÚbotÚbgÚmax_precisionÚ
max_recallÚmin_precisionÚ
min_recallÚir‹   Ú	precisionÚrecallÚfmeasureÚxÚyÚprev_xÚprev_yÚ_Úfscores                             rŒ   rÌ   zRegexpChunkApp._eval_plot-  sÆ  € Ø—
’
˜7 D¤L×$<Ò$<Ñ$>Ô$>Ñ?Ô?ˆØ—’˜H d¤l×&?Ò&?Ñ&AÔ&AÑBÔBˆð 	Œ×Ò˜EÑ"Ô"Ð"ð Œl×&Ò&Ø�˜!‘˜bÑ ¨&¸À;ð 'ñ 
ô 
ˆð ”l×'Ò'¨Ñ,Ô,¨QÔ/°!Ñ3°U¸R±ZˆeˆØŒl×&Ò&Ø�E˜D‘L QÑ&Ñ&Ø�R‰KØØØð 'ñ 
ô 
ˆð �t”|×(Ò(¨Ñ-Ô-¨aÔ0°2Ñ5ˆSˆð Ô! ,Ô/ˆØŒ×ÒØŒL×)Ò)¨!¨Q°°q±¸$ÀRÐQSÐ)ÑTÔTñ	
ô 	
ð 	
ð 	Œ×ÒØŒL×)Ò)¨!¨S°1©W°d¸DÀrÐSUÐ)ÑVÔVñ	
ô 	
ð 	
ð
 Œ?×ÒÑ Ô ð 	+¥S¨¬Ñ%7Ô%7¸!Ò%;Ð%;Ø)*Ð*ˆM˜JØ)*Ð*ˆM˜JÝ˜1�c¥# d¤mÑ"4Ô"4°d´mÀaÑ6GÑHÔHÑIÔIð 5ð 5�Ø7;´}ÀaÀRÔ7HÑ4�˜ F¨HÝ # I¨}Ñ =Ô =�Ý  ¨Ñ4Ô4�
Ý # I¨}Ñ =Ô =�Ý  ¨Ñ4Ô4�
�
õ   °Ñ 4°aÑ8Ô8ˆMÝ˜Z¨$Ñ.°Ñ2Ô2ˆJÝ °Ñ 4°aÑ8Ô8ˆMÝ˜Z¨$Ñ.°Ñ2Ô2ˆJˆJà)*Ð*ˆM˜JØ)*Ð*ˆM˜Jõ �r‘”ð 
	Ið 
	IˆAØ˜ ™Ø�T‘˜JÑ&¨:¸
Ñ+BÑCññ ˆAð �s˜S‘yØ�T‘˜MÑ)¨m¸mÑ.KÑLññ ˆAð �aÐÐÒÐ˜%ÒÐÐÐÐØ”×(Ò(¨¨C°°C¸fÐ(ÑEÔEÐEØ�Qˆ}ˆ}Š}ˆ}˜Š}ˆ}ˆ}ˆ}ˆ}Ø”×(Ò(¨¨q°%¸ÀÐ(ÑHÔHÐHøØŒ× Ò   s¨D°#Ñ6Ô6Ð6ØŒ× Ò   s¨E°3Ñ7Ô7Ð7ð 	Œ× Ò Ø�1‰HØØØØ˜3 Ñ.Ñ/ð 	!ñ 	
ô 	
ð 	
ð 	Œ× Ò Ø�1‰HØØØØ˜3 Ñ.Ñ/ð 	!ñ 	
ô 	
ð 	
ð 	Œ× Ò ØØ�!‰GØØØ˜3 Ñ+Ñ,ð 	!ñ 	
ô 	
ð 	
ð 	Œ× Ò ØØ�!‰GØØØ˜3 Ñ+Ñ,ð 	!ñ 	
ô 	
ð 	
ð Ðˆ�Ý1:¸4¼=Ñ1IÔ1Ið 	"ñ 	"Ñ-ˆAÑ-��9˜f fØ˜ ™Ø˜*Ñ$¨°jÑ)@ÑAññ ˆAð �s˜S‘yØ˜]Ñ*¨}¸}Ñ/LÑMññ ˆAð �DÔ'Ò'Ð'Ø”×(Ò(Ø˜‘E˜1˜q™5 ! a¡%¨¨Q©°VÀVð )ñ ô ð ð *¨Y¸©_Ñ=Ø(¨F°S©LÑ9ñ:à'¨6°C©<Ñ8ñ9ð ”˜FÑ#Ð#ð ”×"Ò"Ø”L×,Ò,Ø˜A™˜q 1™u a¨!¡e¨Q°©U¸Èð -ñ ô ñô ð ð
 Ð! dÔ&6×&:Ò&:Ñ&<Ô&<Ð!Ø”×"Ò"Ø”L×,Ò,¨V°V¸QÀÈÐ,ÑOÔOñô ð ð  �FˆF‰Fð5	"ð 	"rŽ   c                 ó4  — | j         €d S | j        €	d| _        d S t          j        ¦   «         }t          j        ¦   «         | j        z
  | j        k     rL| j        | j        k    r<d| _        | j                              t          | j
        dz  ¦  «        | j        ¦  «        S | j        | j        k    rÅ| j        D ]„\  }}}}| j        |                      |¦  «        k    r_| j                             ||||f¦  «         t          | j        ¦  «        dz
  | _        |                      ¦   «          d| _        d | _         d S Œ…d| _        t'          | j        ¬¦  «        | _        | j        | _        | j        | _        | j                             ¦   «         dk    r	d| _        d S | j        | j        t5          | j        | j        z   | j                             ¦   «         ¦  «        …         D ]D}|                      |                     ¦   «         ¦  «        }| j                              ||¦  «         ŒE| xj        | j        z  c_        | j        | j                             ¦   «         k    r¨| j                             | j        | j         !                    ¦   «         | j         "                    ¦   «         | j         #                    ¦   «         f¦  «         t          | j        ¦  «        dz
  | _        |                      ¦   «          d| _        d | _        d S d| j        z  | j                             ¦   «         z  }d	|z  | j$        d
<   d| _        |  %                    t          j        ¦   «         |z
  ¦  «         | j                              t          | j
        dz  ¦  «        | j        ¦  «         d S )NFTiè  rh   r   r”   r�   r–   z$Evaluating on Development Set (%d%%)r  )&r­   r    Ú_eval_demon_runningÚtimer¦   Ú_EVAL_DELAYr¡   rª   ÚafterrÓ   Ú
_EVAL_FREQÚ_eval_demonr§   r�   Úappendr  r¨   rÌ   r«   r   r›   r¬   r‹   r©   r‰   r£   r  Ú_EVAL_CHUNKr²   rÑ   Ú_chunkparseÚleavesÚscorer/  r0  Ú	f_measurer%  Ú_adaptively_modify_eval_chunk)	rŠ   Út0ÚgÚpÚrÚfÚgoldÚguessÚprogresss	            rŒ   r>  zRegexpChunkApp._eval_demon¶  sz  € ØŒ8ÐØˆFØŒ<ÐØ',ˆDÔ$ØˆFõ ŒY‰[Œ[ˆõ ŒI‰KŒK˜$Ô-Ñ-°Ô0@Ò@Ð@ØÔ'¨4Ô+HÒHÐHà'+ˆDÔ$Ø”8—>’>¥# d¤o¸Ñ&<Ñ"=Ô"=¸tÔ?OÑPÔPÐPð Ô" dÔ&CÒCÐCð !%¤ð ð ‘��A�q˜!ØÔ*¨d×.DÒ.DÀQÑ.GÔ.GÒGÐGØ”M×(Ò(¨!¨Q°°1¨Ñ6Ô6Ð6Ý*-¨d¬mÑ*<Ô*<¸qÑ*@�DÔ'Ø—O’OÑ%Ô%Ð%Ø/4�DÔ,Ø48�DÔ1Ø�F�Fð Hð  !ˆDÔÝ)°dÔ6GÐHÑHÔHˆDÔØ!%¤ˆDÔØ,0Ô,CˆDÔ)ð Ô"×(Ò(Ñ*Ô*¨bÒ0Ð0à',ˆDÔ$ØˆFð ”KØÔ�sØÔ  4Ô#3Ñ3°TÔ5F×5JÒ5JÑ5LÔ5Lñ ô  ð ô
ð 	0ð 	0ˆDð
 ×$Ò$ T§[¢[¡]¤]Ñ3Ô3ˆEØÔ×"Ò" 4¨Ñ/Ô/Ð/Ð/ð 	ÐÔ˜DÔ,Ñ,ÐÔð Ô˜tÔ0×4Ò4Ñ6Ô6Ò6Ð6ØŒM× Ò àÔ&ØÔ$×.Ò.Ñ0Ô0ØÔ$×+Ò+Ñ-Ô-ØÔ$×.Ò.Ñ0Ô0ð	ñô ð õ #& d¤mÑ"4Ô"4°qÑ"8ˆDÔØ�OŠOÑÔÐØ',ˆDÔ$Ø,0ˆDÔ)Ð)Ð)à˜TÔ-Ñ-°Ô0A×0EÒ0EÑ0GÔ0GÑGˆHØ"HÈ8Ñ"SˆDŒK˜ÑØ'+ˆDÔ$Ø×.Ò.­t¬y©{¬{¸RÑ/?Ñ@Ô@Ð@ØŒH�NŠN�3˜tœ°Ñ5Ñ6Ô6¸Ô8HÑIÔIÐIÐIÐIrŽ   c           
      ó�  — || j         k    r]| j        dk    rRt          | j        dz
  t          t	          | j        | j         |z  z  ¦  «        | j        dz
  ¦  «        ¦  «        | _        dS || j        k     rRt          | j        dz   t          t	          | j        | j        |z  z  ¦  «        | j        dz   ¦  «        ¦  «        | _        dS dS )zÕ
        Modify _EVAL_CHUNK to try to keep the amount of time that the
        eval demon takes between _EVAL_DEMON_MIN and _EVAL_DEMON_MAX.

        :param t: The amount of time that the eval demon took.
        r   rh   rw   N)Ú_EVAL_DEMON_MAXr@  r  r!  rÓ   Ú_EVAL_DEMON_MIN)rŠ   Úts     rŒ   rE  z,RegexpChunkApp._adaptively_modify_eval_chunk  sã   € ð ˆtÔ#Ò#Ð#¨Ô(8¸1Ò(<Ð(<Ý"ØÔ  1Ñ$ÝÝ˜Ô(¨DÔ,@À1Ñ,DÑEÑFÔFØÔ$ rÑ)ñô ñ ô  ˆDÔÐÐð �Ô%Ò%Ð%Ý"ØÔ  1Ñ$ÝÝ˜Ô(¨DÔ,@À1Ñ,DÑEÑFÔFØÔ$ rÑ)ñô ñ ô  ˆDÔÐÐð &Ð%rŽ   c                 óÞ  ‡ — t          |fi ‰ j        ¤Ž}|                     dd¬¦  «         |                     dd¬¦  «         |                     dd¬¦  «         |                     dd¬¦  «         t	          |fd‰ j        i‰ j        ¤Ž‰ _        t          |‰ j        d	d
‰ j        d         ¬¦  «        ‰ _	        ‰ j	         
                    ddd¬¦  «         ‰ j         
                    ddd¬¦  «         t          |‰ j        j        ¬¦  «        }| 
                    ddd¬¦  «         ‰ j                             |j        ¬¦  «         ‰ j        d         }t          ||¬¦  «        }| 
                    ddd¬¦  «         t          |fd‰ j        dœ‰ j        ¤Ž                     d¬¦  «         t          |fd‰ j        dœ‰ j        ¤Ž                     d¬¦  «         t	          |fd‰ j        i‰ j        ¤Ž‰ _        ‰ j         
                    ddd¬¦  «         i ‰ _        ‰ j        d         }t          ||¬¦  «        }| 
                    ddd¬¦  «         t1          ‰ j        ¦  «        D ]“\  }\  }}	}
t          ||‰ j        ¬¦  «        }| 
                    |dz  dd¬¦  «         |                     d|fˆ fd„	¦  «         |‰ j        |<   t          |d‰ j        |¬¦  «         
                    |dz  dz   d¬¦  «         Œ”‰ j        ‰ j        d         d                                       ‰ j        ¬ ¦  «         ‰ j                             d!d"¬#¦  «         ‰ j        D ]\  }} ‰ j        j        d$|z  fi |¤Ž Œ‰                      ‰ j        d         d         ¦  «         t          |‰ j        j        ¬¦  «        }‰ j                             |j        ¬¦  «         | 
                    ddd¬¦  «         t          |‰ j        d         ¬¦  «        }t	          |fd‰ j        i‰ j         ¤Ž‰ _!        ‰ j!                             d"d%¬&¦  «         t          |‰ j        d'd(‰ j         d         ¬)¦  «        ‰ _"        ‰ j"         
                    ddd¬¦  «         | 
                    ddd¬¦  «         t          |‰ j#        ¬¦  «        ‰ _$        ‰ j$         
                    ddd¬¦  «         t          |‰ j!        j%        d*¬+¦  «        ‰ _&        ‰ j&        j        ‰ j!        d,<   ‰ j&                             d-d.¬/¦  «         ‰ j        d         }t          ||¬¦  «        }| 
                    dd0d¬¦  «         t          |fd1‰ j'        dœ‰ j        ¤Ž                     d¬¦  «         t          |fd2‰ j(        dœ‰ j        ¤Ž                     d¬¦  «         t          |fd3‰ j)        d4d5œ‰ j        ¤Ž‰ _*        ‰ j*                             d(¬¦  «         t          |fd6‰ j+        dœ‰ j        ¤Ž‰ _,        ‰ j,                             d(¬¦  «         t[          |fi ‰ j.        ¤Ž‰ _/        t          |‰ j        d7d(‰ j.        d         ¬)¦  «        }| 
                    ddd¬¦  «         ‰ j/         
                    dddd¬8¦  «         ‰ j        d         }t          ||¬¦  «        }| 
                    dd0d¬¦  «         ta          ‰ j1        ¦  «        ‰ _2        ‰ j2                             d9¦  «         tg          |f‰ j2        ‰ j4        d:d;œ‰ j        ¤Ž                     d¬¦  «         ta          ‰ j1        ¦  «        ‰ _5        ‰ j5                             d9¦  «         tg          |f‰ j5        ‰ j4        d<d;œ‰ j        ¤Ž                     d¬¦  «         t          |fd=d>i‰ j        ¤Ž                     d(¬¦  «         t          |fd‰ j        i‰ j6        ¤Ž‰ _7        ‰ j7         
                    dd?d@ddd¬A¦  «         d4‰ j        dB<   d4‰ j!        dB<   ‰ j        d         }t          |dCd|¬¦  «         
                    dd¬¦  «         t          |ddC|¬¦  «         
                    dd¬¦  «         t          |dDd|¬¦  «         
                    ddE¬¦  «         |                     d%d"¬F¦  «         ‰ j!                             dGdHdI¬J¦  «         ‰ j!                             dKdIdL¬M¦  «         ‰ j!                             dNdO¬¦  «         ‰ j!                             dPdQdR¬S¦  «         ‰ j!                             dTdUdR¬V¦  «         ‰ j!                             dWdL¬X¦  «         ‰ j                             dWdY¬¦  «         ‰ j                             dZd[¬X¦  «         ‰ j                             d\d]¬X¦  «         ‰ j                             d^d_¬X¦  «         ‰ j                             d`dda¬b¦  «         d S )cNr   é   )Úweightr~   rm   rh   r   ÚfontúGrammar:Úblackr[   )rU  r  Úhighlightcolorr[   ÚSW)ÚcolumnÚrowÚstickyÚNEWS)rØ   ÚNWS)ÚyscrollcommandrZ   ÚEWzPrev Grammar)r  rØ   r  )ÚsidezNext Grammar)r  rU  ÚSz<ButtonPress>c                 ó.   •— ‰                      |¦  «        S rÀ   )Ú	show_help)rÃ   ÚtabrŠ   s     €rŒ   rÄ   z.RegexpChunkApp._init_widgets.<locals>.<lambda>N  s   ø€ ¸4¿>º>È#Ñ;NÔ;N€ rŽ   )rp   ro   r[   )rZ  r[  )rU  ÚelideT)rf  útag-%sÚboth)Úexpandr  zDevelopment Set:r  )rU  r  r  r[   Úhoriz)rØ   ÚorientÚxscrollcommandÚbottomr2  )ra  r  é   zPrev Example (Ctrl-p)zNext Example (Ctrl-n)zShow exampleÚdisabled)r  rØ   Ústatez
Show tracezEvaluation:)rZ  r[  r\  Ú
columnspanFÚZoom)rß   rØ   r  ÚLinesr  ÚHistoryé	   ÚNEW)rZ  r[  r\  r   r€   rq  rp  rw   r‚   é   )r  ri  útrue-posr  ÚTrue)r[   r\   ú	false-negz#800)r\   rW   ú	false-posz#faaÚtracez#666Únone)rW   ru   Ú
wrapindentrx   )rb   ru   ÚerrorrV   z#fecÚcommentz#840Úanglez#00fÚbracez#0a0rc   rj   r`   )8r   Ú_FRAME_PARAMSÚgrid_columnconfigureÚgrid_rowconfigurer   rÒ   Ú_GRAMMARBOX_PARAMSr¸   r   ÚgrammarlabelÚgridr
   Úyviewrô   r³   r   Ú_history_prevÚ_BUTTON_PARAMSÚpackÚ_history_nextrÔ   Ú_HELPBOX_PARAMSÚhelpboxÚhelptabsr#  ÚHELPr°   Ú_HELPTAB_SPACERÚ	configureÚ
tag_configÚHELP_AUTOTAGrd  Ú_DEVSETBOX_PARAMSÚ	devsetboxÚdevsetlabelÚ_devset_scrollÚdevset_scrollÚxviewÚdevset_xscrollrÉ   rÈ   r»   Údevset_buttonrþ   Útrace_buttonr   r  rË   r   r­   r  r   rÌ   r&  Ú_STATUS_PARAMSr%  )rŠ   r­   Úframe0Úgrammar_scrollbarr)  Úframe3Úhelptab_framer.  re  Útabstopsr  r×   r'  ÚparamsÚhelp_scrollbarÚframe4Úframe1Úframe2s   `                 rŒ   rµ   zRegexpChunkApp._init_widgets  s  ø€ Ý�sÐ1Ð1˜dÔ0Ð1Ð1ˆØ×#Ò# A¨aÐ#Ñ0Ô0Ð0Ø×#Ò# A¨aÐ#Ñ0Ô0Ð0Ø× Ò  ¨1Ð Ñ-Ô-Ð-Ø× Ò  ¨1Ð Ñ-Ô-Ð-õ ˜vÐRÐR¨D¬JÐR¸$Ô:QÐRÐRˆŒÝ!ØØ”ØØ"ØÔ.¨|Ô<ð
ñ 
ô 
ˆÔð 	Ô×Ò a¨Q°tÐÑ<Ô<Ð<ØŒ×Ò A¨1°VÐÑ<Ô<Ð<õ & f°d´oÔ6KÐLÑLÔLÐØ×Ò a¨Q°uÐÑ=Ô=Ð=ØŒ×ÒÐ.?Ô.CÐÑDÔDÐDð Ô Ô-ˆÝ�v¨"Ð-Ñ-Ô-ˆØ�Š˜1 !¨DˆÑ1Ô1Ð1ÝØð	
àØÔ&ð	
ð 	
ð Ô!ð		
ð 	
÷
 Š$�Fˆ$Ñ
Ô
Ð
ÝØð	
àØÔ&ð	
ð 	
ð Ô!ð		
ð 	
÷
 Š$�Fˆ$Ñ
Ô
Ð
õ ˜FÐQÐQ¨¬ÐQ¸DÔ<PÐQÐQˆŒØŒ×Ò ¨°&ÐÑ9Ô9Ð9ØˆŒØÔ Ô-ˆÝ˜f°Ð4Ñ4Ô4ˆØ×Ò !¨°4ÐÑ8Ô8Ð8Ý(1°$´)Ñ(<Ô(<ð 		,ð 		,Ñ$ˆAÑ$��X˜tÝ˜-¨c¸¼ÐHÑHÔHˆEØ�JŠJ˜a !™e¨°3ˆJÑ7Ô7Ð7ð �JŠJ�°cÐ(NÐ(NÐ(NÐ(NÐ(NÑOÔOÐOØ!&ˆDŒM˜#ÑÝØ a¨tÔ/CÐPRðñ ô çŠd˜!˜a™% !™)¨ˆdÑ+Ô+Ð+Ð+ØŒ�d”i ”l 1”oÔ&×0Ò0°d´jÐ0ÑAÔAÐAØŒ×Ò ¨tÐÑ4Ô4Ð4Ø!Ô.ð 	>ð 	>‰MˆS�&Ø#ˆDŒLÔ# H¨s¡NÐ=Ð=°fÐ=Ð=Ð=Ð=Ø�Š�t”y ”| A”Ñ'Ô'Ð'õ # 6°4´<Ô3EÐFÑFÔFˆØŒ×Ò¨>Ô+=ÐÑ>Ô>Ð>Ø×Ò 1¨!°EÐÑ:Ô:Ð:õ �v¨$Ô*<¸\Ô*JÐKÑKÔKˆÝ˜fÐPÐP¨4¬:ÐP¸Ô9OÐPÐPˆŒØŒ×Ò 4¨fÐÑ5Ô5Ð5Ý ØØ”Ø#ØØÔ-¨lÔ;ð
ñ 
ô 
ˆÔð 	Ô×Ò Q¨A°dÐÑ;Ô;Ð;Ø�Š˜1 !¨FˆÑ3Ô3Ð3õ ' v°tÔ7JÐKÑKÔKˆÔØÔ×Ò q¨a¸ÐÑ>Ô>Ð>Ý'Ø˜DœNÔ0¸ð
ñ 
ô 
ˆÔð ,0Ô+>Ô+BˆŒÐ'Ñ(ØÔ× Ò  h°SÐ Ñ9Ô9Ð9ð Ô Ô-ˆÝ�v¨"Ð-Ñ-Ô-ˆØ�Š˜1 !¨DˆÑ1Ô1Ð1ÝØð	
à(ØÔ%ð	
ð 	
ð Ô!ð		
ð 	
÷
 Š$�Fˆ$Ñ
Ô
Ð
ÝØð	
à(ØÔ%ð	
ð 	
ð Ô!ð		
ð 	
÷
 Š$�Fˆ$Ñ
Ô
Ð
Ý#Øð
àØÔ$Øð	
ð 
ð
 Ô!ð
ð 
ˆÔð 	Ô×Ò WÐÑ-Ô-Ð-Ý"Øð
Ø%¨t¬ð
ð 
ØBFÔBUð
ð 
ˆÔð 	Ô×Ò GÐÑ,Ô,Ð,õ ˜fÐ=Ð=¨Ô(<Ð=Ð=ˆŒÝØØ”ØØØÔ+¨LÔ9ð
ñ 
ô 
ˆð 	�
Š
˜! ¨4ˆ
Ñ0Ô0Ð0ØŒ×Ò ¨°&ÀQÐÑGÔGÐGð Ô Ô-ˆÝ�v¨"Ð-Ñ-Ô-ˆØ�Š˜1 !¨DˆÑ1Ô1Ð1Ý  ¤Ñ*Ô*ˆŒØŒ×Ò˜EÑ"Ô"Ð"ÝØð	
à”_Ø”OØð		
ð 	
ð
 Ô!ð	
ð 	
÷ Š$�Fˆ$Ñ
Ô
Ð
Ý! $¤(Ñ+Ô+ˆÔØÔ×Ò˜UÑ#Ô#Ð#ÝØð	
àÔ%Ø”OØð		
ð 	
ð
 Ô!ð	
ð 	
÷ Š$�Fˆ$Ñ
Ô
Ð
ÝˆvÐ=Ð=˜IÐ=¨Ô)<Ð=Ð=×BÒBÈÐBÑPÔPÐPõ ˜FÐKÐK¨¬ÐK°tÔ7JÐKÐKˆŒØŒ×Ò  q°¸QÀQÐSTÐÑUÔUÐUð !+ˆŒ�WÑØ",ˆŒ�wÑð Ô Ô-ˆÝˆf˜R q°RÐ8Ñ8Ô8×=Ò=ÀQÈAÐ=ÑNÔNÐNÝˆf˜Q b°RÐ8Ñ8Ô8×=Ò=ÀQÈAÐ=ÑNÔNÐNÝˆf˜Q a°BÐ7Ñ7Ô7×<Ò<ÀAÈ1Ð<ÑMÔMÐMð 	�Š˜¨ˆÑ-Ô-Ð-ð 	Œ×!Ò! *¸È6Ð!ÑRÔRÐRØŒ×!Ò! +¸ÈFÐ!ÑSÔSÐSØŒ×!Ò! +¸&Ð!ÑAÔAÐAØŒ×!Ò! '°fÀ6Ð!ÑJÔJÐJØŒ×!Ò! ,¸À&Ð!ÑIÔIÐIØŒ×!Ò! '°fÐ!Ñ=Ô=Ð=ð 	Œ×"Ò" 7°vÐ"Ñ>Ô>Ð>ØŒ×"Ò" 9¸Ð"Ñ@Ô@Ð@ØŒ×"Ò" 7°vÐ"Ñ>Ô>Ð>ØŒ×"Ò" 7°vÐ"Ñ>Ô>Ð>ØŒ×"Ò" <¸!ÀbÐ"ÑIÔIÐIÐIÐIrŽ   c                 óL  ‡— d| _         d| j        d<   d| j        d<   d| j        d<   | j                             dd¦  «         d| j        dz   | j                             ¦   «         fz  | j        d	<   | j	        €9| j         
                    dd
¦  «         | j                             ddd¦  «         d S | j        | j                 }| j	                             ¦   «         }d}dgŠt          |                     ¦   «         ¦  «        D ]2\  }\  }}|d|z  z  }‰                     t#          |¦  «        ¦  «         Œ3ˆfd„t%          t#          |¦  «        dz   ¦  «        D ¦   «         | _        d„ t%          t#          |¦  «        dz   ¦  «        D ¦   «         | _        t%          t#          |¦  «        dz   ¦  «        D �]“}|dk    r8| j         
                    dd¦  «         | j                             ddd¦  «         nC| j         
                    dd||dz
           z  ¦  «         | j                             ddd¦  «         | j         
                    d|dz   ¦  «         | j                             ddd¦  «         t+          |d |…         ¦  «        }	|                      |                     ¦   «         ¦  «        }
|                      |¦  «        }|                      |
¦  «        }|                     |¦  «        D ]}|                      ||d¦  «         Œ||z
  D ]}|                      ||d¦  «         Œ||z
  D ]}|                      ||d¦  «         Œ�Œ•| j         
                    dd¦  «         | j                             ddd¦  «         | j                             d| j        j        dd¦  «         d S )NTro  rp  Únormalrš   r—   úDevelopment Set (%d/%d)rh   r  z#Trace: waiting for a valid grammar.r  ú	z%s c                 ód   •— i | ],}t          t          ‰¦  «        ¦  «        D ]}||f‰|         “ŒŒ-S © )r  r  )Ú.0r.  ÚjÚcharnums      €rŒ   ú
<dictcomp>z-RegexpChunkApp.show_trace.<locals>.<dictcomp>ò  sX   ø€ ð 
ð 
ð 
àÝ�3˜w™<œ<Ñ(Ô(ð
ð 
ð ð �ˆF�G˜A”Jð
ð 
ð 
ð 
rŽ   c                 ó    — i | ]}||d z  d z   “ŒS )rm   r¯  )r°  r.  s     rŒ   r³  z-RegexpChunkApp.show_trace.<locals>.<dictcomp>÷  s"   € ÐDÐDÐD¨˜˜1˜q™5 1™9ÐDÐDÐDrŽ   r   zStart:
r|  zend -2c linestartzend -2cz
Apply %s:
r˜   r~  rx  rz  r{  z
Finished.
r–   g333333Ó?)rý   rž  r�  r—  r  r¥   r²   rÑ   r˜  r    r™   Útag_addr£   Úrulesr#  rB  r?  r  r  r²  Úlinenumr   rA  Ú_chunksÚintersectionÚ_color_chunkr­   r<  rœ  r³   )rŠ   rÃ   Ú	gold_treer¶  ÚtagseqÚwordnumrn   Úposr.  r    Ú	test_treeÚgold_chunksÚtest_chunksÚchunkr²  s                 @rŒ   rþ   zRegexpChunkApp.show_traceØ  sÊ  ø€ Ø"ˆÔØ%/ˆÔ˜'Ñ"Ø&.ˆÔ˜7Ñ#à"*ˆŒ�wÑàŒ×Ò˜e UÑ+Ô+Ð+Ø#<ØÔ Ñ" DÔ$5×$9Ò$9Ñ$;Ô$;Ð<ñ$
ˆÔ˜Ñ ð Œ<ÐØŒN×!Ò! %Ð)NÑOÔOÐOØŒN×"Ò" 7¨E°5Ñ9Ô9Ð9ØˆFà”K Ô 1Ô2ˆ	Ø”×"Ò"Ñ$Ô$ˆð ˆØ�#ˆÝ$-¨i×.>Ò.>Ñ.@Ô.@Ñ$AÔ$Að 	(ð 	(Ñ ˆG‘[�d˜CØ�e˜c‘kÑ!ˆFØ�NŠN�3˜v™;œ;Ñ'Ô'Ð'Ð'ð
ð 
ð 
ð 
å�3˜u™:œ:¨™>Ñ*Ô*ð
ñ 
ô 
ˆŒð
 EÐD­eµC¸±J´JÀ±NÑ.CÔ.CÐDÑDÔDˆŒå•s˜5‘z”z A‘~Ñ&Ô&ð 	9ñ 	9ˆAØ�AŠvˆvØ”×%Ò% e¨ZÑ8Ô8Ð8Ø”×&Ò& wÐ0CÀYÑOÔOÐOÐOà”×%Ò% e¨]¸UÀ1ÀqÁ5¼\Ñ-IÑJÔJÐJØ”×&Ò& wÐ0CÀYÑOÔOÐOàŒN×!Ò! %¨°$©Ñ7Ô7Ð7ØŒN×"Ò" <Ð1DÀiÑPÔPÐPå'¨¨b¨q¨b¬	Ñ2Ô2ˆGØ×(Ò(¨×)9Ò)9Ñ);Ô);Ñ<Ô<ˆIØŸ,š, yÑ1Ô1ˆKØŸ,š, yÑ1Ô1ˆKà$×1Ò1°+Ñ>Ô>ð 8ð 8�Ø×!Ò! ! U¨JÑ7Ô7Ð7Ð7Ø$ {Ñ2ð 9ð 9�Ø×!Ò! ! U¨KÑ8Ô8Ð8Ð8Ø$ {Ñ2ð 9ð 9�Ø×!Ò! ! U¨KÑ8Ô8Ð8Ð8ñ9àŒ×Ò˜e ]Ñ3Ô3Ð3ØŒ×Ò˜wÐ(;¸YÑGÔGÐGð
 	Œ�Š�s˜DÔ/Ô3°Q¸Ñ<Ô<Ð<Ð<Ð<rŽ   c                 ód  — d| j         d<   | j                              dd¦  «         | j        D �]÷\  }}}||k    �rÌ|                     dd                     d„ t          t          | j                             ¦   «         ¦  «        d„ ¬	¦  «        D ¦   «         ¦  «        ¦  «        } | j	        |         j
        di | j        ¤Ž | j          
                    |¬
¦  «         | j                              d|dz   ¦  «         d}| j        D �]\  }}d|› d|› d�}t          j        ||¦  «        D ]Ý}	| j                              d||	                     d¦  «        z  ||	                     d¦  «        z  ¦  «         | j                              d|z  ||	                     d¦  «        z  ||	                     d¦  «        z  ¦  «         | j                              d||	                     d¦  «        z  ||	                     d¦  «        z  ¦  «         ŒÞ�Œ�ŒÚ | j	        |         j
        di | j        ¤Ž �Œùd| j         d<   d S )Nr«  rp  rš   r—   z
<<TAGSET>>r˜   c              3   ó    K  — | ]	}d |z  V — Œ
dS )z	%s	%sNr¯  )r°  Úitems     rŒ   ú	<genexpr>z+RegexpChunkApp.show_help.<locals>.<genexpr>  s;   è è € ð ð à ð # TÑ)ðð ð ð ð ð rŽ   c                 ó`   — t          j        d| d         ¦  «        r
d| d         fp	d| d         fS )Nz\w+r   rh   )r‡   rg   )Út_ws    rŒ   rÄ   z*RegexpChunkApp.show_help.<locals>.<lambda>"  s9   € ­B¬H°V¸SÀ¼VÑ,DÔ,Dð -,Ø!" C¨¤F ð-+à ! 3 q¤6˜{ð rŽ   )Úkey)ry   z



















z1.0 + %d charsz(?s)(<z
>)(.*?)(</z>)rf  rh   rg  rm   r~   ro  r¯  )r�  r  r‘  ÚreplaceÚjoinÚsortedÚlistr�   Úitemsr�  rô   Ú_HELPTAB_FG_PARAMSr™   r•  r‡   Úfinditerrµ  Ústartr—   Ú_HELPTAB_BG_PARAMS)
rŠ   re  Únamer¤  r  ÚCr'  r¥  ÚpatternÚms
             rŒ   rd  zRegexpChunkApp.show_help  se  € Ø (ˆŒ�WÑØŒ×Ò˜E 5Ñ)Ô)Ð)Ø&*¤ið 	Fñ 	FÑ"ˆT�8˜TØ�sŠ{‰{Ø—|’|Ø Ø—I’Ið ð å$*Ý  ¤×!2Ò!2Ñ!4Ô!4Ñ5Ô5ð!+ð !+ð%ñ %ô %ðñ ô ñ ô ñô �ð +�”˜dÔ#Ô*ÐEÐE¨TÔ-DÐEÐEÐEØ”×#Ò#¨Ð#Ñ2Ô2Ð2Ø”×#Ò# E¨4°)Ñ+;Ñ<Ô<Ð<Ø$�Ø%)Ô%6ð Tñ T‘M�S˜&Ø= sÐ=Ð=°cÐ=Ð=Ð=�GÝœ[¨°$Ñ7Ô7ð Tð T˜Øœ×,Ò,¨W°a¸!¿'º'À!¹*¼*±nÀaÈ!Ï%Ê%ÐPQÉ(Ì(ÁlÑSÔSÐSØœ×,Ò,Ø$ s™N¨A°·²¸±
´
©N¸AÀÇÂÀaÁÄ¹Lñô ð ð œ×,Ò,¨W°a¸!¿'º'À!¹*¼*±nÀaÈ!Ï%Ê%ÐPQÉ(Ì(ÁlÑSÔSÐSÐSñTñTð +�”˜dÔ#Ô*ÐEÐE¨TÔ-DÐEÐEÐEÑEØ *ˆŒ�WÑÐÐrŽ   c                 ó@   — |                       | j        dz
  ¦  «         dS ©Nrh   rü   ©Ú_view_historyr¨   rÿ   s     rŒ   rŠ  zRegexpChunkApp._history_prev9  ó#   € Ø×Ò˜4Ô.°Ñ2Ñ3Ô3Ð3ØˆwrŽ   c                 ó@   — |                       | j        dz   ¦  «         dS rØ  rÙ  rÿ   s     rŒ   r�  zRegexpChunkApp._history_next=  rÛ  rŽ   c                 óò  — t          dt          t          | j        ¦  «        dz
  |¦  «        ¦  «        }| j        sd S || j        k    rd S d| j        d<   | j                             dd¦  «         | j                             d| j        |         d         ¦  «         | j                             dd¦  «         || _        |  	                    | j        |         d         ¦  «         |  
                    | j        |         d         ¦  «        | _        | j        r%d„ | j                             d	¦  «        D ¦   «         }ng }t          |¦  «        | _        |                      ¦   «          |                      ¦   «          | j        r|                      ¦   «          | j        t          | j        ¦  «        dz
  k     r:d
                     | j        dz   t          | j        ¦  «        ¦  «        | j        d<   d S d| j        d<   d S )Nr   rh   r«  rp  rš   r—   r™   c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r¯  ©r   Ú
fromstring©r°  Úlines     rŒ   ú
<listcomp>z0RegexpChunkApp._view_history.<locals>.<listcomp>T  s3   € ð ð ð àõ  Ô*¨4Ñ0Ô0ðð ð rŽ   r˜   zGrammar {}/{}:r  rV  )r!  r  r  r§   r¨   r¸   r  r™   rº   Ú_syntax_highlight_grammarr�   r¡   Úsplitr   r    rÌ   Ú_highlight_devsetrý   rþ   Úformatr‡  )rŠ   Úindexr¶  s      rŒ   rÚ  zRegexpChunkApp._view_historyA  sô  € å�A•s�3˜tœ}Ñ-Ô-°Ñ1°5Ñ9Ô9Ñ:Ô:ˆØŒ}ð 	ØˆFà�DÔ'Ò'Ð'ØˆFð $,ˆŒ˜Ñ ØŒ×Ò˜u eÑ,Ô,Ð,ØŒ×Ò˜u d¤m°EÔ&:¸1Ô&=Ñ>Ô>Ð>ØŒ× Ò  ¨5Ñ1Ô1Ð1Ø#ˆÔØ×&Ò& t¤}°UÔ';¸AÔ'>Ñ?Ô?Ð?à"&×"8Ò"8¸¼ÀuÔ9MÈaÔ9PÑ"QÔ"QˆÔØÔ"ð 	ðð à Ô3×9Ò9¸$Ñ?Ô?ðñ ô ˆEˆEð
 ˆEÝ(¨Ñ/Ô/ˆŒà�ŠÑÔÐà×ÒÑ Ô Ð ØÔð 	Ø�OŠOÑÔÐàÔ¥ T¤]Ñ!3Ô!3°aÑ!7Ò7Ð7Ø(8×(?Ò(?ØÔ# aÑ'Ý�D”MÑ"Ô"ñ)ô )ˆDÔ˜fÑ%Ð%Ð%ð
 )3ˆDÔ˜fÑ%Ð%Ð%rŽ   c                 ó4   — |                       ddd¦  «         dS )NÚscrollrh   Úpagerü   ©r™  rÿ   s     rŒ   rÈ   zRegexpChunkApp._devset_nextj  s   € Ø×Ò˜H a¨Ñ0Ô0Ð0ØˆwrŽ   c                 ó4   — |                       ddd¦  «         dS )Nrê  r“   rë  rü   rì  rÿ   s     rŒ   rÉ   zRegexpChunkApp._devset_prevn  s   € Ø×Ò˜H b¨&Ñ1Ô1Ð1ØˆwrŽ   c                 óX   — | j         €d S | j                              ¦   «          d | _         d S rÀ   )r­   r±   rÿ   s     rŒ   r±   zRegexpChunkApp.destroyr  s.   € ØŒ8ÐØˆFØŒ×ÒÑÔÐØˆŒˆˆrŽ   c                 ób  — d}| j         }|dk    rL|d                              d¦  «        r1|                      | j        t	          |d         ¦  «        z   ¦  «         n»|dk    rO|d                              d¦  «        r4|                      | j        |t	          |d         ¦  «        z  z   ¦  «         nf|dk    rP|                      t	          t          |d         ¦  «        | j                             ¦   «         z  ¦  «        ¦  «         nJ d|› d|› �¦   «         ‚|r|                      ¦   «          d S d S )	Nrh   rê  Úunitr   rë  Úmovetozbad scroll command r†   )	rý   Ú
startswithr»   r¥   rÓ   Úfloatr²   rÑ   rþ   )rŠ   rØ   ÚargsÚNÚshowing_traces        rŒ   r™  zRegexpChunkApp._devset_scrollx  s9  € ØˆØÔ+ˆØ�hÒÐ 4¨¤7×#5Ò#5°fÑ#=Ô#=ÐØ×Ò˜TÔ.µ°T¸!´W±´Ñ=Ñ>Ô>Ð>Ð>Ø˜Ò Ð  T¨!¤W×%7Ò%7¸Ñ%?Ô%?Ð Ø×Ò˜TÔ.°µS¸¸a¼±\´\Ñ1AÑAÑBÔBÐBÐBØ˜Ò Ð Ø×Ò�S¥ t¨A¤w¡¤°$Ô2C×2GÒ2GÑ2IÔ2IÑ!IÑJÔJÑKÔKÐKÐKà<Ð<¨GÐ<Ð<°dÐ<Ð<Ñ<Ô<Ð<Øð 	Ø�OŠOÑÔÐÐÐð	ð 	rŽ   c                 ó^  — |€| j         }t          t          d|¦  «        | j                             ¦   «         dz
  ¦  «        }|| j         k    r	| j        sd S || _         d| _        d| j        d<   d| j        d<   d| j        d<   d| j        d<   | j         	                    d	d
¦  «         d| j         dz   | j                             ¦   «         fz  | j
        d<   | j        | j         | j         dz   …         }i | _        ddi| _        t          |¦  «        D ]—\  }}d}t          |                     ¦   «         ¦  «        D ]H\  }\  }}t!          |¦  «        | j        ||f<   ||› d|› d�z  }t!          |¦  «        | j        ||dz   f<   ŒI| j                             d
|d d…         dz   ¦  «         Œ˜| j        �|                      ¦   «          d| j        d<   | j         | j                             ¦   «         z  }	| j         dz   | j                             ¦   «         z  }
| j                             |	|
¦  «         d S )Nr   rh   Fr«  rp  ro  rn   ru   rš   r—   r¬  r  r�   ú/r†   r“   z

rm   )r¥   r  r!  r²   rÑ   rý   rž  r�  r—  r  r˜  r£   r²  r·  r#  rB  r  r™   r    ræ  rš  r³   )rŠ   rè  ÚsampleÚsentnumÚsentÚlinestrr½  rn   r¾  ÚfirstÚlasts              rŒ   r»   zRegexpChunkApp.show_devset†  s^  € Øˆ=ØÔ%ˆEõ •C˜˜5‘M”M 4Ô#4×#8Ò#8Ñ#:Ô#:¸QÑ#>Ñ?Ô?ˆà�DÔ%Ò%Ð%¨dÔ.AÐ%ØˆFØ!ˆÔà#ˆÔØ%-ˆÔ˜'Ñ"Ø&0ˆÔ˜7Ñ#ð #+ˆŒ�wÑØ!'ˆŒ�vÑØŒ×Ò˜e UÑ+Ô+Ð+Ø#<ØÔ Ñ" DÔ$5×$9Ò$9Ñ$;Ô$;Ð<ñ$
ˆÔ˜Ñ ð
 ”˜TÔ.°Ô1BÀQÑ1FÐFÔGˆØˆŒØ˜1�vˆŒÝ& vÑ.Ô.ð 	@ð 	@‰MˆG�TØˆGÝ(1°$·+²+±-´-Ñ(@Ô(@ð Bð BÑ$�™˜$ Ý14°W±´�”˜W gÐ-Ñ.Ø˜dÐ+Ð+ SÐ+Ð+Ð+Ñ+�Ý58¸±\´\�”˜W g°¡kÐ1Ñ2Ð2ØŒN×!Ò! %¨°°"°¬¸Ñ)>Ñ?Ô?Ð?Ð?ð Œ<Ð#Ø×"Ò"Ñ$Ô$Ð$Ø",ˆŒ�wÑð Ô! DÔ$5×$9Ò$9Ñ$;Ô$;Ñ;ˆØÔ! AÑ%¨Ô):×)>Ò)>Ñ)@Ô)@Ñ@ˆØÔ×Ò˜u dÑ+Ô+Ð+Ð+Ð+rŽ   c                 ó  — t          ¦   «         }d}|D ]s}t          |t          ¦  «        rW|                     ¦   «         | j        k    r'|                     ||t          |¦  «        z   f¦  «         |t          |¦  «        z  }Œn|dz  }Œt|S )Nr   rh   )r³   Ú
isinstancer   r×   r›   Úaddr  )rŠ   ÚtreeÚchunksr½  Úchilds        rŒ   r¸  zRegexpChunkApp._chunks³  s‹   € Ý‘”ˆØˆØð 	ð 	ˆEÝ˜%¥Ñ&Ô&ð Ø—;’;‘=”= DÔ$5Ò5Ð5Ø—J’J ¨µ3°u±:´:Ñ)=Ð>Ñ?Ô?Ð?Ø�3˜u™:œ:Ñ%��à˜1‘��ØˆrŽ   c                 ó  — | j         €d S | j                             ddd¦  «         | j                             ddd¦  «         | j                             ddd¦  «         | j                             ddd¦  «         t	          |                     d¦  «        ¦  «        D �]m\  }}|                     ¦   «         sŒt          j        d|¦  «        }d }| 	                    d	¦  «        rk| 
                    d	¦  «        }d
|dz   | 
                    d	¦  «        fz  }d
|dz   |                     d	¦  «        fz  }| j                             d||¦  «         t          j        d|¦  «        D ]¥}|�| 
                    ¦   «         |k    r nˆd
|dz   | 
                    ¦   «         fz  }d
|dz   |                     ¦   «         fz  }| 	                    ¦   «         dv r| j                             d||¦  «         Œ‰| j                             d||¦  «         Œ¦�Œod S )Nr€  rš   r—   r�  r‚  rc   r˜   z(\\.|[^#])*(#.*)?rm   z%d.%drh   z[<>{}]z<>)r­   r¸   Ú
tag_removerµ  r#  rå  r‰   r‡   rg   ÚgrouprÑ  r—   rÐ  )rŠ   r‹   Úlinenorâ  rÖ  Úcomment_startr	  rÃ   s           rŒ   rä  z(RegexpChunkApp._syntax_highlight_grammar¿  s  € ØŒ8ÐØˆFØŒ×"Ò" 9¨e°UÑ;Ô;Ð;ØŒ×"Ò" 7¨E°5Ñ9Ô9Ð9ØŒ×"Ò" 7¨E°5Ñ9Ô9Ð9ØŒ×Ò ¨e°UÑ;Ô;Ð;Ý% g§m¢m°DÑ&9Ô&9Ñ:Ô:ð 	;ñ 	;‰LˆF�DØ—:’:‘<”<ð ØÝ”Ð-¨tÑ4Ô4ˆAØ ˆMØ�wŠw�q‰zŒzð 9Ø !§¢¨¡
¤
�Ø˜v¨™z¨1¯7ª7°1©:¬:Ð6Ñ6�Ø˜v¨™z¨1¯5ª5°©8¬8Ð4Ñ4�Ø”×'Ò'¨	°1°aÑ8Ô8Ð8Ý”[ ¨4Ñ0Ô0ð ;ð ;�Ø Ð,°·²±´¸mÒ1KÐ1KØ�EØ˜v¨™z¨1¯7ª7©9¬9Ð5Ñ5�Ø˜v¨™z¨1¯5ª5©7¬7Ð3Ñ3�Ø—7’7‘9”9 Ð$Ð$Ø”O×+Ò+¨G°Q¸Ñ:Ô:Ð:Ð:à”O×+Ò+¨G°Q¸Ñ:Ô:Ð:Ð:ùð%	;ð 	;rŽ   c           	      óÄ  — | j         €d S | j                             ddd¦  «         g | _        t	          |                     d¦  «        ¦  «        D ]†\  }}t          j        dd|¦  «        }|                     ¦   «         }|rU	 t          j
        |¦  «         ŒG# t          $ r2}| j                             dd|dz   z  d	|dz   z  ¦  «         Y d }~Œ~d }~ww xY wŒ‡d
| j        d<   d S )Nr  rš   r—   r˜   r„   r…   z%s.0rh   z%s.0 lineendr�   r  )r­   r¸   r  Ú_grammarcheck_errsr#  rå  r‡   rˆ   r‰   r   rà  rŸ   rµ  r%  )rŠ   r‹   r  râ  rÃ   s        rŒ   Ú_grammarcheckzRegexpChunkApp._grammarcheckÚ  s  € ØŒ8ÐØˆFØŒ×"Ò" 7¨E°5Ñ9Ô9Ð9Ø"$ˆÔÝ% g§m¢m°DÑ&9Ô&9Ñ:Ô:ð 		ð 		‰LˆF�DÝ”6Ð0°%¸Ñ>Ô>ˆDØ—:’:‘<”<ˆDØð ðÝ#Ô.¨tÑ4Ô4Ð4Ð4øÝ!ð ð ð Ø”O×+Ò+Ø ¨6°A©:Ñ!6¸È&ÐSTÉ*Ñ8Uñô ð ð ð ð ð ð øøøøðøøøðð !ˆŒ�FÑÐÐs   ÂBÂ
CÂ (CÃCc                 ó,  — |rt          j         ¦   «         | _        | j                             dd¦  «        x| _        }|                      |¦  «        }|| j        k    rd S || _        | j        t          | j	        ¦  «        dz
  k     r
d| j
        d<   |                      |¦  «         	 |r d„ |                     d¦  «        D ¦   «         }ng }n4# t          $ r'}|                      |¦  «         d | _        Y d }~d S d }~ww xY wt!          |¦  «        | _        | j                             ddd¦  «         t          j         ¦   «         | _        | j        r|                      ¦   «          n|                      ¦   «          | j        s|                      ¦   «          d S d S )	Nrš   r—   rh   rV  r  c                 ó6   — g | ]}t          j        |¦  «        ‘ŒS r¯  rß  rá  s     rŒ   rã  z)RegexpChunkApp.update.<locals>.<listcomp>  s3   € ð ð ð àõ $Ô.¨tÑ4Ô4ðð ð rŽ   r˜   r  )r:  r¦   r¸   rÑ   r‹   r�   r¡   r¨   r  r§   r‡  rä  rå  rŸ   r  r    r   r  r¢   rý   rþ   ræ  r9  r>  )rŠ   Úeventr‹   r¡   r¶  rÃ   s         rŒ   r¼   zRegexpChunkApp.updateë  sÉ  € àð 	.Ý"&¤)¡+¤+ˆDÔð "&¤×!4Ò!4°U¸EÑ!BÔ!BÐBˆŒ�wð "×3Ò3°GÑ<Ô<ÐØ Ô!8Ò8Ð8ØˆFà&8ˆDÔ#ð Ô¥ T¤]Ñ!3Ô!3°aÑ!7Ò7Ð7Ø(2ˆDÔ˜fÑ%à×&Ò& wÑ/Ô/Ð/ð	à!ð ðð à 2× 8Ò 8¸Ñ >Ô >ðñ ô ��ð
 �øøÝð 	ð 	ð 	à×Ò˜wÑ'Ô'Ð'ØˆDŒLØˆFˆFˆFˆFˆFøøøøð		øøøõ )¨Ñ/Ô/ˆŒØŒ×"Ò" 7¨E°5Ñ9Ô9Ð9Ý#œy™{œ{ˆÔàÔð 	%Ø�OŠOÑÔÐÐà×"Ò"Ñ$Ô$Ð$àÔ'ð 	Ø×ÒÑÔÐÐÐð	ð 	s   Â&$C Ã
C<ÃC7Ã7C<c                 ó�  — |€| j         | j        | j        dz   …         }| j                             ddd¦  «         | j                             ddd¦  «         | j                             ddd¦  «         t	          |¦  «        D ]Ã\  }}|                      |                     ¦   «         ¦  «        }|                      |¦  «        }|                      |¦  «        }|                     |¦  «        D ]}|  	                    ||d¦  «         Œ||z
  D ]}|  	                    ||d¦  «         Œ||z
  D ]}|  	                    ||d¦  «         ŒŒÄd S )Nrh   rx  rš   r—   rz  r{  )
r£   r¥   r—  r  r#  rA  rB  r¸  r¹  rº  )rŠ   rù  rú  r»  r¿  rÀ  rÁ  rÂ  s           rŒ   ræ  z RegexpChunkApp._highlight_devset  su  € Øˆ>Ø”[ Ô!2°TÔ5FÈÑ5JÐ!JÔKˆFàŒ×!Ò! *¨e°UÑ;Ô;Ð;ØŒ×!Ò! +¨u°eÑ<Ô<Ð<ØŒ×!Ò! +¨u°eÑ<Ô<Ð<õ #,¨FÑ"3Ô"3ð 	?ð 	?ÑˆG�Yà×(Ò(¨×)9Ò)9Ñ);Ô);Ñ<Ô<ˆIàŸ,š, yÑ1Ô1ˆKØŸ,š, yÑ1Ô1ˆKà$×1Ò1°+Ñ>Ô>ð >ð >�Ø×!Ò! '¨5°*Ñ=Ô=Ð=Ð=Ø$ {Ñ2ð ?ð ?�Ø×!Ò! '¨5°+Ñ>Ô>Ð>Ð>Ø$ {Ñ2ð ?ð ?�Ø×!Ò! '¨5°+Ñ>Ô>Ð>Ð>ð?ð	?ð 	?rŽ   c                 ó°   — 	 | j                              |¦  «        S # t          t          f$ r(}| j                             ddd¦  «         |cY d }~S d }~ww xY w)Nr  rš   r—   )r    ÚparserŸ   Ú
IndexErrorr¸   rµ  )rŠ   ÚwordsrÃ   s      rŒ   rA  zRegexpChunkApp._chunkparse5  sl   € ð	Ø”<×%Ò% eÑ,Ô,Ð,øÝ�JÐ'ð 	ð 	ð 	ð ŒO×#Ò# G¨U°EÑ:Ô:Ð:àˆLˆLˆLˆLˆLˆLøøøøð	øøøs   ‚ œA­AÁ
AÁAc           	      óÂ   — |\  }}| j                              || j        |         › d| j        ||f         › �| j        |         › d| j        ||f         dz
  › �¦  «         d S )NrF   rh   )r—  rµ  r·  r²  )rŠ   rú  rÂ  r'  rÑ  r—   s         rŒ   rº  zRegexpChunkApp._color_chunk@  s}   € Ø‰
ˆˆsØŒ×ÒØØŒ|˜GÔ$ÐEÐE t¤|°G¸U°NÔ'CÐEÐEØŒ|˜GÔ$ÐGÐG t¤|°G¸S°LÔ'AÀAÑ'EÐGÐGñ	
ô 	
ð 	
ð 	
ð 	
rŽ   c                 óâ   — d | _         d | _        d | _        d| _        g | _        d| _        | j                             dd¦  «         |                      d¦  «         |  	                    ¦   «          d S )Nr   rš   r—   )
r    r‹   r¡   r¢   r§   r¨   r¸   r  r»   r¼   )rŠ   s    rŒ   rí   zRegexpChunkApp.resetH  sl   € àˆŒØˆŒØ"&ˆÔØ ˆÔØˆŒØˆÔàŒ×Ò˜u eÑ,Ô,Ð,Ø×Ò˜ÑÔÐØ�Š‰ŒˆˆˆrŽ   z®# Regexp Chunk Parsing Grammar
# Saved %(date)s
#
# Development set: %(devset)s
#   Precision: %(precision)s
#   Recall:    %(recall)s
#   F-score:   %(fscore)s

%(grammar)s
c                 ó$  — |sddg}t          |d¬¦  «        }|sd S | j        rS| j        |                      | j        d         d         ¦  «        k    r$d„ | j        d         dd …         D ¦   «         \  }}}n| j        €d	x}x}}nd
x}x}}t          |d¦  «        5 }|                     | j        t          t          j
        ¦   «         | j        |||| j                             ¦   «         ¬¦  «        z  ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©zChunk Gramamrú.chunk©z	All filesÚ*r  ©Ú	filetypesÚdefaultextensionr“   r   c              3   ó&   K  — | ]}d d|z  z  V — ŒdS )z%.2f%%r–   Nr¯  )r°  Úvs     rŒ   rÆ  z.RegexpChunkApp.save_grammar.<locals>.<genexpr>j  s<   è è € ð )ð )Ø)*�˜C !™GÑ$ð)ð )ð )ð )ð )ð )rŽ   rh   zGrammar not well formedzNot finished evaluation yetr  )Údater£   r/  r0  r7  r‹   )r   r§   r¡   r�   r    ÚopenÚwriteÚSAVE_GRAMMAR_TEMPLATEÚdictr:  Úctimer¤   r‹   r‰   )rŠ   ÚfilenameÚftypesr/  r0  r7  Úoutfiles          rŒ   rÁ   zRegexpChunkApp.save_grammara  s�  € Øð 	Ø1Ð3EÐFˆFÝ(°6ÈHÐUÑUÔUˆHØð Ø�ØŒ=ð 		H˜TÔ4¸×8NÒ8NØŒM˜"Ô˜aÔ ñ9
ô 9
ò 
ð 
ð)ð )Ø.2¬m¸BÔ.?ÀÀÀÔ.Cð)ñ )ô )Ñ%ˆI�v˜v˜vð Œ\Ð!Ø*CÐCˆIÐC˜  à*GÐGˆIÐG˜ å�(˜CÑ Ô ð 	 GØ�MŠMØÔ*ÝÝœ™œØÔ+Ø'Ø!Ø!Ø œL×.Ò.Ñ0Ô0ðñ ô ññ
ô 
ð 
ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÂADÄD	ÄD	c                 ó¾  — |sddg}t          |d¬¦  «        }|sd S | j                             dd¦  «         |                      ¦   «          t	          |¦  «        5 }|                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   t          j        dd|¦  «                             ¦   «         }| j         	                    d|¦  «         |                      ¦   «          d S )	Nr  r  r  r  rš   r—   z2^\# Regexp Chunk Parsing Grammar[\s\S]*F-score:.*
r�   )
r   r¸   r  r¼   r"  Úreadr‡   rˆ   Úlstripr™   )rŠ   r'  r(  Úinfiler‹   s        rŒ   rÇ   zRegexpChunkApp.load_grammar  s  € Øð 	Ø1Ð3EÐFˆFÝ&°È(ÐSÑSÔSˆHØð Ø�ØŒ×Ò˜u eÑ,Ô,Ð,Ø�Š‰ŒˆÝ�(‰^Œ^ð 	$˜vØ—k’k‘m”mˆGð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$å”&ØEÀrÈ7ñ
ô 
ç
Š&‰(Œ(ð 	ð 	Œ×Ò˜u gÑ.Ô.Ð.Ø�Š‰Œˆˆˆs   ÁA;Á;A?ÂA?c           	      ó4  — |sddg}t          |d¬¦  «        }|sd S t          |d¦  «        5 }|                     d¦  «         |                     dt          j        ¦   «         z  ¦  «         |                     d| j        z  ¦  «         t          | j        ¦  «        D ] \  }\  }}}}d	|d
z   t          | j        ¦  «        |dz  |dz  |dz  fz  }	|                     d|	z  ¦  «         |                     d 	                    d„ | 
                    ¦   «                              ¦   «         D ¦   «         ¦  «        ¦  «         Œ¡| j        r/| j        |                      | j        d         d         ¦  «        k    s�| j        €|                     d¦  «         n|                     d¦  «         |                     d 	                    d„ | j         
                    ¦   «                              ¦   «         D ¦   «         ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)zChunk Gramamr Historyú.txtr  r/  r  r  z'# Regexp Chunk Parsing Grammar History
z# Saved %s
z# Development set: %s
z>Grammar %d/%d (precision=%.2f%%, recall=%.2f%%, fscore=%.2f%%)rh   r–   z
%s
r�   c              3   ó    K  — | ]	}d |z  V — Œ
dS ©z  %s
Nr¯  rá  s     rŒ   rÆ  z.RegexpChunkApp.save_history.<locals>.<genexpr>¡  s&   è è € Ð%TÐ%T¸$ h°¡oÐ%TÐ%TÐ%TÐ%TÐ%TÐ%TrŽ   r“   r   z#
Current Grammar (not well-formed)
z!
Current Grammar (not evaluated)
c              3   ó    K  — | ]	}d |z  V — Œ
dS r1  r¯  rá  s     rŒ   rÆ  z.RegexpChunkApp.save_history.<locals>.<genexpr>­  s&   è è € ÐUÐU°˜H t™OÐUÐUÐUÐUÐUÐUrŽ   )r   r"  r#  r:  r&  r¤   r#  r§   r  rË  r‰   rå  r¡   r�   r    r‹   )
rŠ   r'  r(  r)  r.  rG  rH  rI  rJ  Úhdrs
             rŒ   rî   zRegexpChunkApp.save_history�  se  € Øð 	Ø7Ð9KÐLˆFÝ(°6ÈFÐSÑSÔSˆHØð Ø�å�(˜CÑ Ô ð 	 GØ�MŠMÐDÑEÔEÐEØ�MŠM˜.­4¬:©<¬<Ñ7Ñ8Ô8Ð8Ø�MŠMÐ3°dÔ6FÑFÑGÔGÐGÝ#,¨T¬]Ñ#;Ô#;ð Vð V‘�‘<�A�q˜!˜Qð%à˜1‘u�c $¤-Ñ0Ô0°!°c±'¸1¸s¹7ÀAÈÁGÐLñMð ð
 —’˜h¨™nÑ-Ô-Ð-Ø—’˜bŸgšgÐ%TÐ%TÀ!Ç'Â'Á)Ä)Ç/Â/ÑBSÔBSÐ%TÑ%TÔ%TÑTÔTÑUÔUÐUÐUð ”ðàÔ+Ø×)Ò)¨$¬-¸Ô*;¸AÔ*>Ñ?Ô?ò@ð @ð ”<Ð'Ø—M’MÐ"IÑJÔJÐJÐJà—M’MÐ"GÑHÔHÐHØ—’Ø—G’GÐUÐU¸¼×8JÒ8JÑ8LÔ8L×8RÒ8RÑ8TÔ8TÐUÑUÔUÑUÔUñô ð ð-	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¬GHÈHÈHc                 ó–   — d}d}	 ddl m}  |||¬¦  «                             ¦   «          d S #  t          | j        ||¦  «         Y d S xY w)Nz<NLTK RegExp Chunk Parser Application
Written by Edward Loperz2About: Regular Expression Chunk Parser Applicationr   )ÚMessage)Úmessager¯   )Útkinter.messageboxr5  Úshowr   r­   )rŠ   rÃ   ÚABOUTÚTITLEr5  s        rŒ   ró   zRegexpChunkApp.about°  sp   € ØTˆØDˆð	-Ø2Ð2Ð2Ð2Ð2Ð2àˆG˜E¨Ð/Ñ/Ô/×4Ò4Ñ6Ô6Ð6Ð6Ð6øð	-Ý�T”X˜u eÑ,Ô,Ð,Ð,Ð,Ð,øøøs	   †%- ­Ac                 ó4  — |�| j                              |¦  «         | j                              t          t          | j        ¦  «        | j                              ¦   «         ¦  «        ¦  «         |                      d¦  «         |                      d¦  «         d S )Nrh   r   )r²   r³   r  r  r£   rÑ   r»   ©rŠ   r}   s     rŒ   rò   zRegexpChunkApp.set_devset_sizeº  s‡   € ØÐØÔ×!Ò! $Ñ'Ô'Ð'ØÔ×Ò�c¥# d¤kÑ"2Ô"2°DÔ4E×4IÒ4IÑ4KÔ4KÑLÔLÑMÔMÐMØ×Ò˜ÑÔÐØ×Ò˜ÑÔÐÐÐrŽ   c                 ó<  — |�| j                              |¦  «         | j                              ¦   «         }| j                             t          |¦  «         ¬¦  «         | j                             t          dt          |¦  «         dz  dz  ¦  «        ¬¦  «         d S )N)r}   iöÿÿÿrÏ   r_   )rÐ   r³   rÑ   rÒ   r“  ÚabsrÔ   r  r<  s     rŒ   rñ   zRegexpChunkApp.resizeÂ  s‰   € ØÐØŒJ�NŠN˜4Ñ Ô Ð ØŒz�~Š~ÑÔˆØŒ
×Ò¥C¨¡I¤I ,ÐÑ/Ô/Ð/ØŒ×!Ò!¥s¨3µ#°d±)´)°¸rÑ0AÀRÑ0GÑ'HÔ'HÐ!ÑIÔIÐIÐIÐIrŽ   c                 óJ   — t          ¦   «         rdS  | j        j        |i |¤Ž dS )zñ
        Enter the Tkinter mainloop.  This function must be called if
        this demo is created from a non-interactive program (e.g.
        from a secript); otherwise, the demo will close as soon as
        the script completes.
        N)r   r­   Úmainloop)rŠ   rô  Úkwargss      rŒ   r@  zRegexpChunkApp.mainloopÉ  s5   € õ ‰9Œ9ð 	ØˆFØˆŒÔ˜4Ð* 6Ð*Ð*Ð*Ð*Ð*rŽ   )r   Nr�   r�   NrÀ   )BÚ__name__Ú
__module__Ú__qualname__Ú__doc__rœ   r‘  r%  r•  r;  r@  r=  rP  rO  r†  rŽ  r–  rŸ  Ú_FONT_PARAMSrƒ  r  r‹  Ú_HELPTAB_BG_COLORÚ_HELPTAB_FG_COLORrÏ  rÒ  r’  r�   r½   r¶   r´   r·   rÊ   r   Ú_DRAW_LINESrÌ   r9  r>  rE  rµ   rý   rþ   rd  rŠ  r�  rÚ  rÈ   rÉ   r±   r™  r»   r¸  rä  r  r¼   ræ  rA  rº  rí   r$  rÁ   rÇ   rî   ró   rò   rñ   r@  r¯  rŽ   rŒ   r   r   -   s,  € € € € € ðð ð.ØÐ(ð.àÐ$ð.ð 	Ðð.ð 	ˆhð	.ð
 	ˆlð.ð 	Ð$ð.ð 	Ð!ð.ð 	Ð$ð.ð 	ˆnð.ð 	ˆjð.ð 	ˆkð.ð 	ˆdð.ð 	Ð'ð.ð 	ˆnð.ð 	Ð'ð.ð  	Ðð!.ð" 	Ð ð#.ð .ð$ 	Ð!ð%.ð& 	ˆgð'.ð( 	ˆ~ð).ð* 	Ð'ð+.ð, 	Ð&ð-.ð. 	Ð+ð/.ð0 	Ð&ð1.ð2 	Ð$ð3.ð4 	ˆð5.ð6 	ˆð7.ð8 	ˆlð9.ð: 	Ð"ð;.ð< 	Ð&ð=.ð> 	Ð!ð?.ð@ 	ˆ{ðA.ðB 	ÐðC.ðD 	Ð ðE.ð .ðF ØØØØ+Ø,Ø/Ø4Ø0Ø0Øð[.ð .ð .€Fðneð eð e€DðP 
�� Ð'Ñ'Ô'Ð(Ø	�$�$ &Ð)Ñ)Ô)Ð*Ø	�d�d fÐ-Ñ-Ô-Ð.Ø	�d�d TÐ*Ñ*Ô*Ð+Ø	ˆtˆt˜dÐ#Ñ#Ô#Ð$Ø	�4�4 ¨bÐ1Ñ1Ô1Ð2Ø	�t�t Q°Ð4Ñ4Ô4Ð5Ø	�� Ð'Ñ'Ô'Ð(Ø	�4�4 6Ð*Ñ*Ô*Ð+Ø	�$�$ &Ð)Ñ)Ô)Ð*ð€Lð" €Kð+ð €Kð#à€JØCØ€Oðð €Oðð ˜ØØØØ"ØØØØð	ñ 	ô 	Ðð �dØØØØ"ØØØØØð
ñ 
ô 
€Oð ˜ØØØØ"ØØØØØð
ñ 
ô 
Ðð �T V°HÀQÐGÑGÔG€NØ�4˜{°Ð5Ñ5Ô5€LØ�D F°¸À1ÐEÑEÔE€MØ�dØØ"ØØØØØðñ ô €Oð �TØ¨FÈðñ ô €Nð ÐØÐà˜¨Ð0Ñ0Ô0ÐØ˜¨Ð0Ñ0Ô0ÐØ€Oð	ð 	ð 	ð  ØØØØðið ið ið iðV:ð :ð :ð
ð 
ð 
ð`$ð `$ð `$ðDð ð ð €HØ€KðE"ð E"ð E"ðN  ÐðIJð IJð IJðVð ð ð0{Jð {Jð {Jðz €Nð==ð ==ð ==ð~ +ð  +ð  +ðDð ð ðð ð ð'3ð '3ð '3ðRð ð ðð ð ðð ð ðð ð ð+,ð +,ð +,ð +,ðZ
ð 
ð 
ð;ð ;ð ;ð6!ð !ð !ð"1ð 1ð 1ðf?ð ?ð ?ð ?ð.	ð 	ð 	ð
ð 
ð 
ðð ð ð	ð ðð ð ð ð<ð ð ð ð ð ð ð ðB-ð -ð -ðð ð ð ðJð Jð Jð Jð	+ð 	+ð 	+ð 	+ð 	+rŽ   r   c                  óF   — t          ¦   «                              ¦   «          d S rÀ   )r   r@  r¯  rŽ   rŒ   ÚapprK  Õ  s    € ÝÑÔ×ÒÑÔÐÐÐrŽ   Ú__main__rK  )'rE  Úrandomr‡   Útextwrapr:  Útkinterr   r   r   r   r   r   r	   r
   r   r   Útkinter.filedialogr   r   Útkinter.fontr   Ú
nltk.chunkr   r   Únltk.chunk.regexpr   Únltk.corpusr   r   Únltk.draw.utilr   Ú	nltk.treer   Ú	nltk.utilr   r   rK  rB  Ú__all__r¯  rŽ   rŒ   ú<module>rY     sµ  ððð ð €€€Ø 	€	€	€	Ø €€€Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð BÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ Ð Ð Ð Ð Ð à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø -Ð -Ð -Ð -Ð -Ð -Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðe+ð e+ð e+ð e+ð e+ñ e+ô e+ð e+ðP- ð  ð  ð ˆzÒÐØ€C�E„E€Eàˆ'€€€rŽ   