-í
<Û<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 l e g  ƒ Z o d „  Z ¬ d „  Z É d e i f d „  ƒ  YZ d e i f d „  ƒ  YZ „d e i f d „  ƒ  YZ …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   ) t  Z d  Z * + RS(   s    used when a parse cannot be done(   s   __name__s
   __module__s   __doc__(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   ParserException) s   s   ParserPositionExceptionc      s#   - t  Z . 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.2/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.2/site-packages/Martel/Parser.pys   __iadd__3 s   (   s   __name__s
   __module__s   __init__s   __iadd__(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   ParserPositionException- s   	s   ParserRecordExceptionc      s   8 t  Z d  Z 9 : RS(   s4   used by the RecordParser when it can't read a record(   s   __name__s
   __module__s   __doc__(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   ParserRecordException8 s   s   MartelAttributeListc      s§   L t  Z 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 f d „  Z h d „  Z RS(   Nc    s   M N d Sd  S(   Ni    (    (   s   self(    (    s7   /mit/seven/lib/python2.2/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.2/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.2/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.2/site-packages/Martel/Parser.pys   getValueS s   c    s   U V d Sd  S(   Ni    (    (   s   self(    (    s7   /mit/seven/lib/python2.2/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.2/site-packages/Martel/Parser.pys   __getitem__W s   c    s   \ ] g  Sd  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   keys\ s   c    s   ^ _ g  Sd  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   values^ s   c    s   ` a g  Sd  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   items` s   c    s   b c d Sd  S(   Ni    (    (   s   selfs   key(    (    s7   /mit/seven/lib/python2.2/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.2/site-packages/Martel/Parser.pys   getd s   c    s   f g d Sd  S(   Ns   {}(    (   s   self(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   __repr__f s   c    s   h i d Sd  S(   Ns   {}(    (   s   self(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   __str__h s   (   s   __name__s
   __module__s	   getLengths   getNames   getTypes   getValues   __len__s   __getitem__s   keyss   valuess   itemss   has_keys   gets   __repr__s   __str__(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   MartelAttributeListL s   	c    s-  o w x xò| Dx ]ç}	 y |	 \ }
 } } } | | | j  o } | i |  | | !ƒ n, € t
 o! | | j p t d | | f ‚ ‚ |
 d d j or ƒ |
 d j o ˆ nX Š |
 d  d j o* Œ | |
 \ } }  | i | | ƒ n  t d t |
 ƒ ƒ ‚ n “ | i |
 t ƒ – | o  — t |  | | | | | ƒ n ™ | i |  | | !ƒ š | } œ |
 d d j oo  |
 d j o ž nU Ÿ |
 d  d j o'   | |
 \ } } ¡ | i | ƒ n £ t d t |
 ƒ ƒ ‚ n ¥ | i |
 ƒ 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
    s   begin = %d and l = %di    s   >s   >ignorei   s   >Gs   Unknown special tag %sN(   s   taglists   items   tags   ls   rs   subtagss   begins   cont_handlers
   characterss   ss	   __debug__s   AssertionErrors
   attrlookups   realtags   attrss   startElements   reprs   _attribute_lists   _do_callbacks
   endElements   end(   s   ss   begins   ends   taglists   cont_handlers
   attrlookups   realtags   ls   subtagss   items   tags   rs   attrs(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   _do_callbacko 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
   attrlookups   ParserPositionExceptions   None(	   s   ss   tagtables   cont_handlers   debug_levels
   attrlookups   poss   results   Generates   taglist(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   _parse_elements¬ s   
* 
s   Parserc      sh   É t  Z d  Z Ê Ì d d h  f d „ Z Ú d „  Z ß d „  Z è d „  Z í d „  Z d „  Z RS(	   s"   Parse the input data all in memoryi    i   c    s†   Ì | \ } } } Í 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
   attrlookups	   xmlreaders	   XMLReaders   __init__s   selfs	   __debug__s   types   tagtables   AssertionError(   s   selfs   tagtables   .4s   want_groupref_namess   debug_levels
   attrlookup(    (    s7   /mit/seven/lib/python2.2/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.2/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.2/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.2/site-packages/Martel/Parser.pys   parseè s   c    sØ   í ò ó |  i i ƒ  õ |  i o ö t i ƒ  n ù t | |  i |  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
   attrlookups   results   Nones
   isinstances   _exceptionss   SAXExceptions   _err_handlers
   fatalErrors   poss   ParserPositionExceptions   endDocument(   s   selfs   ss   poss   result(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   parseStringí s   	c    s
   d  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   closes   (	   s   __name__s
   __module__s   __doc__s   __init__s   __str__s	   parseFiles   parses   parseStrings   close(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   ParserÉ s   	s   RecordParserc      s_   t  Z d  Z f  d „ Z ,d „  Z 1d „  Z qd „  Z vd „  Z €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
   attrlookups	   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_levels
   attrlookup(    (    s7   /mit/seven/lib/python2.2/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.2/site-packages/Martel/Parser.pys   __str__,s   c    s½  167|  i i ƒ  9y# :t |  i | f |  i ƒ } Wn ;t t	 f j
 o <‚  nm =@t
 ƒ  } At i d | ƒ B|  i i t | i ƒ  t i ƒ  d ƒ ƒ D|  i i ƒ  Ed Sn XG|  i o Ht i ƒ  n J|  i i |  i t ƒ Kd } LxLd ovMy N| i ƒ  } Wn Ot t	 f j
 o P‚  nm QTt
 ƒ  } Ut i d | ƒ V|  i i t | i ƒ  t i ƒ  d ƒ ƒ X|  i i ƒ  Yd Sn X[| t j o \Pn ]t | |  i  |  i ^|  i! |  i" ƒ } `| t j o bna ct$ | t% i& ƒ o$ e| | 7} f|  i i' | ƒ n' i| | } j|  i i' t) | ƒ ƒ l| t* | ƒ } qWn|  i i+ |  i ƒ o|  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
   attrlookups   results
   isinstances   _exceptionss   SAXExceptions   errors   poss   ParserPositionExceptions   lens
   endElement(   s   selfs   fileobjs   fileposs   poss   outfiles   results   records   reader(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys	   parseFile1sT   #
,	 

,c    s#   qrt|  i t i | ƒ ƒ d S(   s   parse using the URLN(   s   selfs	   parseFiles   urllibs   urlopens   systemId(   s   selfs   systemId(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   parseqs   c    s)   v{}t  | ƒ } ~|  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.2/site-packages/Martel/Parser.pys   parseStringvs   c    s
   €d  S(   N(    (   s   self(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   close€s   (	   s   __name__s
   __module__s   __doc__s   __init__s   __str__s	   parseFiles   parses   parseStrings   close(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   RecordParsers   @
s   HeaderFooterParserc      sP   „t  Z d  Z …†d „  Z Ÿd „  Z ¥d „  Z ©d „  Z ¬d „  Z RS(   s9   Header followed by 0 or more records followed by a footerc    sÅ   †| \ } } } ‹t i i |  ƒ | |  _ | |  _ | |  _	 ‘| |  _
 “| |  _ ”| |  _ •| |  _ —| |  _ ˜|	 |  _ ™|
 |  _ ›| |  _  œ| |  _ | |  _ d  S(   N(   s   want_groupref_namess   debug_levels
   attrlookups	   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_levels
   attrlookup(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   __init__†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.2/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.2/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.2/site-packages/Martel/Parser.pys   parse©s   c    s‰  ¬­|  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  Ë|  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 |
 |  i2 |  i |  i  |  i! ƒ } | t
 j o nâ |  i3 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 i4 | ƒ n' /| | } 0|  i i4 t' | ƒ ƒ 2| t/ |
 ƒ } qHW<| i* ƒ  \ } } =|
 t
 j	 o @|
 | } n B|  i3 t
 j	 oyDyD Et |  i3 F| f |  i5 Gh  | d <ƒ } H| i ƒ  } WnË It t f j
 o J‚  n« KO| t
 j	 o. P|  i i | ƒ Q|  i i ƒ  Rd  Sn Ut ƒ  }	 Vt i d |	 ƒ W|  i i t |	 i ƒ  t i ƒ  d ƒ ƒ Y|  i i ƒ  Zd  Sn X\| t
 j o ]d } n _t | |  i7 `|  i |  i  a|  i! ƒ } c| t
 j o enë f| t
 j	 o. g|  i i | ƒ h|  i i ƒ  id  Sn­ jt# | t$ i% ƒ oY kt# | t' ƒ o l| | | i& 7} n m|  i i | ƒ n|  i i ƒ  od  Sn> r| | } s|  i i t' | ƒ ƒ t|  i i ƒ  ud  Sx| i* ƒ  \ } } n z| p | i8 d ƒ oG {| t/ | ƒ } ||  i i t' | ƒ ƒ }|  i i ƒ  ~d  Sn |  i i9 |  i ƒ ‚|  i i ƒ  d  S(   Ns   filei   s    s	   lookaheadi    (:   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
   attrlookups   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   footers   fileposs   header_readers   readers   poss   headers   results   outfiles   records	   lookaheads   record_exc_infos   x(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys	   parseFile¬s
  
,	
,	 

	

,(   s   __name__s
   __module__s   __doc__s   __init__s   __str__s   parseStrings   parses	   parseFile(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   HeaderFooterParser„s   c      sP   …t  Z d  Z †‡d „  Z  d „  Z ¦d „  Z ªd „  Z ­d „  Z RS(   s9   Header followed by 0 or more records followed by a footerc    sÅ   ‡| \ } } } Œt i i |  ƒ Ž| |  _ | |  _ ‘| |  _	 ’| |  _
 ”| |  _ •| |  _ –| |  _ ˜| |  _ ™|	 |  _ š|
 |  _ œ| |  _  | |  _ ž| |  _ d  S(   N(   s   want_groupref_namess   debug_levels
   attrlookups	   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_levels
   attrlookup(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   __init__‡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.2/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.2/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.2/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$ Ï|  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 oéy2 êt |  i/ | f |  i0 ë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 i3 |  i ƒ |  i i  ƒ  d  Sn t" | |  i4 |  i |  i$ |  i% ƒ } | t j o nN t' | t( i) ƒ o | | 7} n t+ | | ƒ } |  i i5 | ƒ | t! | ƒ 7} qcWn t6 o |  i. t j	 p
 t7 d ‚ $t } %y2 &t |  i/ | f |  i0 'h  | d <ƒ } Wno (t t f j
 o )‚  nO *-t ƒ  } .t i d | ƒ /t | i ƒ  0t i ƒ  d ƒ } n X2x52| t j o$3y 4| i ƒ  } Wns 5t t f j
 o 6‚  nS 7:t ƒ  } ;t i d | ƒ <t | i ƒ  =t i ƒ  d ƒ } >Pn X@| t j o Bt+ | ƒ } CPn Et" | |  i4 F|  i |  i$ G|  i% ƒ } H| t j o JnNt' | t( i) ƒ o O| | 7} n Qt+ | | ƒ } R| } Uyf Vd } W| i- ƒ  \ } } Xt |  i. Y| f |  i: Zh  | | d <ƒ } [| i ƒ  } Wn\t t f j
 o ]‚  nî ^a|  i i5 | ƒ bt } e| i- ƒ  \ } } fy9 gt |  i/ h| f |  i0 ih  | | d <ƒ } Wns jt t f j
 o k‚  nS lot ƒ  } pt i d | ƒ qt | i ƒ  rt i ƒ  d ƒ } sPn Xn Xyt" | |  i< z|  i |  i$ {|  i% ƒ } }| t j o§ €| i- ƒ  \ } }	 |	 p | i= d ƒ oG ƒt+ | t! | ƒ ƒ } …|  i i | ƒ †|  i i  ƒ  ‡d  Sn ‰|  i i3 |  i ƒ Š|  i i  ƒ  ‹d  Snv | i- ƒ  \ } }	 t |  i/ ‘| f |  i0 ’h  | |	 d <ƒ } “| i ƒ  } ”|  i i5 | ƒ •t } —| t! | ƒ 7} qçW›| i- ƒ  \ } }	 œyD t |  i. ž| f |  i: Ÿ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$ ­|  i% ƒ } ®| t j o§ ±| i- ƒ  \ } }	 ²|	 p | i= d ƒ oG ´t+ | t! | ƒ ƒ } ¶|  i i | ƒ ·|  i i  ƒ  ¸d  Sn º|  i i3 |  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
   attrlookups   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   footers   fileposs   header_readers   readers   poss   outfiles   results	   remainders   excs	   lookaheads   headers
   record_excs   records   xs   footer_reader(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys	   parseFile­s„  		
	
 

$	
 
		
	
	
(   s   __name__s
   __module__s   __doc__s   __init__s   __str__s   parseStrings   parses	   parseFile(    (    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   HeaderFooterParser…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	   tracebacks   strings   Parsers   ParserPositionExceptions	   xmlreaders   MartelAttributeLists   _parse_elementss   syss   _match_groups   _exceptionss   StringIOs   ParserRecordExceptions   pprints   _do_callbacks   urllibs   ParserExceptions   RecordParsers   handlers   HeaderFooterParsers   _attribute_lists	   TextTools(    (    s7   /mit/seven/lib/python2.2/site-packages/Martel/Parser.pys   ? s.   0	 =Fuÿ 