*ë
€'á:c       s     d  k  Z   y 	 d k l Z Wn" 
 e j
 o  d  k Z n X d  k Z  d  k Z d  k Z  d  k Z  e	 e d ƒ Z
 @ d „  Z W d „  Z l d „  Z u d „  Z y d „  Z ƒ d f  d	 „  ƒ  YZ ‹ d
 „  Z ¨ d f  d „  ƒ  YZ Û d f  d „  ƒ  YZ á d f  d „  ƒ  YZ ç d „  Z d „  Z 'd „  Z 1d „  Z ?d „  Z Dd „  Z Hd „  Z Pd „  Z Yd f  d „  ƒ  YZ cd „  Z ld f  d „  ƒ  YZ ud „  Z  Šd f  d  „  ƒ  YZ! •d! „  Z" ¥d" „  Z# ©h  e e i$ <e e i% <e  e i& <e e i' <e e i( <e e i) <e e i* <e e i+ <e" e i, <e e i- <e e i. <e e i/ <e e i0 <Z1 ¹d# a2 ºd$ „  Z3 Êd% f  d& „  ƒ  YZ4 ×d' „  Z5 ðd( d) „ Z6 üd( d* „ Z7 d+ „  Z8 d  S(,   N(   s	   TextToolss	   LookAheadc 	 	  sæ   @ B g  } C x2 |  i d C r" } D | i t | | | ƒ ƒ q WG d } H t	 | ƒ } I g  } J xQ | d J rD } K | i d t i t | ƒ d 
