-
<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 a 1 d f  d     YZ Y d   Z p d   Z  d   Z  d	   Z  d
   Z  d f  d     YZ  d   Z  d f  d     YZ  d f  d     YZ  d f  d     YZ d   Z d   Z Cd   Z Hd   Z Rd   Z `d   Z ed   Z id   Z qd   Z zd f  d     YZ  d   Z! d  f  d!     YZ" 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 i0 <e e i1 <e e i2 <e e i3 <e e i4 <Z5 d' a6 d(   Z7 d) f  d*     YZ8 d+   Z9 d d,  Z: d d-  Z; *d.   Z< d  S(/   N(   s	   TextToolss	   LookAheadi    s   GeneratorStatec      s/   1 t  Z 2 d   Z 7 d   Z > d   Z RS(   Nc    s+   2 3 | |  _  4 | |  _ 5 h  |  _ d  S(   N(   s   groupref_namess   selfs   debug_levels   lookup(   s   selfs   groupref_namess   debug_level(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __init__2 s   c    sK   7 8 | i } 9 | i } : |  i   } ; | | f |  i | << | Sd  S(   N(   s   groups   names   attrss   selfs   new_group_tags   tags   lookup(   s   selfs   groups   tags   names   attrs(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys	   add_group7 s
   c    s=   > ? @ t  } A d | } B | d } C | a  D | Sd  S(   Ns   >G%di   (   s   _generate_counts   is   tag(   s   selfs   is   tag(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   new_group_tag> s   		(   s   __name__s
   __module__s   __init__s	   add_groups   new_group_tag(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   GeneratorState1 s   	c    s   Y [ g  } \ x- |  i D\ ] } ] | i t | |   q W` d } a t |  } b g  } c xN | Dc ]C } d | i d t i t |  d | | d f  g | d } qj Wi | i t t i t i f  j | Sd  S(   Ni    s   >ignorei   (   s   tabless
   expressions   expressionss   exprs   appends	   _generates   genstates   is   lens   ns   results   tables   TTs   Tables   tuples   Nones   Fails   Here(   s
   expressions   genstates   tabless   is   exprs   ns   results   table(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_altY s   	 			
 	0c    s|  p q g  } r | i d j o@ s x6 |  i Ds ]( } t t | |  } u | i |  q, Wnv | i d j ob w xX |  i Dw ]J } x t | |  } y | i |  z | i	 t
 t i t d d f  q Wn { | i d j o | x |  i D| ]r } } t | |  } ~ | i |   | i	 t
 t i t d d f   | i	 t
 t i t |  d d f  q Wn  | Sd  S(   Ni    i   i   (   s   results   genstates   debug_levels
   expressions   expressionss   exps	   _generates   tables   extends   appends   Nones   TTs   Calls   track_positions
   print_info(   s
   expressions   genstates   results   exps   table(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_seqp s(   	 	 	* 	"0c    sS     |  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   Is(   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_literal s   &c    s      t  t i |  i f g Sd  S(   N(   s   Nones   TTs   Words
   expressions   string(   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_str s   c    sS     |  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   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_any s   &s   SetGroupValuec      s#    t  Z  d   Z  d   Z RS(   Nc    s     | |  _  d  S(   N(   s   names   self(   s   selfs   name(    (    s9   /mit/seven/lib/python2.2/site-packages/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(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __call__ s   (   s   __name__s
   __module__s   __init__s   __call__(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   SetGroupValue s   	c    s    t  |  i |  }  |  i }  | t j o*  t o |  i p
 t d   | Sn  | i	 i
 |  d j oC  |  i o  | i |   } n  | t i t |  f g SnM  |  i o  | i |   } n  t |  t i t i t |  f g Sd  S(   Ns   unnamed group can't have attrs!i   (   s	   _generates
   expressions   genstates   tagtables   names   Nones	   __debug__s   attrss   AssertionErrors   groupref_namess   gets	   add_groups   TTs   Tables   tuples   SetGroupValues   CallTag(   s
   expressions   genstates   tagtables   name(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_group s    s   HandleRepeatCountc      s;    t  Z  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(    (    s9   /mit/seven/lib/python2.2/site-packages/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	   min_counts	   max_count(    (    s9   /mit/seven/lib/python2.2/site-packages/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   tagtables   poss	   max_counts   results	   min_counts   taglist(    (    s9   /mit/seven/lib/python2.2/site-packages/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(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   calltag s   "(   s   __name__s
   __module__s   __init__s   _get_rangess   calls   calltag(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   HandleRepeatCount s   	s   _call_calltagc      s#    t  Z  d   Z  d   Z RS(   Nc    s     | |  _  d  S(   N(   s   objs   self(   s   selfs   obj(    (    s9   /mit/seven/lib/python2.2/site-packages/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(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __call__ s   (   s   __name__s
   __module__s   __init__s   __call__(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   _call_calltag s   	s
   _call_callc      s#    t  Z  d   Z d   Z RS(   Nc    s     | |  _  d  S(   N(   s   objs   self(   s   selfs   obj(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __init__ s   c    s    |  i i | | |  Sd  S(   N(   s   selfs   objs   calls   texts   xs   end(   s   selfs   texts   xs   end(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __call__s   (   s   __name__s
   __module__s   __init__s   __call__(    (    (    s9   /mit/seven/lib/python2.2/site-packages/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   genstates   tagtables   HandleRepeatCounts   tuples   counters   _call_calltags   TTs   Calls   CallTags
   _call_calls	   MatchFails   Nones   Skip(   s
   expressions   genstates   counters   tagtable(    (    s9   /mit/seven/lib/python2.2/site-packages/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  } .x9 t |  D.]( } /| i t t i t |  f  q W2| t i j o, 3| i t t i t |  d d f  nx 5| | j o 7na :| | } ;xM t |  D;]< } <| i d t i t |  | 
d f  ?| d } qs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   genstates	   __debug__s   AssertionErrors	   _generates   tagtables   results   ranges   is   appends   Nones   TTs   SubTables   tuples
   msre_parses	   MAXREPEATs   offsets   Table(	   s
   expressions   genstates   tagtables   is   exprs   offsets	   max_counts   results	   min_count(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_max_repeats*   /<	 	&, 	)c    s   CDg  Sd  S(   N(    (   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_null_opCs   c    sP   HI| d j o J| Sn K|  | d d j o L| Sn M| d Sd  S(   Ni    i   s   
(   s   xs   text(   s   texts   xs   end(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   check_at_beginningHs
   c    sr   RSt  o* Tt t i t i t d t i f g Sn8 Wt t i t d d f t t i d t i t i f g Sd  S(   Ni   i   i(   s   supports_lookaheads   Nones   TTs   Calls	   LookAheads   check_at_beginnings	   MatchFails   Skip(   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_at_beginningRs   
*c    s    `at  t i t i f g Sd  S(   N(   s   Nones   TTs   EOFs   Here(   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_at_end`s   c    s&   eft  t i t i d  f g Sd  S(   Ns   
(   s   Nones   TTs   IsInSets   invset(   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_dotes   c    sP   ij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   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_eolis   c    sK   qrt  i |  | | |  \ } } } s| o u| Sn w| d Sd  S(   Ni   (	   s   TTs   tags   texts   tagtables   xs   ends   results   taglists   pos(   s   texts   xs   ends   tagtables   results   poss   taglist(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   check_assert_notqs   $
s   CheckAssertNotc      s#   zt  Z {d   Z }d   Z RS(   Nc    s   {|| |  _  d  S(   N(   s	   tag_wordss   self(   s   selfs	   tag_words(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __init__{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(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __call__}s   (   s   __name__s
   __module__s   __init__s   __call__(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   CheckAssertNotzs   	c    sK   t  i |  | | |  \ } } } | o | d Sn | Sd  S(   Ni   (	   s   TTs   tags   texts	   tag_wordss   xs   ends   results   taglists   pos(   s   texts   xs   ends	   tag_wordss   results   poss   taglist(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   check_asserts   $
s   CheckAssertc      s#   t  Z d   Z d   Z RS(   Nc    s   | |  _  d  S(   N(   s	   tag_wordss   self(   s   selfs	   tag_words(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __init__s   c    s)   t  | | | |  i  } | Sd  S(   N(   s   check_asserts   texts   xs   ends   selfs	   tag_wordss   pos(   s   selfs   texts   xs   ends   pos(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __call__s   (   s   __name__s
   __module__s   __init__s   __call__(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   CheckAsserts   	c    s   t  |  i |  } |  i o t } n
 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   genstates   tagtables   inverts   CheckAssertNots   funcs   CheckAsserts   supports_lookaheads   Nones   TTs   Calls	   LookAheads   tuples	   MatchFails   Skip(   s
   expressions   genstates   tagtables   func(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_asserts   	
3s   CheckGroupRefc      s#   t  Z d   Z d   Z RS(   Nc    s   | |  _  d  S(   N(   s   names   self(   s   selfs   name(    (    s9   /mit/seven/lib/python2.2/site-packages/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(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __call__s   !(   s   __name__s
   __module__s   __init__s   __call__(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   CheckGroupRefs   	c    sA   t  t i t |  i  t i f t  t i d t i f g Sd  S(   Ni(   s   Nones   TTs   Calls   CheckGroupRefs
   expressions   names	   MatchFails   Skip(   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_grouprefs   c    s   t  |  i |  Sd  S(   N(   s	   _generates
   expressions   genstate(   s
   expressions   genstate(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_pass_throughs   ic    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(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   track_positions   
s
   print_infoc      s,   t  Z d  Z d   Z d   Z RS(   s-   Print information after each expression matchc    sU   t  |  } t |  d j o | d  d | d } n | |  _ d  S(   Ni(   i   s    ... i(   s   strs
   expressions   ss   lens   selfs   msg(   s   selfs
   expressions   s(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __init__s   c    sJ   d t  | t d | d  | d ! | t  |  i  f GH| Sd  S(   Ns   Match %s (x=%d): %si    i   (   s   reprs   texts   maxs   xs   selfs   msg(   s   selfs   texts   xs   end(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   __call__s   <(   s   __name__s
   __module__s   __doc__s   __init__s   __call__(    (    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys
   print_infos   c    sX  y t  |  i } WnO t j
 o@ t |  t i  o t } n t	 d t
 |    n X| |  |  } | i d j p | o n  | i d j o& | i t t i t d d f  nu | i d j oN | i t t i t d d f  | i t t i t |   d d f  n t	 d | i  | 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   genstates   tables   debug_levels   appends   Nones   TTs   Calls   track_positions
   print_info(   s
   expressions   genstates   funcs   table(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys	   _generates    &",c    sv   t  |   } t | |  } t |  |  } | o d } n
 d } t	 |  | | i
 f Sd S(   s,   expression -> Parser for the Expression treei   i    N(   s   _find_wanted_groupref_namess
   expressions   groupref_namess   GeneratorStates   debug_levels   genstates	   _generates   tagtables   want_groupref_namess   tuples   lookup(   s
   expressions   debug_levels   tagtables   genstates   want_groupref_namess   groupref_names(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generates   
	c    s;   t  |   \ } } } t i | | | | f  Sd  S(   N(   s   generates
   expressions   tagtables   want_groupref_namess
   attrlookups   Parsers   debug_level(   s
   expressions   debug_levels   tagtables
   attrlookups   want_groupref_names(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   generate_parsers   c    sK  *67h  } 8t |  t i  p t |  t i  o4 :x* |  i D:] } ;| i t	 |   qE Wn=t |  t i
  p# t |  t i  p t |  t i  o @| i t	 |  i   n|Bt |  t i  o Ct |  i  t d  j o Dd | |  i <n Et |  i  t d  j o Fd | |  i <n G| i t	 |  i   n It |  t i  o Jd | |  i <n Lt |  t i  p 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 Tn Wt d t |    Y| 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.

    XXX need to make this a method!
    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   NullOps   NotImplementedErrors   repr(   s
   expressions   xs
   want_names(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   _find_wanted_groupref_names*s(   	) 	<(=   s   strings   mxs	   TextToolss   TTs   ImportErrors
   msre_parses
   Expressions
   convert_res   Parsers   hasattrs   supports_lookaheads   _generate_counts   GeneratorStates   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   generate_null_ops   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   NullOps   Seqs   Strs   generate_tables	   _positions   track_positions
   print_infos	   _generates   generates   generate_parsers   _find_wanted_groupref_names()   s   CheckGroupRefs   generate_literals   generate_at_ends   SetGroupValues   generate_groups   GeneratorStates	   _generates   generate_pass_throughs
   msre_parses   strings
   _call_calls   CheckAsserts   _find_wanted_groupref_namess   TTs   generate_anys   HandleRepeatCounts   generate_asserts   supports_lookaheads   generate_at_beginnings   check_assert_nots   generate_eols   check_asserts
   convert_res   generate_max_repeats   generate_dots   CheckAssertNots   generate_grouprefs   _call_calltags   generate_strs   check_at_beginnings
   Expressions   generates   generate_named_max_repeats   generate_parsers   generate_seqs   Parsers   generate_tables   generate_alts
   print_infos   track_positions   generate_null_op(    (    s9   /mit/seven/lib/python2.2/site-packages/Martel/Generate.pys   ? sX   	(	
!3%
	
		
	