Ñò
3Nc           @   s·   d  d k  Z  d  d k Z d  d k Z d Z d Z e Z d e f d „  ƒ  YZ d e	 f d „  ƒ  YZ
 e  i d ƒ Z d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿNt	   paragrapht   blockt   Statec           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR   
   s   t   IllegalMarkupExceptionc           B   s   e  Z RS(    (   R   R   (    (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR      s   s   \n[ ]*$t   Environmentc           B   s   e  Z e d  „ Z RS(   c         C   s   | |  _  d  S(   N(   t   environ(   t   selfR   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   __init__   s    (   R   R   t	   PARAGRAPHR	   (    (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR      s   t   Parserc           B   st   e  Z d  „  Z d „  Z e d „ Z e d „ Z d „  Z e d „ Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z RS(   c         C   s\   | |  _  | |  _ d  |  _ t ƒ  |  _ | i |  i ƒ d |  i _ d  g |  _ t	 |  _
 d  S(   Ni    (   t   formatt   dialectt   NoneR   R   t   statet   initialize_statet   indext   nestingt   Truet   start_of_line(   R   R   R   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR	      s    			c         c   sÞ   t  o t i d |  i | f IJn | t j	 o¨ |  i | j o‹ x |  i t ƒ D] } | VqR W| d  j	 oI t |  i | d d „  ƒ } x* | |  i	 |  i
 d ƒ D] } | Vq¤ Wn |  i	 i d 7_ n | |  _ n d  S(   Ns   transitioning %s => %st   _startc         S   s   d  S(   (    (    (   t   st   e(    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   <lambda>*   s    iÿÿÿÿi   (   t   debugt   syst   stderrR   t   Falset   flush_hR   t   getattrR   R   R   R   (   R   R   t   wet   stat   p(    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   transition_to_environ!   s       	 c   )   #   #   s  t  o t i d | IJn | i d ƒ p | d 7} t } n t } x©| o¡t  o t i d ˆ  i IJn ˆ  i p& ˆ  i d  j o* t	 ˆ  i
 ƒ d j o d | } t } n t } d  } d  } t i } d  } x]d) D]U}	 xLt ˆ  i |	 ƒ D]8}
 |
 d } t | d	 ƒ o t | t ƒ o | d } n t | d	 ƒ o | ˆ  i ƒ } n | o. t	 |
 ƒ d
 j o d |
 d j o
 d } n d } t i | t i ƒ i | | ƒ } | or | i ƒ  | j  o_ t  o0 t i d |	 t | i ƒ  ƒ | i ƒ  f IJn |
 } | i ƒ  } | } | } |	 } qô qô WqÛ W| p)| o | d } n | o | d  } n t	 | ƒ d j o• ˆ  i d  j op t  o t i d t	 | ƒ IJn x, ˆ  i i ˆ  i ˆ  i
 d ƒ D] }
 |
 VqÊWˆ  i i d 7_ t ˆ  _ n ˆ  i i | ƒ Vn | o3 ˆ  i d  j	 o# x  ˆ  i t ƒ D] } | Vq4Wn t  o t i d IJn d  S| | o d n d j oó | |  i ƒ  p¦ t  i | |  ƒ d  j	 ˆ  _ t  o! t i d I| d I| IJn ˆ  i d  j oN x, ˆ  i i ˆ  i ˆ  i
 d ƒ D] }
 |
 VqWˆ  i i d 7_ t ˆ  _ q6n | o ˆ  i i | d | !ƒ Vqrˆ  i i | |  ƒ Vn | i! ƒ  } | d } | d  j	 p
 t" | ‚ t	 | ƒ d j o t# | d ƒ n h  } x: | D]2 } t | | d	 ƒ o | | | ƒ | | <qÐqÐW| i$ | ƒ t	 | ƒ d
 j o! | d
 | ƒ } | i$ | ƒ n d | j o | d =n d | j o. x  ˆ  i% | d ƒ D] }	 |	 Vq€W| d =n3| d j o¯ t  o t i d IJn ˆ  i t& j oz x ˆ  i t ƒ D] } | VqßWt ˆ  i t& d d „  ƒ } x& | ˆ  i ˆ  i
 d ƒ D] }
 |
 Vq$Wˆ  i i d 7_ n t& ˆ  _ nw ˆ  i d  j of t  o t i d IJn x, ˆ  i i ˆ  i ˆ  i
 d ƒ D] }
 |
 VqžWˆ  i i d 7_ t ˆ  _ n | d j p | d j osd | j o | d } | d =n t } | } | d d } | d  j	 o(| | } d } t } d } | o d | | f } n d | } | | i' ƒ  } xÂt oºt i | | t i ƒ } | oQ| i d ƒ d  j	 o­ | o! | i d ƒ d  j p t" ‚ n | d j oJ | | i' ƒ  | i' ƒ  | i ƒ  | !} | | i' ƒ  | i' ƒ  | } Pqö| d 8} | | i' ƒ  } | | i' ƒ  7} q@	| p t" ‚ | i d ƒ d  j	 p t" ‚ x< | D]* } | i | ƒ | i | ƒ j o PqžqžW| d 7} | | i' ƒ  } | | i' ƒ  7} qƒt  o t i d IJn | | i' ƒ  } ˆ  i i | i ƒ  ƒ Vt } PqƒW| o qI qÊ