| | d f ƒ N | d } qq WP | i t t i t i f ƒ Q | Sd  S(   Ni    s   >ignorei   (   s   tabless
   expressions   expressionss   exprs   appends	   _generates   groupref_namess   debug_levels   is   lens   ns   results   tables   TTs   Tables   tuples   Nones   Fails   Here(	   s
   expressions   groupref_namess   debug_levels   tables   results   ns   exprs   is   tables(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_alt@ s   	 	 		 	1c    sˆ  W X g  } Y | d j oE Z x; |  i d Z r+ } [ t | | | ƒ } \ | i | ƒ q+ Wn] | d j oi ^ x_ |  i d ^ rO } _ t | | | ƒ } ` | i | ƒ a | i	 t
 t i t d 
d 
f ƒ q€ Wn¤ b | d j o“ c x‰ |  i d c ry } d t | | | ƒ } e | i | ƒ f | i	 t
 t i t d 
d 
f ƒ g | i	 t
 t i t | ƒ d 
d 
f ƒ qù Wn i | Sd  S(   Ni    i   i   (   s   results   debug_levels
   expressions   expressionss   exps	   _generates   groupref_namess   tables   extends   appends   Nones   TTs   Calls   track_positions
   print_info(   s
   expressions   groupref_namess   debug_levels   tables   exps   result(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_seqW s(   	 	 	, 	$2c    sS   l m |  i o& o t t i t i |  i ƒ f g Sn r t t i |  i f g Sd  S(   N(   s
   expressions   inverts   Nones   TTs   IsIns
   convert_res   chars   Is(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_literall s   &c    s    u v t  t i |  i f g Sd  S(   N(   s   Nones   TTs   Words
   expressions   string(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_stru s   c    sS   y z |  i o& | t t i t i |  i ƒ f g Sn  t t i |  i f g Sd  S(   N(   s
   expressions   inverts   Nones   TTs   IsIns
   convert_res   chars(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_anyy s   &s   SetGroupValuec      s   ƒ „ d „  Z  † d „  Z RS(   Nc    s   „ … | |  _  d  S(   N(   s   names   self(   s   selfs   name(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__„ s   c    s@   † ‡ | i |  i | | | f ƒ ˆ | | | !t i	 |  i <d  S(   N(
   s   taglists   appends   selfs   names   ls   rs   subtagss   texts   Parsers   _match_group(   s   selfs   taglists   texts   ls   rs   subtags(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __call__† s   (   s   __init__s   __call__(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys   SetGroupValueƒ s   c    s¨   ‹ Œ t  |  i | | ƒ } Ž |  i }  | t j o ‘ | Sn “ | i | ƒ d j o  ” | t i	 t
 | ƒ f g Sn* — t | ƒ t i	 t i t
 | ƒ f g Sd  S(   Ni   (   s	   _generates
   expressions   groupref_namess   debug_levels   tagtables   names   Nones   gets   TTs   Tables   tuples   SetGroupValues   CallTag(   s
   expressions   groupref_namess   debug_levels   names   tagtable(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_group‹ s    s   HandleRepeatCountc      s5   ¨ © d „  Z  ° d „  Z ¾ d „  Z Ð d „  Z RS(   Nc    s7   © ª | |  _  « | |  _ ¬ | |  _ ® t |  _ d  S(   N(   s   tagtables   selfs	   min_counts	   max_counts   Nones   taglist(   s   selfs   tagtables	   min_counts	   max_count(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__© s   c    s°   ° ² |  i } ³ t | ƒ t d ƒ j o& ´ t i | } µ t i | ƒ } n · |  i } ¸ t | ƒ t d ƒ j o& ¹ t i | } º t i | ƒ } n ¼ | | f Sd  S(   Ns    (   s   selfs	   min_counts   types   Parsers   _match_groups   strings   atois	   max_count(   s   selfs	   max_counts	   min_count(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   _get_ranges° s   c 
   s¹   ¾ Â |  i ƒ  \ } } Ã t o! | | j p t d | | f ‚ Æ |  i | }	 Ç t i | |	 | | ƒ \ } } } È | d j o Ê | |  _ Ë | d Sn Í t |  _ Î | Sd  S(   Ns"   cannot have different sizes: %s %si   (   s   selfs   _get_rangess	   min_counts	   max_counts	   __debug__s   AssertionErrors   tagtables   TTs   tags   texts   xs   ends   results   taglists   poss   None(
   s   selfs   texts   xs   ends   taglists	   min_counts   results	   max_counts   poss   tagtable(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   call¾ s   +$c    sL   Ð Ò t  o | p t t | ƒ ‚ Õ | i d | | d |  i f ƒ d  S(   Ns   >ignorei   (	   s	   __debug__s   subtagss   AssertionErrors   reprs   taglists   appends   ls   rs   self(   s   selfs   taglists   texts   ls   rs   subtags(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   calltagÐ s   "(   s   __init__s   _get_rangess   calls   calltag(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys   HandleRepeatCount¨ s   s   _call_calltagc      s   Û Ü d „  Z  Þ d „  Z RS(   Nc    s   Ü Ý | |  _  d  S(   N(   s   objs   self(   s   selfs   obj(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__Ü s   c    s&   Þ ß |  i i | | | | | ƒ Sd  S(   N(   s   selfs   objs   calltags   taglists   texts   ls   rs   subtags(   s   selfs   taglists   texts   ls   rs   subtags(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __call__Þ s   (   s   __init__s   __call__(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys   _call_calltagÛ s   s
   _call_callc      s   á â d „  Z  ä d „  Z RS(   Nc    s   â ã | |  _  d  S(   N(   s   objs   self(   s   selfs   obj(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__â s   c    s    ä å |  i i | | | ƒ Sd  S(   N(   s   selfs   objs   calls   texts   xs   end(   s   selfs   texts   xs   end(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __call__ä s   (   s   __init__s   __call__(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys
   _call_callá s   c    s  ç è t  |  i ƒ t  d ƒ j p t  |  i ƒ t  d ƒ j o ê t d ƒ ‚ n ë |  i |  i j o ì t d ƒ ‚ n î t |  i | | ƒ } ï t	 t
 | ƒ ð |  i ñ |  i ƒ } õ t | ƒ t i t i t | ƒ t i f t t i d t i f g Sd  S(   Ns    s*   Cannot mix numeric and named repeat countss(   Only a single named repeat count allowedi   (   s   types
   expressions	   min_counts	   max_counts   NotImplementedErrors	   _generates   groupref_namess   debug_levels   tagtables   HandleRepeatCounts   tuples   counters   _call_calltags   TTs   Calls   CallTags
   _call_calls	   MatchFails   Nones   Skip(   s
   expressions   groupref_namess   debug_levels   counters   tagtable(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_named_max_repeatç s   ;	c 
   sÍ  |  i  } |  i } |  i } t | ƒ t d ƒ j p t | ƒ d j o t |  | | ƒ Sn 
t o2 d | j o
 | j n p t	 d | | f ‚ t
 | | | ƒ }	 g  } x; t | ƒ d r( } | i t t i t |	 ƒ f ƒ qÙ W| t i j o- | i t t i t |	 ƒ d 
d f ƒ n{ | | j o nd | | } xP t | ƒ d r= } | i d t i t |	 ƒ | 
d 
f ƒ "| d } q~W#| Sd  S(   Ns    i    s   bad ranges (%sd, %d)i   s   >ignore(   s
   expressions   exprs	   min_counts	   max_counts   types   generate_named_max_repeats   groupref_namess   debug_levels	   __debug__s   AssertionErrors	   _generates   tagtables   results   ranges   is   appends   Nones   TTs   SubTables   tuples	   sre_parses	   MAXREPEATs   offsets   Table(
   s
   expressions   groupref_namess   debug_levels   offsets	   min_counts	   max_counts   results   exprs   is   tagtable(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_max_repeats*   /<	 	&- 	*c    sP   '(| d j o )| Sn *|  | d d j o +| Sn ,| d Sd  S(   Ni    i   s   
(   s   xs   text(   s   texts   xs   end(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   check_at_beginning's
   c    sv   12t  o+ 3t t i t i t d 
t i f g Sn; 6t t i t d 
d 
f t t i d t i t i f g Sd  S(   Ni   i   (   s   supports_lookaheads   Nones   TTs   Calls	   LookAheads   check_at_beginnings	   MatchFails   Skip(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_at_beginning1s   
+c    s    ?@t  t i t i f g Sd  S(   N(   s   Nones   TTs   EOFs   Here(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_at_end?s   c    s&   DEt  t i t i d ƒ f g Sd  S(   Ns   
(   s   Nones   TTs   IsInSets   invset(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_dotDs   c    sU   HIt  t i d d 
d 
f t  t i d t i d 
f t  t i d d 
d 
f g Sd  S(   Ns   
i   i   s   (   s   Nones   TTs   Iss	   MatchFail(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_eolHs   c    sK   PQt  i |  | | | ƒ \ } } } R| o T| Sn V| d Sd  S(   Ni   (	   s   TTs   tags   texts   tagtables   xs   ends   results   taglists   pos(   s   texts   xs   ends   tagtables   taglists   poss   result(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   check_assert_notPs   $
s   CheckAssertNotc      s   YZd „  Z  \d „  Z RS(   Nc    s   Z[| |  _  d  S(   N(   s	   tag_wordss   self(   s   selfs	   tag_words(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__Zs   c    s)   \]t  | | | |  i ƒ } ^| Sd  S(   N(   s   check_assert_nots   texts   xs   ends   selfs	   tag_wordss   pos(   s   selfs   texts   xs   ends   pos(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __call__\s   (   s   __init__s   __call__(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys   CheckAssertNotYs   c    sK   cdt  i |  | | | ƒ \ } } } e| o g| d Sn i| Sd  S(   Ni   (	   s   TTs   tags   texts	   tag_wordss   xs   ends   results   taglists   pos(   s   texts   xs   ends	   tag_wordss   poss   taglists   result(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   check_assertcs   $
s   CheckAssertc      s   lmd „  Z  od „  Z RS(   Nc    s   mn| |  _  d  S(   N(   s	   tag_wordss   self(   s   selfs	   tag_words(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__ms   c    s)   opt  | | | |  i ƒ } q| Sd  S(   N(   s   check_asserts   texts   xs   ends   selfs	   tag_wordss   pos(   s   selfs   texts   xs   ends   pos(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __call__os   (   s   __init__s   __call__(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys   CheckAssertls   c    s½   uvt  |  i | | ƒ } w|  i o xt } n
 zt } {t	 o3 |t
 t i t i | t | ƒ ƒ t i f g Sn? t
 t i | t | ƒ ƒ t i f t
 t i d t i f g Sd  S(   Ni   (   s	   _generates
   expressions   groupref_namess   debug_levels   tagtables   inverts   CheckAssertNots   funcs   CheckAsserts   supports_lookaheads   Nones   TTs   Calls	   LookAheads   tuples	   MatchFails   Skip(   s
   expressions   groupref_namess   debug_levels   funcs   tagtable(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_assertus   	
3s   CheckGroupRefc      s   Š‹d „  Z  d „  Z RS(   Nc    s   ‹Œ| |  _  d  S(   N(   s   names   self(   s   selfs   name(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__‹s   c    s[   Žt  i |  i } | | | t | ƒ !| j o | Sn ‘| t | ƒ d Sd  S(   Ni   (   s   Parsers   _match_groups   selfs   names
   match_texts   texts   xs   len(   s   selfs   texts   xs   ends
   match_text(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __call__s   !(   s   __init__s   __call__(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys   CheckGroupRefŠs   c    s|   •˜t  o0 ™t t i t i t |  i ƒ t i f g Sn< žt t i t |  i ƒ t i f t t i	 d t i f g Sd  S(   Ni   (
   s   supports_lookaheads   Nones   TTs   Calls	   LookAheads   CheckGroupRefs
   expressions   names	   MatchFails   Skip(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_groupref•s   
0c    s   ¥¦t  |  i | | ƒ Sd  S(   N(   s	   _generates
   expressions   groupref_namess   debug_level(   s
   expressions   groupref_namess   debug_level(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_pass_through¥s   i   c    s&   ºÄÆÇt  | t ƒ a È| Sd S(   sO  store the start position of the farthest successful match

    This value is more useful than mxTextTools' default, which only
    points out the last text region successfully tagged at the top
    level.  This value is the last region successfully tagged
    anywhere.

    Uses a global variable so this is SINGLE THREADED!
    
    N(   s   maxs   xs	   _position(   s   texts   xs   end(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   track_positionºs   
s
   print_infoc      s&   Êd  Z  ËÌd „  Z Ñd „  Z RS(   s-   Print information after each expression matchc    sV   ÌÍt  | ƒ } Ît | ƒ d j o Ï| d  d | d } n Ð| |  _ d  S(   Ni(   i   s    ... (   s   strs
   expressions   ss   lens   selfs   msg(   s   selfs
   expressions   s(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __init__Ìs   c    sA   ÑÒd t  | | d | d !ƒ | t  |  i ƒ f GHÔ| Sd  S(   Ns   Match %s (x=%d): %si   (   s   reprs   texts   xs   selfs   msg(   s   selfs   texts   xs   end(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   __call__Ñs   3(   s   __doc__s   __init__s   __call__(    (    (    s(   /mit/seven/lib/python/Martel/Generate.pys
   print_infoÊs   	c    sM  ×Øy Ùt  |  i } WnO Út j
 o@ Ût |  t i ƒ o Üt } n Þt	 d t
 |  ƒ ‚ n Xà| |  | | ƒ } â| d j o ãn« ä| d j o( å| i t t i t d 
d 
f ƒ ns æ| d j oR ç| i t t i t d 
d 
f ƒ è| i t t i t |  ƒ d 
d 
f ƒ n êt	 d | ‚ ì| Sd  S(   Ns   Unknown Expression object: %si    i   i   s   Unknown debug level: %s(   s   generate_tables
   expressions	   __class__s   funcs   KeyErrors
   isinstances
   Expressions   PassThroughs   generate_pass_throughs   AssertionErrors   reprs   groupref_namess   debug_levels   tables   appends   Nones   TTs   Calls   track_positions
   print_info(   s
   expressions   groupref_namess   debug_levels   tables   func(    (    s(   /mit/seven/lib/python/Martel/Generate.pys	   _generate×s    ($.i    c    sa   ðñòt  |  ƒ } ót |  | | ƒ } ô| o õd } n
 ÷d } øt | ƒ | f Sd S(   s,   expression -> Parser for the Expression treei   i    N(   s   _find_wanted_groupref_namess
   expressions   groupref_namess	   _generates   debug_levels   tagtables   want_groupref_namess   tuple(   s
   expressions   debug_levels   groupref_namess   want_groupref_namess   tagtable(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generateðs   
	c    s5   üýt  |  ƒ \ } } þt i | | | f ƒ Sd  S(   N(   s   generates
   expressions   tagtables   want_groupref_namess   Parsers   debug_level(   s
   expressions   debug_levels   want_groupref_namess   tagtable(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   generate_parserüs   c    s:  h  } t |  t i ƒ p t |  t i ƒ o6 x, |  i d r } | i t	 | ƒ ƒ qG WnÂt |  t i
 ƒ p# t |  t i ƒ p t |  t i ƒ o  | i t	 |  i ƒ ƒ ni"t |  t i ƒ oƒ #t |  i ƒ t d ƒ j o $d | |  i <n %t |  i ƒ t d ƒ j o &d | |  i <n '| i t	 |  i ƒ ƒ nÐ )t |  t i ƒ o *d | |  i <n¦ ,t |  t i ƒ po t |  t i ƒ p\ t |  t i ƒ pI t |  t i ƒ p6 t |  t i ƒ p# t |  t i ƒ p t |  t i ƒ o 3n 6t d t |  ƒ ‚ 8| Sd S(   s£  expression -> dict of group names wanted by elements of the tree

    The dict is used to during tagtable generation to specify which
    groups need to save their match text.  There's match-time overhead
    for doing that, and the code isn't thread safe, so the intent is
    to save only those groups that are needed.

    The dict value is 1 if the group name is needed, else there is
    no entry in the dict.
    i    s    i   s   What is a %s?N(   s
   want_namess
   isinstances
   expressions
   Expressions   Alts   Seqs   expressionss   xs   updates   _find_wanted_groupref_namess   Groups   Asserts   PassThroughs	   MaxRepeats   types	   min_counts	   max_counts   GroupRefs   names   Literals   Strs   Anys   AtBeginnings   AtEnds   Dots   AnyEols   NotImplementedErrors   repr(   s
   expressions
   want_namess   x(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   _find_wanted_groupref_namess(   
	) 	<ˆ(9   s   strings   mxs	   TextToolss   TTs   ImportErrors	   sre_parses
   Expressions
   convert_res   Parsers   hasattrs   supports_lookaheads   generate_alts   generate_seqs   generate_literals   generate_strs   generate_anys   SetGroupValues   generate_groups   HandleRepeatCounts   _call_calltags
   _call_calls   generate_named_max_repeats   generate_max_repeats   check_at_beginnings   generate_at_beginnings   generate_at_ends   generate_dots   generate_eols   check_assert_nots   CheckAssertNots   check_asserts   CheckAsserts   generate_asserts   CheckGroupRefs   generate_grouprefs   generate_pass_throughs   Alts   Anys   Asserts   AtBeginnings   AtEnds   Dots   AnyEols   Groups   GroupRefs   Literals	   MaxRepeats   Seqs   Strs   generate_tables	   _positions   track_positions
   print_infos	   _generates   generates   generate_parsers   _find_wanted_groupref_names('   s   check_assert_nots   generate_at_beginnings   generate_named_max_repeats   generates	   sre_parses   strings   track_positions
   print_infos   generate_alts   generate_anys   HandleRepeatCounts   check_asserts   generate_pass_throughs   Parsers   TTs   generate_seqs   CheckAsserts   _find_wanted_groupref_namess	   _generates
   _call_calls   supports_lookaheads   generate_asserts
   Expressions   check_at_beginnings   generate_strs   _call_calltags   generate_tables   generate_grouprefs   generate_parsers   CheckAssertNots   generate_dots   generate_groups   SetGroupValues
   convert_res   generate_at_ends   generate_literals   generate_max_repeats   CheckGroupRefs   generate_eol(    (    s(   /mit/seven/lib/python/Martel/Generate.pys   ? sR   -	
3&
	
		¥
