*ë
€'á:c    
   sâ    d  Z    d k Z d k Z d k Z d k Z d k Z  d k l Z l Z l	 Z	  y  d k
 l Z Wn"   e j
 o ! d k Z n X# y $ d k l Z Wn& % e j
 o & d k l Z n X) d e i f d „  ƒ  YZ - d e f d „  ƒ  YZ 8 d	 e f d
 „  ƒ  YZ E h  Z L d e i f d „  ƒ  YZ h e g  ƒ Z k d „  Z ” d „  Z ± d e i f d „  ƒ  YZ ö d e i f d „  ƒ  YZ jd e i f d „  ƒ  YZ gd e i f d „  ƒ  YZ d S(   sœ  implement Martel parsers

The classes in this module are used by other Martel modules and not
typically by external users.

There are two major parsers, 'Parser' and 'RecordParser.'  The first
is the standard one, which parses the file as one string in memory
then generates the SAX events.  The other reads a record at a time
using a RecordReader and generates events after each read.  The
generated event callbacks are identical.

At some level, both parsers use "_do_callback" to convert mxTextTools
tags into SAX events.

XXX finish this documentation

XXX need a better way to get closer to the likely error position when
parsing.

XXX need to implement Locator

N(   s	   xmlreaders   _exceptionss   handler(   s	   TextTools(   s   StringIOs   ParserExceptionc      s   ) d  Z  * + RS(   s    used when a parse cannot be done(   s   __doc__(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   ParserException) s   	s   ParserPositionExceptionc      s   - . d „  Z  3 d „  Z RS(   Nc    s3   . / t  i |  0 d | 1 t ƒ 2 | |  _ d  S(   Ns'   error parsing at or beyond character %d(   s   ParserExceptions   __init__s   selfs   poss   None(   s   selfs   pos(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __init__. s   

c    s3   3 4 |  i | 7_ 5 d |  i |  _ 6 |  Sd  S(   Ns'   error parsing at or beyond character %d(   s   selfs   poss   offsets   _msg(   s   selfs   offset(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __iadd__3 s   (   s   __init__s   __iadd__(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   ParserPositionException- s   s   ParserRecordExceptionc      s   8 d  Z  9 : RS(   s4   used by the RecordParser when it can't read a record(   s   __doc__(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   ParserRecordException8 s   	s   MartelAttributeListc      s‰   L M d „  Z  O d „  Z Q d „  Z S d „  Z U d „  Z W d „  Z \ d „  Z ^ d „  Z ` d	 „  Z b d
 „  Z	 d d „  Z
 RS(   Nc    s   M N d Sd  S(   Ni    (    (   s   self(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys	   getLengthM s   c    s   O P t  | ‚ d  S(   N(   s
   IndexErrors   i(   s   selfs   i(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   getNameO s   c    s   Q R t  | ‚ d  S(   N(   s
   IndexErrors   i(   s   selfs   i(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   getTypeQ s   c    s   S T t  | ‚ d  S(   N(   s
   IndexErrors   i(   s   selfs   i(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   getValueS s   c    s   U V d Sd  S(   Ni    (    (   s   self(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __len__U s   c    s?   W X t  | ƒ t  d ƒ j o Y t | ‚ n [ t | ‚ d  S(   Ni    (   s   types   keys
   IndexErrors   KeyError(   s   selfs   key(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __getitem__W s   c    s   \ ] g  Sd  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   keys\ s   c    s   ^ _ g  Sd  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   values^ s   c    s   ` a g  Sd  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   items` s   c    s   b c d Sd  S(   Ni    (    (   s   selfs   key(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   has_keyb s   c    s   d e | Sd  S(   N(   s   alternative(   s   selfs   keys   alternative(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   getd s   (   s	   getLengths   getNames   getTypes   getValues   __len__s   __getitem__s   keyss   valuess   itemss   has_keys   get(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   MartelAttributeListL s   c 
   sK  k s t x| d t r} u | \ } }	 } } x | |	 j  o y | i |  | |	 !ƒ n, | t
 o! | |	 j p t d | |	 f ‚ ‚ | d j o ƒ | i | t ƒ n † | o ‡ t |  |	 | | | ƒ n ‰ | i |  |	 | !ƒ Š | } Œ | d j o  | i | ƒ n q W‘ | | j  o ’ | i |  | | !ƒ n d S(   s=  internal function to convert the tagtable into ContentHandler events

    's' is the input text
    'begin' is the current position in the text
    'end' is 1 past the last position of the text allowed to be parsed
    'taglist' is the tag list from mxTextTools.parse
    'cont_handler' is the SAX ContentHandler
    i    s   begin = %d and l = %ds   >ignoreN(   s   taglists   items   tags   ls   rs   subtagss   begins   cont_handlers
   characterss   ss	   __debug__s   AssertionErrors   startElements   _attribute_lists   _do_callbacks
   endElements   end(
   s   ss   begins   ends   taglists   cont_handlers   rs   tags   items   subtagss   l(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   _do_callbackk s"    	+
	c    sï   ” ™ š | o › d k } œ d | _ n ž t i |  | d t |  ƒ ƒ \ } } } ¢ | i t i j o ¤ t |  d | | | ƒ n ¦ | o/ § | o ¨ t | i ƒ Sn ª t | ƒ Sn) « | t |  ƒ j o ¬ | Sn ® t Sd S(   sÄ   parse the string with the tagtable and send the ContentHandler events

    Specifically, it sends the startElement, endElement and characters
    events but not startDocument and endDocument.
    Ni    (   s   debug_levels   Generates	   _positions	   TextToolss   tags   ss   tagtables   lens   results   taglists   poss   cont_handlers	   __class__s   handlers   ContentHandlers   _do_callbacks   ParserPositionExceptions   None(   s   ss   tagtables   cont_handlers   debug_levels   taglists   Generates   results   pos(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   _parse_elements” s   
*
s   Parserc      s_   ± d  Z  ² ´ d d f d „ Z Á d „  Z Æ d „  Z Ï d „  Z Ô d „  Z ó d „  Z RS(	   s"   Parse the input data all in memoryi    i   c    sw   ´ | \ } } µ t i i |  ƒ · t o# t | ƒ t f  ƒ j p
 t	 d ‚ ¸ | |  _ ½ | |  _  ¿ | |  _ d  S(   Ns(   mxTextTools only allows a tuple tagtable(
   s   want_groupref_namess   debug_levels	   xmlreaders	   XMLReaders   __init__s   selfs	   __debug__s   types   tagtables   AssertionError(   s   selfs   tagtables   .4s   want_groupref_namess   debug_level(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __init__´ s
   -c    s6   Á Â t  ƒ  } Ã t i |  i | ƒ Ä | i ƒ  Sd  S(   N(   s   StringIOs   xs   pprints   selfs   tagtables   getvalue(   s   selfs   x(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __str__Á s   c    s    Æ Ë Í |  i | i ƒ  ƒ d S(   s“   parse using the input file object

        XXX will be removed with the switch to Python 2.0, where parse()
        takes an 'InputSource'
        N(   s   selfs   parseStrings   fileobjs   read(   s   selfs   fileobj(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys	   parseFileÆ s   c    s#   Ï Ð Ò |  i t i | ƒ ƒ d S(   s   parse using the URLN(   s   selfs	   parseFiles   urllibs   urlopens   systemId(   s   selfs   systemId(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parseÏ s   c    sÒ   Ô Ù Ú |  i i ƒ  Ü |  i o Ý t i ƒ  n à t | |  i |  i á |  i	 ƒ } ã | t j o å nP ç t | t i ƒ o é |  i i | ƒ n# í | } î |  i i t | ƒ ƒ ñ |  i i ƒ  d S(   sŽ   parse using the given string

        XXX will be removed with the switch to Python 2.0, where parse()
        takes an 'InputSource'
        N(   s   selfs   _cont_handlers   startDocuments   want_groupref_namess   _match_groups   clears   _parse_elementss   ss   tagtables   debug_levels   results   Nones
   isinstances   _exceptionss   SAXExceptions   _err_handlers
   fatalErrors   poss   ParserPositionExceptions   endDocument(   s   selfs   ss   poss   result(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parseStringÔ s   	c    s
   ó ô d  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   closeó s   (   s   __doc__s   __init__s   __str__s	   parseFiles   parses   parseStrings   close(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   Parser± s   		s   RecordParserc      sY   ö d  Z  ÷ ø f  d „ Z d „  Z d „  Z Wd „  Z \d „  Z fd „  Z RS(   s'   Parse the input data a record at a timec    sž   ø | \ } } t i i |  ƒ 	| |  _ 
t o# t | ƒ t f  ƒ j p
 t
 d ‚ | |  _ | |  _  | |  _ | |  _ | |  _ d S(   s.  parse the input data a record at a time

        format_name - XML tag name for the whole data file
        record_tagtable - mxTexTools tag table for each record
        want_groupref_names - flag to say if the match_group table needs to
              be reset (will disappear with better support from mxTextTools)

        make_reader - callable object which creates a RecordReader; first
              parameter will be an input file object
        reader_args - optional arguments to pass to make_reader after the
              input file object
        s(   mxTextTools only allows a tuple tagtableN(   s   want_groupref_namess   debug_levels	   xmlreaders	   XMLReaders   __init__s   selfs   format_names	   __debug__s   types   record_tagtables   AssertionErrors   tagtables   make_readers   reader_args(   s   selfs   format_names   record_tagtables   .6s   make_readers   reader_argss   want_groupref_namess   debug_level(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __init__ø s   -c    s:   t  ƒ  } t i |  i | ƒ d | i ƒ  Sd  S(   Ns   parse records: (   s   StringIOs   xs   pprints   selfs   tagtables   getvalue(   s   selfs   x(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __str__s   c    s·  |  i i ƒ  y#  t |  i | f |  i ƒ } Wn !t t	 f j
 o "‚  nm #&t
 ƒ  } 't i d | ƒ (|  i i t | i ƒ  t i ƒ  d ƒ ƒ *|  i i ƒ  +d Sn X-|  i o .t i ƒ  n 0|  i i |  i t ƒ 1d } 2x{2d op3y 4| i ƒ  } Wn 5t t	 f j
 o 6‚  nm 7:t
 ƒ  } ;t i d | ƒ <|  i i t | i ƒ  t i ƒ  d ƒ ƒ >|  i i ƒ  ?d Sn XA| t j o BPn Ct | |  i  |  i D|  i! ƒ } F| t j o Hna It# | t$ i% ƒ o$ K| | 7} L|  i i& | ƒ n' O| | } P|  i i& t( | ƒ ƒ R| t) | ƒ } qWT|  i i* |  i ƒ U|  i i ƒ  d S(   s“   parse using the input file object

        XXX will be removed with the switch to Python 2.0, where parse()
        takes an 'InputSource'
        s   filei   Ni    (+   s   selfs   _cont_handlers   startDocuments   applys   make_readers   fileobjs   reader_argss   readers   KeyboardInterrupts
   SystemExits   StringIOs   outfiles	   tracebacks	   print_excs   _err_handlers
   fatalErrors   ParserRecordExceptions   getvalues   syss   exc_infos   endDocuments   want_groupref_namess   _match_groups   clears   startElements   format_names   _attribute_lists   fileposs   nexts   records   Nones   _parse_elementss   tagtables   debug_levels   results
   isinstances   _exceptionss   SAXExceptions   errors   poss   ParserPositionExceptions   lens
   endElement(   s   selfs   fileobjs   readers   records   results   outfiles   poss   filepos(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys	   parseFilesT   #
,	 

,c    s#   WXZ|  i t i | ƒ ƒ d S(   s   parse using the URLN(   s   selfs	   parseFiles   urllibs   urlopens   systemId(   s   selfs   systemId(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parseWs   c    s)   \act  | ƒ } d|  i | ƒ d S(   sŽ   parse using the given string

        XXX will be removed with the switch to Python 2.0, where parse()
        takes an 'InputSource'
        N(   s   StringIOs   ss   strfiles   selfs	   parseFile(   s   selfs   ss   strfile(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parseString\s   c    s
   fgd  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   closefs   (   s   __doc__s   __init__s   __str__s	   parseFiles   parses   parseStrings   close(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   RecordParserö s   	@
s   HeaderFooterParserc      sJ   jd  Z  kld „  Z „d „  Z Šd „  Z Žd „  Z ‘d „  Z RS(   s9   Header followed by 0 or more records followed by a footerc    s¶   l| \ } } qt i i |  ƒ s| |  _ u| |  _ v| |  _ w| |  _	 y| |  _
 z| |  _ {| |  _ }| |  _ ~|	 |  _ |
 |  _ | |  _  ‚| |  _ d  S(   N(   s   want_groupref_namess   debug_levels	   xmlreaders	   XMLReaders   __init__s   selfs   format_names   make_header_readers   header_reader_argss   header_tagtables   make_readers   reader_argss   record_tagtables   make_footer_readers   footer_reader_argss   footer_tagtable(   s   selfs   format_names   make_header_readers   header_reader_argss   header_tagtables   make_readers   reader_argss   record_tagtables   make_footer_readers   footer_reader_argss   footer_tagtables   .22s   want_groupref_namess   debug_level(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __init__ls   c    sL   „…t  ƒ  } †t i |  i |  i |  i f ‡| ƒ ˆd | i ƒ  Sd  S(   Ns   header footer records: (   s   StringIOs   xs   pprints   selfs   header_tagtables   record_tagtables   footer_tagtables   getvalue(   s   selfs   x(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __str__„s   
c    s&   Š‹t  | ƒ } Œ|  i | ƒ d  S(   N(   s   StringIOs   ss   strfiles   selfs	   parseFile(   s   selfs   ss   strfile(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parseStringŠs   c    s    Ž|  i t i | ƒ ƒ d  S(   N(   s   selfs	   parseFiles   urllibs   urlopens   systemID(   s   selfs   systemID(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parseŽs   c    sn  ‘’|  i i ƒ  “|  i i |  i t ƒ •|  i o –t i ƒ  n ™|  i	 t
 j	 o¡šy5 ›t |  i	 œ| f |  i ƒ } | i ƒ  }	 Wn žt t f j
 o Ÿ‚  nm  £t ƒ  } ¤t i d | ƒ ¥|  i i t | i ƒ  t i ƒ  d ƒ ƒ §|  i i ƒ  ¨d  Sn X«|	 t
 j o ¬d }	 n ®t |	 |  i ¯|  i |  i  ƒ } ±| t
 j o ³n~ ´t" | t# i$ ƒ o. ¶|  i i | ƒ ·|  i i ƒ  ¸d  Sn: »| }
 ¼|  i i t& |
 ƒ ƒ ½|  i i ƒ  ¾d  Sn Ã|  i	 t
 j o Ä| d f \ } } n Æ| i) ƒ  \ } } Éy2 Êt |  i* | f |  i+ Ëh  | d <ƒ } Wn Ìt t f j
 o Í‚  nm ÎÑt ƒ  } Òt i d | ƒ Ó|  i i t | i ƒ  t i ƒ  d ƒ ƒ Õ|  i i ƒ  Öd  Sn XØ|	 t
 j o Ùd } n Ût. |	 ƒ } Ýt
 } ÞxëÞd oàßy à| i ƒ  } Wn| ãt t f j
 o ä‚  n\ åét ƒ  } êt i d | ƒ ët | i ƒ  ìt i ƒ  d ƒ } ít
 } îPn Xð| t
 j o òPn ôt | |  i1 õ|  i |  i  ƒ } ÷| t
 j o ùnâ þ|  i2 t
 j	 oW  t" | t# i$ ƒ o  | | 7} | t
 f } n t& | | ƒ t
 f } Pnx 
t" | t# i$ ƒ o; t" | t& ƒ o | | 7} n |  i i3 | ƒ n' | | }
 |  i i3 t& |
 ƒ ƒ | t. | ƒ } q?W| i) ƒ  \ } }  | t
 j	 o #| | } n %|  i2 t
 j	 op'yD (t |  i2 )| f |  i4 *h  | d <ƒ } +| i ƒ  } WnË ,t t f j
 o -‚  n« .2| t
 j	 o. 3|  i i | ƒ 4|  i i ƒ  5d  Sn 8t ƒ  } 9t i d | ƒ :|  i i t | i ƒ  t i ƒ  d ƒ ƒ <|  i i ƒ  =d  Sn X?| t
 j o @d } n Bt | |  i6 C|  i |  i  ƒ } E| t
 j o Gnë H| t
 j	 o. I|  i i | ƒ J|  i i ƒ  Kd  Sn­ Lt" | t# i$ ƒ oY Mt" | t& ƒ o N| | | i% 7} n O|  i i | ƒ P|  i i ƒ  Qd  Sn> T| | }
 U|  i i t& |
 ƒ ƒ V|  i i ƒ  Wd  SZ| i) ƒ  \ } } n \| p | i7 d ƒ oG ]| t. | ƒ }
 ^|  i i t& |
 ƒ ƒ _|  i i ƒ  `d  Sn c|  i i8 |  i ƒ d|  i i ƒ  d  S(   Ns   filei   s    s	   lookaheadi    (9   s   selfs   _cont_handlers   startDocuments   startElements   format_names   _attribute_lists   want_groupref_namess   _match_groups   clears   make_header_readers   Nones   applys   fileobjs   header_reader_argss   header_readers   nexts   headers   KeyboardInterrupts
   SystemExits   StringIOs   outfiles	   tracebacks	   print_excs   _err_handlers
   fatalErrors   ParserRecordExceptions   getvalues   syss   exc_infos   endDocuments   _parse_elementss   header_tagtables   debug_levels   results
   isinstances   _exceptionss   SAXExceptions   poss   ParserPositionExceptions   xs	   lookaheads	   remainders   make_readers   reader_argss   readers   fileposs   lens   record_exc_infos   records   record_tagtables   make_footer_readers   errors   footer_reader_argss   footers   footer_tagtables   reads
   endElement(   s   selfs   fileobjs   xs   record_exc_infos   readers   fileposs   header_readers   results   records   headers   poss   footers   outfiles	   lookahead(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys	   parseFile‘s  
,	
,	 

	

,(   s   __doc__s   __init__s   __str__s   parseStrings   parses	   parseFile(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   HeaderFooterParserjs   	c      sJ   gd  Z  hid „  Z d „  Z ‡d „  Z ‹d „  Z Žd „  Z RS(   s9   Header followed by 0 or more records followed by a footerc    s¶   i| \ } } nt i i |  ƒ p| |  _ r| |  _ s| |  _ t| |  _	 v| |  _
 w| |  _ x| |  _ z| |  _ {|	 |  _ ||
 |  _ ~| |  _  | |  _ d  S(   N(   s   want_groupref_namess   debug_levels	   xmlreaders	   XMLReaders   __init__s   selfs   format_names   make_header_readers   header_reader_argss   header_tagtables   make_readers   reader_argss   record_tagtables   make_footer_readers   footer_reader_argss   footer_tagtable(   s   selfs   format_names   make_header_readers   header_reader_argss   header_tagtables   make_readers   reader_argss   record_tagtables   make_footer_readers   footer_reader_argss   footer_tagtables   .22s   want_groupref_namess   debug_level(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __init__is   c    sL   ‚t  ƒ  } ƒt i |  i |  i |  i f „| ƒ …d | i ƒ  Sd  S(   Ns   header footer records: (   s   StringIOs   xs   pprints   selfs   header_tagtables   record_tagtables   footer_tagtables   getvalue(   s   selfs   x(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   __str__s   
c    s&   ‡ˆt  | ƒ } ‰|  i | ƒ d  S(   N(   s   StringIOs   ss   strfiles   selfs	   parseFile(   s   selfs   ss   strfile(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parseString‡s   c    s    ‹Œ|  i t i | ƒ ƒ d  S(   N(   s   selfs	   parseFiles   urllibs   urlopens   systemID(   s   selfs   systemID(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   parse‹s   c    sÒ  Ž|  i i ƒ  |  i i |  i t ƒ ’|  i o “t i ƒ  n –d } —d } ˜|  i t j	 oÀ™y5 št |  i ›| f |  i ƒ } œ| i ƒ  } Wn™ t t f j
 o ž‚  ny Ÿ¡t ƒ  }	 ¢t i d |	 ƒ £t |	 i ƒ  ¤t i ƒ  d ƒ } ¥|  i i | ƒ ¦|  i i  ƒ  §d  Sn Xª| t j o «d } n ¬| t! | ƒ 7} ®t" | |  i# ¯|  i |  i$ ƒ } °| t j o ²n~ ³t& | t' i( ƒ o. µ|  i i | ƒ ¶|  i i  ƒ  ·d  Sn: º| }
 »|  i i t* |
 ƒ ƒ ¼|  i i  ƒ  ½d  Sn Â|  i t j o Ã| d f \ } } n Å| i, ƒ  \ } } Ç|  i- t j oxÉy2 Êt |  i. | f |  i/ Ëh  | d <ƒ } Wn™ Ìt t f j
 o Í‚  ny ÎÑt ƒ  }	 Òt i d |	 ƒ Ót |	 i ƒ  Ôt i ƒ  d ƒ } Õ|  i i | ƒ Ö|  i i  ƒ  ×d  Sn XÙxÙd o’Úy Û| i ƒ  } Wn™ Üt t f j
 o Ý‚  ny Þàt ƒ  }	 át i d |	 ƒ ât |	 i ƒ  ãt i ƒ  d ƒ } ä|  i i | ƒ å|  i i  ƒ  æd  Sn Xè| t j o1 ê|  i i2 |  i ƒ ë|  i i  ƒ  ìd  Sn ît" | |  i3 ï|  i |  i$ ƒ } ð| t j o ònN õt& | t' i( ƒ o ö| | 7} n øt* | | ƒ } ù|  i i4 | ƒ û| t! | ƒ 7} qZWn ýt5 o |  i- t j	 p
 t6 d ‚ t } y2 t |  i. | f |  i/ h  | d <ƒ } Wno t t f j
 o ‚  nO 	t ƒ  }	 t i d |	 ƒ t |	 i ƒ  t i ƒ  d ƒ } n Xx#| t j oy | i ƒ  } Wns t t f j
 o ‚  nS t ƒ  }	 t i d |	 ƒ t |	 i ƒ  t i ƒ  d ƒ } Pn X| t j o !t* | ƒ } "Pn $t" | |  i3 %|  i |  i$ ƒ } &| t j o (n,t& | t' i( ƒ o -| | 7} n /t* | | ƒ } 0| } 3yf 4d } 5| i, ƒ  \ } } 6t |  i- 7| f |  i9 8h  | | d <ƒ } 9| i ƒ  } Wn:t t f j
 o ;‚  nî <?|  i i4 | ƒ @t } C| i, ƒ  \ } } Dy9 Et |  i. F| f |  i/ Gh  | | d <ƒ } Wns Ht t f j
 o I‚  nS JMt ƒ  }	 Nt i d |	 ƒ Ot |	 i ƒ  Pt i ƒ  d ƒ } QPn Xn XWt" | |  i; X|  i |  i$ ƒ } Z| t j o§ ]| i, ƒ  \ } } ^| p | i< d ƒ oG `t* | t! | ƒ ƒ } b|  i i | ƒ c|  i i  ƒ  dd  Sn f|  i i2 |  i ƒ g|  i i  ƒ  hd  Snv l| i, ƒ  \ } } mt |  i. n| f |  i/ oh  | | d <ƒ } p| i ƒ  } q|  i i4 | ƒ rt } t| t! | ƒ 7} qÕWx| i, ƒ  \ } } yyD zt |  i- {| f |  i9 |h  | d <ƒ } }| i ƒ  } WnU ~t t f j
 o ‚  n5 €‚|  i i | ƒ ƒ|  i i  ƒ  „d  Sn X†| t j o ‡d } n ˆt" | |  i; ‰|  i |  i$ ƒ } Š| t j o§ | i, ƒ  \ } } Ž| p | i< d ƒ oG t* | t! | ƒ ƒ } ’|  i i | ƒ “|  i i  ƒ  ”d  Sn –|  i i2 |  i ƒ —|  i i  ƒ  ˜d  Sn+ ›|  i i | ƒ œ|  i i  ƒ  d  Sd  S(   Ni    s    s   filei   s	   lookaheads   internal error(=   s   selfs   _cont_handlers   startDocuments   startElements   format_names   _attribute_lists   want_groupref_namess   _match_groups   clears   fileposs	   lookaheads   make_header_readers   Nones   applys   fileobjs   header_reader_argss   header_readers   nexts   headers   KeyboardInterrupts
   SystemExits   StringIOs   outfiles	   tracebacks	   print_excs   ParserRecordExceptions   getvalues   syss   exc_infos   excs   _err_handlers
   fatalErrors   endDocuments   lens   _parse_elementss   header_tagtables   debug_levels   results
   isinstances   _exceptionss   SAXExceptions   poss   ParserPositionExceptions   xs	   remainders   make_footer_readers   make_readers   reader_argss   readers   records
   endElements   record_tagtables   errors	   __debug__s   AssertionErrors
   record_excs   footers   footer_reader_argss   footer_readers   footer_tagtables   read(   s   selfs   fileobjs   footer_readers   readers   records   excs   headers	   remainders   results   outfiles   poss   footers   xs   header_readers
   record_excs   fileposs	   lookahead(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys	   parseFileŽsz  		
	
 

$	
 
		
	
	
(   s   __doc__s   __init__s   __str__s   parseStrings   parses	   parseFile(    (    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   HeaderFooterParsergs   	(   s   __doc__s   urllibs   pprints	   tracebacks   syss   strings   xml.saxs	   xmlreaders   _exceptionss   handlers   mxs	   TextToolss   ImportErrors	   cStringIOs   StringIOs   SAXExceptions   ParserExceptions   ParserPositionExceptions   ParserRecordExceptions   _match_groups   AttributesImpls   MartelAttributeLists   _attribute_lists   _do_callbacks   _parse_elementss	   XMLReaders   Parsers   RecordParsers   HeaderFooterParser(   s   pprints   _exceptionss	   TextToolss   _do_callbacks	   tracebacks   handlers   RecordParsers   ParserExceptions   urllibs   Parsers   HeaderFooterParsers   ParserRecordExceptions   StringIOs   syss   _match_groups   _attribute_lists   MartelAttributeLists   ParserPositionExceptions	   xmlreaders   _parse_elementss   string(    (    s7   /mit/seven/lib/python2.1/site-packages/Martel/Parser.pys   ? s,   0	)Etý