ntt	 | | i' ƒ  ƒ }  | o |  d 8}  n xd* D]}	 xt ˆ  i |	 ƒ D]ï }! t	 |! ƒ d
 j  p& d |! d j p |! d d t j o q¢	n |! d } t | d	 ƒ o t | t ƒ o | d } n t | d	 ƒ o | ˆ  i ƒ } n t i | | | i' ƒ  t i ƒ } | o# | i ƒ  |  j  o | i ƒ  }  q¢	q¢	Wq‰	W| | i' ƒ  | i' ƒ  |  !} | | i' ƒ  |  } | i( d ƒ o& ‡  f d †  }" |" | ƒ } | d =nL | i( d ƒ o  d  „  }# |# | ƒ } | d =n ‡  f d! †  }$ |$ | ƒ } | | d" <nA | d j o | d }% | | i' ƒ  } n t p t" d# | ‚ t | d	 ƒ p yA t | t ƒ p t p t" t | ƒ ‚ n t ˆ  i | ƒ } WnH t) j
 o< x/ ˆ  i* d$ | ˆ  i i+ i, f ƒ D] }& |& VqWqI n Xˆ  i | d% <n ˆ  | d& <yV xO | |   D]A }' t |' t- ƒ o& x( ˆ  i% |' i ƒ D] }	 |	 Vq‰Wq`|' Vq`WWn; t. j
 o/ }( x( ˆ  i* d' |( i/ ƒ D] }& |& VqÐWn Xt ˆ  _ qI Wt  o t i d( | ˆ  i f IJn d  S(+   Ns   subparse_h! block=%ss   
s
   loop of %si   R   t   inlinet   entityi    t   __call__i   t	   nopaddingi   s   %s matches %s at %siÿÿÿÿs#   PARA because no markup, len(bit)=%ds   /subparse_h bits   PARA because nonzero startR   t   BLOCKR   c         S   s   d  S(   (    (    (   R   R   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR   Ž   s    s   PARA because not specifiedt   nestables%   (?<![~])(?P<mustart>%s)|(?P<muend>%s)s   (?<![~])(?P<muend>%s)t   muendt   mustarts   Couldn't find end!t   escapec            s   ‡  ‡ f d †  } | S(   Nc              s   ˆ i  i ˆ  ƒ S(   N(   R   R+   (    (   t   contentR   (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   escê   s    (    (   R,   R-   (   R   (   R,   s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt
   esc_helperé   s    t   unparsedc            s   ‡  f d †  } | S(   Nc              s   ˆ  S(   N(    (    (   R,   (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   unpñ   s    (    (   R,   R0   (    (   R,   s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt
   unp_helperð   s    c            s   ‡  ‡ f d †  } | S(   Nc             sá   ˆ i  i ˆ i ƒ t o t i d ˆ i  IJn d  ˆ _ ˆ i i }  d ˆ i _ ˆ i	 } ˆ i  d d j ˆ _	 ˆ i
 ˆ  ƒ } | ˆ i d t ƒ 7} ˆ i  i ƒ  ˆ _ t o t i d ˆ i IJn |  ˆ i _ | ˆ _	 | S(   Ns   Nesting: %si    iÿÿÿÿt   tablet   reset_states   Unnesting: (   R   t   appendR   R   R   R   R   R   R   R   t   subparset   flushR   t   pop(   t	   old_indext   old_start_of_linet   ret(   R,   R   (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   contù   s$     
		 
	(    (   R,   R;   (   R   (   R,   s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   cont_helperø   s    R,   s   Unknown type %s!s9   //**Markup {{{%s}}} unimplemented in format {{{%s}}}!**//R   t   parsers
   //**%s**//s!   /subparse_h empty block=%s env=%s(   s   blockR#   R$   (   s   blockR#   R$   (0   R   R   R   t   endswithR   R   R   R   R   t   lenR   t   maxintR   R   t   hasattrt
   isinstancet
   basestringt   ret   compilet	   MULTILINEt   searcht   startt   reprt   groupR   t   paragraph_startR   R   R
   R+   R   t   isspacet   ENDS_WITH_NEWLINEt	   groupdictt   AssertionErrort   dictt   updateR"   R'   t   endt   gett   AttributeErrort
   subparse_ht	   __class__R   R   R   t   message()   R   t   bitt   is_blockt   rpaddedt   paddedt   bestt   typt	   beststartt   bestmt   tR!   t   patt   post   mt   bestpatR   t   gdt   meaningt   argst   at   moreRH   R(   RR   t   macro_nestingt   macro_failedt   adjustt   eithert	   macro_bitt   endmR,   t   nt   endstartt   bR.   R1   R<   t   thingR   t   gR   (    (   R   s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyRU   0   sÔ    

  0

	  
+
! 0  	   ! 	
*  	  	 	  	


 !
 	
   
	
# 	
    c         C   s   d i  |  i | d | ƒƒ S(   Nu    RY   (   t   joinRU   (   R   RX   RY   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR5   ,  s    c         c   sÅ   |  i  d  j o d  St o t i d |  i  | f IJn t |  i |  i  d d „  ƒ } x& | |  i |  i d ƒ D] } | Vqs Wd  |  _  | o/ t	 ƒ  |  _ |  i i
 |  i ƒ d |  i _ n d  S(   Ns   Cleaning up %s rs=%st   _endc         S   s   d  S(   (    (    (   R   R   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR   3  s    iÿÿÿÿi    (   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R3   RR   R!   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR   .  s      		c         C   s   d i  |  i | ƒ ƒ S(   Nu    (   Ru   R   (   R   R3   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR6   ;  s    c         C   s(   t  i |  i | d t ƒ|  i t ƒ ƒ S(   NRY   (   t	   itertoolst   chainRU   R   R   (   R   t   markup(    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   fullparse_h=  s    c         C   s   d i  |  i | ƒ ƒ S(   Nu    (   Ru   Rz   (   R   Ry   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt	   fullparse@  s    c         C   s   |  i  i | ƒ S(   N(   R   R+   (   R   Rs   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR+   B  s    c         C   s   |  i  S(   N(   R   (   R   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt
   get_formatD  s    c         C   s   |  i  S(   N(   R   (   R   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   get_dialectF  s    (   R   R   R	   R"   R   RU   R5   R   R   R6   Rz   R{   R+   R|   R}   (    (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR      s   	
	ü					t   AbstractMarkupc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         c   sC   |  i  o5 x% | i |  i  d t ƒD] } | Vq# Wd |  _  n d  S(   NRY   t    (   t   junkRU   R   (   R   R=   R   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   endblockJ  s
    
 	c         C   s   d i  |  i | | ƒ ƒ S(   Nu    (   Ru   t   generate(   R   Ry   R   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   evaluateP  s    c         c   sÏ   t  | |  ƒ } t | d ƒ o | i d ƒ } n d |  _ xn | D]f } | i ƒ  } | p# xJ |  i | ƒ D] } | Vqk WqB |  i p | |  _ qB |  i d | 7_ qB Wx |  i | ƒ D] } | Vq¼ Wd S(   s?   Takes either an object with an iterator over lines or a string.t   splits   
N(   R   RA   R„   R   R€   t   stripR   (   R   Ry   R   R=   t   lR   (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR‚   S  s"    	  
 (   R   R   R   Rƒ   R‚   (    (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyR~   I  s   		(   RD   R   Rw   R
   R'   R   R   t   objectR   t	   ExceptionR   RE   RM   R   R   R~   (    (    (    s?   /afs/sipb.mit.edu/project/bazki/Checkout/lib/redbeans/markup.pyt   <module>   s   ÿ 4