ó
”™xTc           @   sT   d  d l  m Z d e f d „  ƒ  YZ i d d 6d d 6d d	 6e d e d
 „ Z d S(   iÿÿÿÿ(   t   divisiont   operator_priority_evaluatorc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   operator_dict(   t   selfR   (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/simple_parser.pyt   __init__   s    c         C   s/   | j  d  k	 r d S|  j j | j j ƒ  d ƒ S(   Ni    (   t   quote_tokent   NoneR   t   gett   valuet   lower(   R   t   word(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/simple_parser.pyt   __call__   s     (   t   __name__t
   __module__R   R   (    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/simple_parser.pyR      s   	i   t   noti   t   andi   t   orc   
      c   só  t  d | ƒ } g  } x t r·|  j ƒ  } | d k r: Pn  | d k	 rY | j | k rY Pn  | j d k rx | j | ƒ q | j d k rx_ t rè t | ƒ d k r» | r¬ d St d ƒ ‚ n  | j ƒ  } | j d k rÚ Pn  | |  f VqŠ Wt | ƒ d k r´| r´d Sq | | ƒ }	 |	 d k rJ| |  f Vt | ƒ d k r´| r´d Sq xg t r³t | ƒ d k sŽ| d j d k sŽ|	 | | d ƒ k rŸ| j | ƒ PqM| j ƒ  d f VqMWq W| sÅt	 ‚ x' t | ƒ d k rî| j ƒ  d f VqÈWd S(   s5   http://www.programmersheaven.com/2/Art_Expressions_p1R   t   (t   )i    Ns;   Closing parenthesis without a matching opening parenthesis.iÿÿÿÿ(
   R   t   Truet   try_popR   R   t   appendt   lent   RuntimeErrort   popt   AssertionError(
   t   word_iteratorR   t   stop_if_parse_stack_is_emptyt	   stop_wordt&   expect_nonmatching_closing_parenthesist   operator_priorityt   parse_stackR
   t   itemt   word_priority(    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/simple_parser.pyt   infix_as_postfix   sL    	 	    	N(   t
   __future__R    t   objectR   t   FalseR   R"   (    (    (    sA   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/simple_parser.pyt   <module>   s
   