
V]c        5   @@  s  d  d l  m Z d  d l Z e j d e d e d e d e d e d e d	 e d
 e d e d e d e d e d e d e d e d e d e d e d e d e d e d e d e d e j d e j d e  d  d l m Z d  d l	 Z	 d  d l
 Z
 d  d l m Z m Z d  d l m Z m Z d  d! l m Z m Z m Z d  d" l m Z d  d# l m Z d  d$ l m Z d  d% l m Z d  d& l m Z m Z m Z m Z d  d' l  m  Z  d  d( l! m" Z" m# Z# d) d* l m$ Z$ d  d+ l m% Z% d  d, l m& Z& e
 j' d  d- k Z( e
 j) d. k Z* d$Z+ d2 e f d3     YZ, d4 d5  Z- d6   Z. d7   Z/ d8   Z0 e1 d9  Z2 d:   Z3 d;   Z4 d<   Z5 d=   Z6 d>   Z7 d?   Z8 d@   Z9 dA   Z: dB   Z; dC   Z< dD   Z= dE   Z> e j e? e? dF dG dH dI dJ dK dL dM dN dO g
   Z@ dP   ZA dQ   ZB dR   ZC dS   ZD dT   ZE dU   ZF dV   ZG dW   ZH dX   ZI dY   ZJ dZ   ZK d[   ZL d\   ZM d]   ZN d^   ZO d_   ZP e1 d`  ZQ da   ZR db   ZS dc   ZT dd   ZU de   ZV df   ZW dg   ZX dh   ZY d d di  Z[ dj   Z\ dk   Z] dl   Z^ dm   Z_ dn   Z` do dp  Za dq   Zb d dr  Zc ds   Zd g  e1 ee f D]5 Zf e	 jg dt ef rudu n dv dw jh dx   ji ^ qZ\ Zj Zk dy   Zl dz   Zm d{   Zn d|   Zo d}   Zp d~   Zq d   Zr d   Zs d d  Zt d d  Zu d   Zv d   Zw d   Zx d   Zy e j e? e? d d d d d d g   Zz d   Z{ d   Z| d   Z} d   Z~ d   Z d   Z d  d  Z d   Z d   Z d   Z d   Z d   Z d  d  Z e j e? e? d d d g   Z d   Z d   Z d   Z d   Z e j e? e? d d d g   Z d   Z d   Z d   Z d   Z ee d  Z e1 ee d  Z d   Z d   Z e j e? e? dF dJ dG dI g   Z d   Z d   Z e1 ee d  Z d   Z d   Z d   Z d   Z ee d  Z d   Z d  d  Z d  d  Z d   Z d   Z d   Z d  d  Z d  d  Z e,   d  Z ee d  Z d d  Z d  d  d d  Z d   Z e j e? e? d d d g   Z d d  Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e j e? e? d d d d d d g   Z e j e i d%d 6d&d 6d'd 6d(d 6d)d 6d*d 6d+d 6d,d 6 Z e j e? e? d d d d g   Z e j e? e e Be? e  B Z e j e? e? d d d d g   Z d   Z d   Z e,   d  d  d  d  d  d  d  Z d   Z d   Z e j e? e? d d d d d d d d d d d d d d dH dL dI dG dJ dF d d d d d g   Z d   Z d   Z d   Z d   Z e j e? e? d d d d d g   Z e,   d  d  d  d  d  d  Z d   Z d  d  d  d  d Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z d	  Z d
  Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z d ee d Z d d  d Z d  d Z d  Z d  Z d  Z d  Z d  Z d  Z d  Z d e, d Z e j e e	 jg d ji  Z d  Z e, d Z d   Z d!  Z d"  Z d d# Z d S(-  i    (   t   absolute_importNt   Nodest	   ExprNodest   EncodedStringt   bytes_literalt   StringEncodingt   FileSourceDescriptort   lookup_unicodechart   unicode_categoryt   Futuret   Optionst   errort   warningt   Builtint
   ModuleNodet   Utilst   _unicodet   _bytest   ret   syst   _parse_escape_sequencest   _parse_escape_sequences_rawt   partialt   reducet   _IS_PY3t   _IS_2BYTE_UNICODEt   _CDEF_MODIFIERS(   t   StringIO(   t   lookupt   category(   R   R   i   (   t   PyrexScannerR   t   StringSourceDescriptor(   R   (   R   (   R   (   R   (   R   R   R   R   (   R   (   R   R   i   (   R   (   R	   (   R
   i   i  t   inlinet   nogilt   apit   Ctxc           B@  sV   e  Z d  Z d Z d Z d Z d Z d Z d Z d Z
 d Z e Z d   Z d   Z RS(   t   othert   privatei    c         K@  s   |  j  j |  d  S(   N(   t   __dict__t   update(   t   selft   kwds(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   __init__7   s    c         K@  s3   t    } | j } | j |  j  | j |  | S(   N(   R#   R&   R'   (   R(   R)   t   ctxt   d(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   __call__:   s
    		N(   t   __name__t
   __module__t   levelt
   visibilityt	   cdef_flagt   typedef_flagR"   t   overridableR!   t   Nonet	   namespacet	   templatest   Falset   allow_struct_enum_decoratorR*   R-   (    (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR#   *   s   	s   Expected an identifierc         C@  s7   |  j  d k r& |  j } |  j   | S|  j |  d  S(   Nt   IDENT(   t   syt   systringt   nextR   (   t   st   messaget   name(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_identB   s
    	
c         C@  sW   g  } xJ |  j  d k rR | j |  j  |  j   |  j  d k rE Pn  |  j   q	 W| S(   NR:   t   ,(   R;   t   appendR<   R=   (   R>   t   names(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_ident_listJ   s    
c         C@  s)   |  j    } |  j } |  j   | | f S(   N(   t   positionR;   R=   (   R>   t   post   op(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_binop_operatorZ   s    	
c         C@  s   | |   } x |  j  | k r t |   \ } } | |   } t j | | | |  } | d k r t j |  j j k r t | _	 q d  | _	 q q W| S(   Nt   /(   R;   RI   R   t
   binop_nodeR	   t   divisiont   contextt   future_directivest   Truet   truedivisionR5   (   R>   t   opst
   p_sub_exprt   n1RH   RG   t   n2(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_binop_expr`   s    c      
   C@  s   |  j    } |  j   |  j d k r8 g  } d  } } n! t |  d d d t \ } } } |  j d  | r{ t |   } n t |   } t	 j
 | d | d | d | d | S(   Nt   :t
   terminatort	   annotatedt   argst   star_argt   starstar_argt   result_expr(   RF   R=   R;   R5   t   p_varargslistR8   t   expectt   p_testt   p_test_nocondR   t
   LambdaNode(   R>   t   allow_conditionalRG   RY   RZ   R[   t   expr(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt	   p_lambdefo   s    
c         C@  s   t  |  d t S(   NRb   (   Rd   R8   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_lambdef_nocond   s    c         C@  s   |  j  d k r t |   S|  j   } t |   } |  j  d k r |  j   t |   } |  j d  t |   } t j | d | d | d | S| Sd  S(   Nt   lambdat   ift   elset   testt   true_valt	   false_val(	   R;   Rd   RF   t	   p_or_testR=   R^   R_   R   t   CondExprNode(   R>   RG   Rc   Ri   R$   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR_      s    

c         C@  s'   |  j  d k r t |   St |   Sd  S(   NRf   (   R;   Re   Rl   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR`      s    
c         C@  s   t  |  d t  S(   Nt   or(   Rn   (   t   p_rassoc_binop_exprt
   p_and_test(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRl      s    c         C@  sk   | |   } |  j  | k rg |  j   } |  j  } |  j   t |  | |  } t j | | | |  } n  | S(   N(   R;   RF   R=   Ro   R   RK   (   R>   RQ   t	   p_subexprRS   RG   RH   RT   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRo      s    	
c         C@  s   t  |  d t  S(   Nt   and(   Rr   (   Ro   t
   p_not_test(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRp      s    c         C@  sL   |  j  d k r> |  j   } |  j   t j | d t |   St |   Sd  S(   Nt   nott   operand(   R;   RF   R=   R   t   NotNodeRs   t   p_comparison(   R>   RG   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRs      s
    
c         C@  s   t  |   } |  j t k r |  j   } t |   } t  |   } t j | d | d | d | } |  j t k r t |   | _ q n  | S(   Nt   operatort   operand1t   operand2(	   t   p_starred_exprR;   t   comparison_opsRF   t   p_cmp_opR   t   PrimaryCmpNodet   p_cascaded_cmpt   cascade(   R>   RS   RG   RH   RT   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRw      s    c         C@  s'   |  j  d k r t |   St |   Sd  S(   Nt   *(   R;   R{   R_   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_test_or_starred_expr   s    
c         C@  s_   |  j    } |  j d k r. t } |  j   n t } t |   } | r[ t j | |  } n  | S(   NR   (   RF   R;   RO   R=   R8   t
   p_bit_exprR   t   StarredUnpackingNode(   R>   RG   t   starredRc   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR{      s    c         C@  sd   |  j    } t |   } t |   } t j | d | d | } |  j t k r` t |   | _ n  | S(   NRx   Rz   (	   RF   R}   R{   R   t   CascadedCmpNodeR;   R|   R   R   (   R>   RG   RH   RT   t   result(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR      s    c         C@  s   |  j  d k r/ |  j   |  j d  d } nW |  j  d k rs |  j   |  j  d k rj |  j   d } q d } n |  j  } |  j   | d k r d } n  | S(   NRt   t   int   not_int   ist   is_nots   <>s   !=(   R;   R=   R^   (   R>   RH   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR}      s    
	

			
	t   <t   >s   ==s   >=s   <=s   <>s   !=R   R   Rt   c         C@  s   t  |  d t  S(   Nt   |(   R   (   RU   t
   p_xor_expr(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    c         C@  s   t  |  d t  S(   Nt   ^(   R   (   RU   t
   p_and_expr(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   	  s    c         C@  s   t  |  d t  S(   Nt   &(   R   (   RU   t   p_shift_expr(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    c         C@  s   t  |  d t  S(   Ns   <<s   >>(   s   <<s   >>(   RU   t   p_arith_expr(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    c         C@  s   t  |  d t  S(   Nt   +t   -(   R   R   (   RU   t   p_term(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    c         C@  s   t  |  d t  S(   NR   t   @RJ   t   %s   //(   R   R   RJ   R   s   //(   RU   t   p_factor(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    c         C@  s
   t  |   S(   N(   t	   _p_factor(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   "  s    c         C@  s   |  j  } | d	 k rM |  j  } |  j   } |  j   t j | | t |    S|  j s | d k r |  j   } |  j   t |   } t j | d | S| d k r t |   S| d k r |  j	 d k r t
 |   Sn  t |   S(
   NR   R   t   ~R   Ru   R   R:   t   sizeof(   R   R   R   (   R;   RF   R=   R   t	   unop_nodeR   t   in_python_filet   AmpersandNodet
   p_typecastR<   t   p_sizeoft   p_power(   R>   R;   RH   RG   t   arg(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   &  s"    		
	

c   	   
   C@  s#  |  j    } |  j   t |   } t | t j  } t | t j  } t | t j  } | r | r | r | j d  k r |  j
 d  n  t |  d d } |  j d k r |  j   d } n d } |  j d  t |   } | r t j | d | d | St j | d	 | d
 | d | d | S(   Ns   Unknown typet   emptyi   t   ?i    R   t   base_type_nodeRu   t	   base_typet
   declaratort	   typecheck(   RF   R=   t   p_c_base_typet
   isinstanceR   t   MemoryViewSliceTypeNodet   TemplatedTypeNodet   CConstTypeNodeR@   R5   R   t   p_c_declaratorR;   R^   R   R   t   CythonArrayNodet   TypecastNode(	   R>   RG   R   t   is_memslicet   is_templatet   is_constR   R   Ru   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   9  s0    

	c         C@  s   |  j    } |  j   |  j d  t |   rS t |   } t j | d | } n9 t |   } t |  d d } t j	 | d | d | } |  j d  | S(   Nt   (Ru   R   i   R   R   t   )(
   RF   R=   R^   t   looking_at_exprR_   R   t   SizeofVarNodeR   R   t   SizeofTypeNode(   R>   RG   Ru   t   nodeR   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   V  s    
c         C@  s   |  j    } |  j   t } |  j d k r> t } |  j   n  |  j d k r} |  j t k r} | rn t |   n	 t |   } n( | r |  j d d | d t n  d  } | r t
 j | d | St
 j | d | Sd  S(   Nt   fromR   s'   'yield from' requires a source argumentRG   t   fatalR   (   RF   R=   R8   R;   RO   t   statement_terminatorsR_   t
   p_testlistR   R5   R   t   YieldFromExprNodet   YieldExprNode(   R>   RG   t   is_yield_fromR   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_yield_expressionj  s    
!c         C@  s"   t  |   } t j | j d | S(   NRc   (   R   R   t   ExprStatNodeRG   (   R>   t
   yield_expr(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_yield_statement  s    c         C@  s   |  j  d k rM d | j k r. |  j d  n  | j |  _ t |  | d t S| rc |  j d  nU |  j  d k r t |  d t S|  j  d k r |  j   t |  d t S|  j d	  d  S(
   Nt   deft   pxds   def statement not allowed heret   is_async_defs7   Decorators can only be followed by functions or classest   fort   is_asynct   withs2   expected one of 'def', 'for', 'with' after 'async'(   R;   R0   R   t   p_def_statementRO   t   p_for_statementR=   t   p_with_items(   R>   R+   t
   decorators(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_async_statement  s    
c         C@  s   |  j  d k r/ |  j   d d k r/ t |   Sd  } |  j d k r] |  j   } |  j   n  t |   } x" |  j d
 k r t |  |  } ql W| r t	 j
 | d | } n  |  j d	 k r |  j   } |  j   t |   } t	 j | d	 | |  } n  | S(   Nt   newi    R:   t   awaitR   t   [t   .R   s   **(   R   R   R   (   R<   t   peekt
   p_new_exprR5   R;   RF   R=   t   p_atomt	   p_trailerR   t   AwaitExprNodeR   RK   (   R>   t	   await_posRS   RG   RT   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s"    %

c         C@  s>   |  j    } |  j   t |   } t |  t j | d |  S(   Nt   cppclass(   RF   R=   R   t   p_callR   t   NewExprNode(   R>   RG   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    
c         C@  sw   |  j    } |  j d k r( t |  |  S|  j d k rD t |  |  S|  j   t |   } t j | d | d | Sd  S(   NR   R   t   objt	   attribute(   RF   R;   R   t   p_indexR=   RA   R   t   AttributeNode(   R>   t   node1RG   R@   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    
c   
      C@  sd  |  j    } |  j   g  } g  } t } t } x|  j d k r|  j d k r | rq |  j d d |  j    n  |  j   | j t |    t } n!|  j d k r |  j   | j t |    t } n t |   } |  j d k rb|  j   | j s|  j d d | j	 n  |  j
 j | j  } t j | j	 d | }	 t |   } | j |	 | f  nV | r|  j d d | j	 n  | r| r| d	 j |  n | j | g  t } |  j d
 k rPn  |  j   q1 W|  j d k rD| rD| rDt |  d k rAt | d  d k rAt |  | d d  g g } qAqDn  |  j d  | p]g  g | f S(   NR   R   s%   Non-keyword arg following keyword argRG   s   **t   =s!   Expected an identifier before '='t   valueiRB   R   t   asynci   i    (   R   R   (   RF   R=   R8   R;   R   RC   R_   RO   t   is_nameRG   RM   t   intern_ustringR@   R   t   IdentifierStringNodet   lent   p_genexpR^   (
   R>   t   allow_genexpRG   t   positional_argst   keyword_argst   starstar_seent   last_was_tuple_unpackR   t   encoded_namet   keyword(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_call_parse_args  sV    

	
	
	(&c      	   C@  s  d  } g  | D]? } t | t  r7 t j |  d | n t j |  d | ^ q } t t t j |  d  |  } | rg  } g  } x | D] }	 t |	 t	  r |	 \ }
 } | j
 t j d |
 j d |
 d |   q |	 j r | j |	 j  q | r)| j
 t j | d j d | d	 t  g  } n  | j
 |	  q W| rl| j
 t j | d j d | d	 t  n  | rt |  d
 k r| d j r| d } qt j |  d | } qn  | | f S(   NRY   R   R   RG   t   keyR   i    t   key_value_pairst   reject_duplicatesi   R   (   R5   R   t   listR   t	   TupleNodet   AsTupleNodeR   R   RK   t   tupleRC   t   DictItemNodeRG   t   is_dict_literalt   extendR   t   DictNodeRO   R   t   MergedDictNode(   RG   R   R   t   keyword_dictR   t	   subtuplest	   arg_tuplet   kwargst
   dict_itemst   itemR   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_call_build_packed_args  s4    I+		 c         C@  s   |  j    } t |   \ } } | rg t |  d k rg t | d t  rg t j | d | d | d St | | |  \ } } t j | d | d | d | Sd  S(   Ni   i    t   functionRY   R   R   (	   RF   R   R   R   R   R   t   SimpleCallNodeR  t   GeneralCallNode(   R>   R  RG   R   R   R  R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   ,  s    ,c   
      C@  s   |  j    } |  j   t |   \ } } | rx t | d  d k rx | d \ } } t j | d | d | d | } nR t | |  } | r | d }	 n t j | d | }	 t j | d | d |	 } |  j	 d  | S(	   Ni    i   t   baset   startt   stopRY   t   indext   ](
   RF   R=   t   p_subscript_listR   R   t   SliceIndexNodet   make_slice_nodesR   t	   IndexNodeR^   (
   R>   R
  RG   t
   subscriptst   is_single_valueR  R  R   t   indexesR  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   =  s    
c         C@  sk   t  } t |   g } xI |  j d k r` t } |  j   |  j d k rJ Pn  | j t |    q W| | f S(   NRB   R  (   RO   t   p_subscriptR;   R8   R=   RC   (   R>   R  t   items(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  Q  s    
c         C@  s   |  j    } t |  d  } |  j d k r1 | g S|  j   t |  d  } |  j d k rc | | g S|  j   t |  d  } | | | g S(   NRV   RB   R  (   RV   (   RV   RB   R  (   RV   RB   R  (   RF   t   p_slice_elementR;   R=   (   R>   RG   R  R  t   step(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  ^  s    


c         C@  s!   |  j  | k r t |   Sd  Sd  S(   N(   R;   R_   R5   (   R>   t
   follow_set(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  n  s    
c         C@  s+   |  j  d  |  j  d  |  j  d  d  S(   NR   (   R^   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   expect_ellipsisv  s    c         C@  sW   g  } xJ | D]B } t  |  d k r9 | j | d  q | j t |  |   q W| S(   Ni   i    (   R   RC   t   make_slice_node(   RG   R  R   t	   subscript(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  {  s    c         C@  sg   | s t  j |   } n  | s0 t  j |   } n  | sH t  j |   } n  t  j |  d | d | d | S(   NR  R  R  (   R   t   NoneNodet	   SliceNode(   RG   R  R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    c   	      C@  s  |  j    } |  j } | d k r |  j   |  j d k rR t j | d g  } n* |  j d k rp t |   } n t |   } |  j d  | S| d k r t |   S| d k r t	 |   S| d k r t
 |   S| d k r t |   t j |  S| d	 k rt |   S| d
 k r:|  j } |  j   t j | d | S| d k rp|  j d  } |  j   t j | d | S| d k rLt |   \ } } } | d k rt j | d | S| d k rt j | d | d | S| d k rt j | d | S| d k rt j | d | S| d k r8t j | d | d | S|  j d |  n | d k r|  j } | d k rt j |  } n | d k rt j | d t } n[ | d k rt j | d t } n7 | d k r|  j rt j |  } n t |  |  } |  j   | S|  j d  d  S(   NR   R   RY   t   yieldR   t   {t   `R   t   INTt   FLOATR   t   IMAGit   BEGIN_STRINGt   ct   ut   bytes_valuet   bt   ft   valuest    t   unicode_values   invalid string kind '%s'R:   R5   RO   R8   t   NULLs!   Expected an identifier or literal(   RF   R;   R=   R   R   R   t   p_testlist_compR^   t   p_list_makert   p_dict_or_set_makert   p_backquote_exprR  t   EllipsisNodet   p_int_literalR<   t	   FloatNodet   ImagNodet   p_cat_string_literalt   CharNodet   UnicodeNodet	   BytesNodet   JoinedStrNodet
   StringNodeR   R  t   BoolNodeRO   R8   R   t   NullNodet   p_name(	   R>   RG   R;   R   R   t   kindR)  R.  R@   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     sr    	





	

	
c      
   C@  s  |  j    } |  j } |  j   d } d } xE | d d k rr | d d k r[ | d 7} n
 | d 7} | d  } q. Wd  } | r t } n0 | r | d k s |  j j d k r t } q n  |  j r | r t | d	  n  t	 } n  t
 j | d
 | d | d | d | S(   NR-  iu   UuLlu   Llt   Lt   Ut   LLi   s4   illegal integer literal syntax in Python source filet   is_c_literalR   t   unsignedt   longness(   RF   R<   R=   R5   RO   RM   t   language_levelR   R   R8   R   t   IntNode(   R>   RG   R   RF  RG  RE  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR5    s2    	

			c         C@  sl   |  j    } |  j rY | |  j k rY |  j j |  } t | |  } | d  k	 rY | Sn  t j | d | S(   NR@   (   RF   t   compile_time_exprt   compile_time_envt   lookup_heret   wrap_compile_time_constantR5   R   t   NameNode(   R>   R@   RG   R   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR@    s    c      	   C@  sM  t  |  } | d  k r% t j |   S| t k r> t j |   St | t  r` t j |  d | St | t	  r t j
 |  d | d | St | t  r t j |  d | d | St | t  r>t j |  d t  | j  d t d | j  } | j r:t j |  d t j |  d t  | j  d | j | d | } n  | St | t  rft j |  d t |  St | t  rt | d  } t j |  d | d | St | t  rg  | D] } t |  |  ^ q} d  | k rt j |  d | Sd  Sn8 t r,t | t  r,t j
 |  d | j d  d | St |  d | | j j  f  d  S(	   NR   t   constant_resultg        R   t   asciiRY   RB  s4   Invalid type for compile-time constant: %r (type %s)(!   t   reprR5   R   R  t   EllipsisR4  R   t   boolR>  t   intRI  t   floatR6  t   complexR7  t   imagt   realRK   R   R:  R   R   R   R;  R   RM  R   R   t   longt   rstripR   t	   __class__R.   (   RG   R   t   repR   t   bvalueR   RY   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRM    sD    0	0"	c         C@  sZ  |  j    } t |   \ } } } | d k s< |  j d k rI | | | f S| g | g | g } } } d  } } x |  j d k rT|  j    } t |   \ } }	 }
 | d k r t | d  qs nh | | k r*t | | g  t d d g  t d d g  f k rd } q*t | d | | f  qs n  | j |	  | j |
  | j |  qs W| d k sy| d k rd  | k rt t j	 |  |  j
  } n  | d k rt d	 j g  | D] } | d  k	 r| ^ q  } n  | d k rMg  } x^ t | |  D]J \ } } t | t  r$| | 7} q| j t j | d
 t |   qWn  | | | f S(   NR'  R&  sC   Cannot concatenate char literal with another string or char literalR+  R(  R-  sF   Cannot mix string literals of different types, expected %s'', got %s''R*  u    R   (   R*  R'  R-  (   R(  R-  (   RF   t   p_string_literalR;   R5   R   t   setRC   R   R   t
   join_bytest   source_encodingR   t   joint   zipR   R   R   R:  (   R>   RG   RA  R)  R.  t   bstringst   ustringst	   positionst	   next_kindt   next_bytes_valuet   next_unicode_valueR(  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR8  &  s@    
6		$7)R(  c         C@  s   |  j  d k r d  S|  j   } t |  |  \ } } } | d k rf | d k rb |  j d |  n  | S| d k rv | S|  j d  d  S(   NR&  R(  R+  s   f-string not allowed hereR*  s#   internal parser configuration error(   R;   R5   RF   R^  R   (   R>   t   required_typeRG   RA  R)  R.  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_opt_string_literalR  s    c         C@  s%   x |  D] } | d k r t  Sq Wt S(   Nu   (   RO   R8   (   t   stringR'  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   check_for_non_ascii_charactersa  s    c         C@  sj  |  j    } |  j j d k } t } |  j j d  j   } t |  d k r t t |   t |  k r| t	 | d  n  d | k r d | k r t	 | d  n  d | k r d | k r t	 | d	  n  d | k r d | k r t	 | d
  q n  d | k } d | k r:t |  d k r1t	 | d  n  d } nK d | k rUd } t
 } n0 d | k rjd } n d | k rd } n d } | d k r| d  k rt j |  j j k rt j |  j  } d } no | d  k	 r| d k r| } n  | d k r	t j   } n3 | d k r*t j |  j  } n t j |  j  } xB|  j   |  j }	 |  j }
 |	 d k r| j |
  | r}| r}t |
  r}t
 } q}q?|	 d k r| r| s| d k s|
 d d k r| j |
  | r| rt |
  rt
 } qq}t | | |
 |   q?|	 d k r1| j d  q?|	 d k rAPq?|	 d k rc|  j	 d d | q?|  j	 d |	 |  j f  q?W| d k rd  } | j   } t |  d k r&t	 | d |  q&n^ | j   \ } } | r&| r&t j |  j j k r&| d k r|  j	 d d | n  d  } n  | d k rSt |  | | d d | k } n  |  j   | | | f S(   Ni   s   "'i   s!   Duplicate string prefix characterR*  R(  s*   String prefixes b and u cannot be combinedR+  s*   String prefixes b and f cannot be combineds*   String prefixes u and f cannot be combinedt   rR'  s+   Invalid string prefix for character literalR-  t   ubt   CHARSt   ESCAPEu   Uut   NEWLINEu   
t
   END_STRINGt   EOFs   Unclosed string literalRG   s(   Unexpected token %r:%r in string literalu   invalid character literal: %rs0   bytes can only contain ASCII literal characters.t   is_raw(   R(  R+  (   RF   RM   RH  R8   R<   RZ  t   lowerR   R_  R   RO   R5   R	   t   unicode_literalsRN   R   t   StrLiteralBuilderRa  t   UnicodeLiteralBuildert   BytesLiteralBuilderR=   R;   RC   Rm  t   _append_escape_sequencet   getchart
   getstringst
   p_f_string(   R>   t   kind_overrideRG   t   is_python3_sourcet    has_non_ascii_literal_characterst   kind_stringRu  RA  t   charsR;   t   systrR.  R)  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR^  h  s    
				-		
		(		!
c         C@  s  | d } | d k r3 | j  t | d d   nd| d k rO | j |  nH| d k rt | j t j |   n#| d k r n| d k r t |  d k r | j  t | d	 d
   q| j d | d t n| d k r|  d k rd } | d k rd  } y# t	 | d d ! } t
 |  } Wqht k
 rk| j d t | d d ! j d  d t qht k
 r| d  k	 rt rt |  d	 k rt | d  d k rt | d  d k rd t
 | d  d d t
 | d  d ?} q   qhXne t |  d k rQt | d	 d
  } | d k rh| j d |  d } qhn | j d | d t | d k r| j | |  qn | j |  d  S(    Ni   u   01234567i   u   '"\u   abfnrtvu   
u   xi   i   i   s   Invalid hex escape '%s'R   u   NUuR(  R+  R-  iu   Ni   s!   Unknown Unicode character name %si    t   Csi   i   i
   i   i   i s   Invalid unicode escape '%s'(   R(  R+  R-  (   i   i
   (   t   append_charvalRT  RC   R   t   char_from_escape_sequenceR   R   R8   R5   R   t   ordt   KeyErrorRQ  t   lstript	   TypeErrorR   R   t   append_uescape(   RA  t   buildert   escape_sequenceR>   R'  t   chrvalt   uchar(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR{    sJ    
	'$,1
s   (\\(?:s   \\?s]   [\\abfnrtv"\'{]|[0-7]{2,3}|N\{[^}]*\}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[NxuU]|s   )?|\{\{?|\}\}?|[^\\{}]+)s   us-asciic         C@  s  g  } d } t  |  } t j   } t |  } | r< t n t }	 x| | k  r| }
 | d |
 | d <|	 | |  } | d  k r t t |  d  n  | j	   } | j
   } | d } | d k r| r t  |  d k r t d | | |   q| j |  qE | d k r| d k r/| j d  q| j ri| j t j | d	 | j    t j   } n  t |  | | | |  \ } } | j |  qE | d
 k r| d k r| j d
  q|  j d d t |  qE | j |  qE W| j r| j t j | d	 | j    n  | S(   Ni    i   s   Invalid escape sequences   \i   R+  R!  s   {{R   t   }s   }}s#   f-string: single '}' is not allowedRG   (   R   R   Ry  R   R   R   R5   R   R   t   endt   groupR{  RC   R  R   R:  t	   getstringt   p_f_string_expr(   R>   R.  RG   Ru  R,  t
   next_startt   sizeR  t	   error_post
   _parse_seqR  t   matcht   partR'  t	   expr_node(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR~    sF    
	"	%c      	   C@  s>  | } t  |  } d  } } }	 d  }
 d$ } d } | } t } xt rO| | k rc |  j d  n  | | } | | k r&| d k r | d | d | | d f } t | d  qB| | k rB| r| d | k  r | | d | k r | | d | k r t } | } | d 7} q q#| } qBn| d k r| } | d | k  rB| | d | k rB| | d | k rBt } | d 7} qBn | d	 k r| d 7} n | d k r| d
 k r| d 8} n~ | d k r|  j d  nb | d k rB| d k rB| d k r8| d | k  r8| | d d k r8| d 7} qA n  | } Pn  | d 7} qA W| | | !j d d  j d d  } | d | d | d | d f } | j   st | d  n  | d k r| d 7} | d | k rt | d  q| | } | d 7} | | } n  | d k rQt } t } d } | d } xt r@| | k r^|  j d d | n  | | } | r| r| d k r| d 7} q| d k r| d k r| d 8} q| } Pqn  | d k r3| r | d | k  r | | d | k r | | d | k r | } | d 7} q3| s3| } q3n  | d 7} q6W| | | !}
 n  | d k rq|  j d |  n  t d |  } t | | d d |  d |  j	 d | } t
 |  } | d  k	 rt j j |  rt | d |  n  |
 rt j | d  t |  |
 | |  }	 n  | d t j | d! | d" | d# |	 f S(%   Ni   i   i    s'   missing '}' in format string expressions   \i   s$   backslashes not allowed in f-stringss   '"s   {[(s   }])t   #s   format string cannot include #s   !:}t   !R   s   
s   
s   s(   empty expression not allowed in f-strings(   invalid conversion char at end of stringRV   s   missing '}' in format specifierRG   R!  R  s4   missing '}' in format string expression', found '%s's   (%s)t   parent_scannerRa  t   initial_poss!   invalid conversion character '%s'R,  R   t   conversion_chart   format_speci   @(   R   R5   R8   RO   R   t   replacet   stripR   R   Ra  R   R   t   FormattedValueNodet   find_conversion_funcR<  R~  (   R>   R.  RG   t   starting_indexRu  t   iR  R  t   terminal_charR  t   format_spec_strt   NO_CHARt   nested_deptht
   quote_chart   in_triple_quotesR'  R  t   expr_strt   expr_post	   in_stringt   start_format_spect   buft   scannerRc   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  @  s    	
880
%#



	
?('c         C@  s2  |  j    } |  j   |  j d k rE |  j d  t j | d g  St |   } |  j d k r | j ry |  j d  n  t j	 | d | } t
 |  |  } |  j d  t j | d | d | d	 t j d
 |  j j d k S|  j d k r	|  j   t |  |  } n	 | g } |  j d  t j | d | S(   NR  RY   R   R   s2   iterable unpacking cannot be used in comprehensionRc   t   loopRC   t   typet   has_local_scopei   RB   (   R   R   (   RF   R=   R;   R^   R   t   ListNodeR   t
   is_starredR   t   ComprehensionAppendNodet
   p_comp_fort   ComprehensionNodeR   t	   list_typeRM   RH  t   p_test_or_starred_expr_list(   R>   RG   Rc   RC   R  t   exprs(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR1    s*    
	
	c         C@  s@   |  j  d k r t |  |  S|  j  d k r8 t |  |  S| Sd  S(   NR   R   Rg   (   R   R   (   R;   R  t	   p_comp_if(   R>   t   body(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_comp_iter  s
    c         C@  s   |  j    } t } |  j d k r4 t } |  j   n  |  j d  t |  d t d | } | j d d  d t	 |  |  d |  t
 j | |  S(   NR   R   t   allow_testlistR   t   else_clauseR  (   RF   R8   R;   RO   R=   R^   t   p_for_boundsR'   R5   R  R   t   ForStatNode(   R>   R  RG   R   t   kw(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    %c         C@  s\   |  j    } |  j   t |   } t j | d t j | d | d t |  |  g d d  S(   Nt
   if_clausest	   conditionR  R  (   RF   R=   R`   R   t
   IfStatNodet   IfClauseNodeR  R5   (   R>   R  RG   Ri   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    
c         C@  sf  |  j    } |  j   |  j d k rB |  j   t j | d g  Sg  } d } t } xt r
|  j d k r%| d k r |  j d k r d n d } nD | t |  j  k r |  j d |  j | d k r d	 n d
 f  n  |  j   |  j d k r|  j d  n  t	 |   } | j
 |  t } n t |   } | d k r[|  j d k rRd n d } n  | d k r|  j d  | } t |   } t j | j d | d | } n  | r| d j
 |  n | j
 | g  t } |  j d k r|  j   |  j d k rPqqW PqW W|  j d k rxt |  d k rt | d t  rt | d  d k r| d d } | d k rt | t j  st t |    t j } t j | j d | j d | j }	 n! t j } t j | j d | }	 t |  |	  }
 |  j d  t j | d |
 d |	 d | St |  d k rUt | d t  rU|  j d  n |  j d  t j | d g  Sn  |  j d  | d k r{g  } g  } xl | D]d } t | t  r| j |  q| r| j
 t j | d j d |  g  } n  | j
 |  qW| r8| j
 t j | d j d |  n  t |  d k r_| d j r_| d St j | d | d t j Sg  } g  } xl | D]d } t | t  r| j |  q| r| j
 t j | d j d |  g  } n  | j
 |  qW| r"| j
 t j | d j d |  n  t |  d k rI| d j  rI| d St j! | d | d t Sd  S(   NR  R   i    R   s   **i   i   s%   unexpected %sitem found in %s literalR_  t   dicts   expected expression, found '*'RV   R   R   iRB   R   R   t   key_exprt
   value_exprRc   R  RC   R  s2   iterable unpacking cannot be used in comprehensionRY   R   R   (   R   s   **(   R   R   ("   RF   R=   R;   R   R   R8   RO   R   R   R{   RC   R_   R^   R   RG   R   R   t   AssertionErrorR  R   t	   dict_typet   DictComprehensionAppendNodeR   R   t   set_typeR  R  R  R   t   SetNodet   is_set_literalt   MergedSequenceNodeR   R   (   R>   RG   t   partst   target_typet   last_was_simple_itemR  R   R   t   comprehension_typeRC   R  R  t	   set_itemsR  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR2     s    

		&
	!
;$	!	&#	&#	&c         C@  s   |  j    } |  j   t |   g } x0 |  j d k rW |  j   | j t |    q( W|  j d  t |  d k r | d } n t j | d | } t j	 | d | S(   NRB   R"  i   i    RY   R   (
   RF   R=   R_   R;   RC   R^   R   R   R   t   BackquoteNode(   R>   RG   RY   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR3  n  s    

c         C@  se   | d  k	 r | g p g  } xC |  j t k r` | j t |    |  j d k rS Pn  |  j   q W| S(   NRB   (   R5   R;   t   expr_terminatorsRC   R_   R=   (   R>   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_simple_expr_list}  s    c         C@  se   | d  k	 r | g p g  } xC |  j t k r` | j t |    |  j d k rS Pn  |  j   q W| S(   NRB   (   R5   R;   R  RC   R   R=   (   R>   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    c         C@  s[   |  j    } t |   } |  j d k rS |  j   t |  |  } t j | d | S| Sd  S(   NRB   RY   (   RF   R_   R;   R=   R  R   R   (   R>   RG   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    
c         C@  s[   |  j    } t |   } |  j d k rS |  j   t |  |  } t j | d | S| Sd  S(   NRB   RY   (   RF   R   R;   R=   R  R   R   (   R>   RG   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_testlist_star_expr  s    
c         C@  sw   |  j    } t |   } |  j d k rS |  j   t |  |  } t j | d | S|  j d k ro t |  |  S| Sd  S(   NRB   RY   R   R   (   R   R   (   RF   R   R;   R=   R  R   R   R   (   R>   RG   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR0    s    
c      	   C@  sI   t  |  t j | j d t j | j d |  } t j | j d | S(   NRc   R   R  (   R  R   R   RG   R   R   t   GeneratorExpressionNode(   R>   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    'R   R  R  RV   R   Rr  c         C@  s5   |  j    } |  j   t |   } t j | d | S(   NRD   (   RF   R=   RE   R   t
   GlobalNode(   R>   RG   RD   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_global_statement  s    
c         C@  s5   |  j    } |  j   t |   } t j | d | S(   NRD   (   RF   R=   RE   R   t   NonlocalNode(   R>   RG   RD   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_nonlocal_statement  s    
c      	   C@  sv  t  |   } |  j d k rR | j s6 | j s6 | j rR |  j   t |   | _ n  |  j d k r | j r |  j	 d d | j
 n  | g } xT |  j d k r |  j   |  j d k r t |   } n t  |   } | j |  q Wt |  d k rt j d |  j  r| d } t | t j  r_t j | j
 d	 | j d
 t | j
 | j | j  } n4 t | t j t j t j f  st	 | j
 d  n  |  j d  } |  j   |  j d k rt |   } n t |   } t j | j
 d | d | d | S| d } t j | j
 d | S| d } t |  d k rRt j | j
 d | d d | St j | j
 d | d  d | Sd  S(   NRV   R   sq   a starred assignment target must be in a list or tuple - maybe you meant to use an index assignment: var[0] = ...RG   R   i   s   ([-+*/%^&|]|<<|>>|\*\*|//|@)=i    R
  R  s&   Illegal operand for inplace operation.iRx   t   lhst   rhsRc   i   t   lhs_list(    R  R;   R   t   is_subscriptt   is_attributeR=   R_   t
   annotationR  R   RG   R   RC   R   R   R  R   R   R  R  R
  R  R  R  R   RN  R   R   t   InPlaceAssignmentNodeR   t   SingleAssignmentNodet   CascadedAssignmentNode(   R>   Rc   t	   expr_listR  Rx   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_expression_or_assignment  sH    *
	

		!!
"

 c         C@  s!  |  j    } d } |  j   |  j d k ro |  j   t |   } |  j d k ru |  j   |  j d k } qu n d  } g  } |  j d k r | j t |    xL |  j d k r |  j   |  j d k r d } Pn  | j t |    q Wn  t j | d | } t j	 | d | d	 | d
 | S(   Ni    s   >>RB   Rr  Rt  i   RY   R  t   streamt   append_newline(   Rr  Rt  (   Rr  Rt  (   Rr  Rt  (
   RF   R=   R;   R_   R5   RC   R   R   R   t   PrintStatNode(   R>   RG   t   ends_with_commaR  RY   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_print_statement  s.    



c         C@  s#  |  j    } |  j   t |   } t | t j  r t } | j } t |  d
 k r |  j	 d t |  d | d t
 | g } q n t
 } | g } |  j d k r| r |  j	 d d t
 n  |  j   | j t |    |  j d k r|  j   | j t |    qn  t j | d	 | S(   Ni   i   s.   expected tuple of length 2 or 3, got length %dRG   R   R   s@   tuple variant of exec does not support additional 'in' argumentsRB   RY   (   i   i   (   RF   R=   R   R   R   R   RO   RY   R   R   R8   R;   RC   R_   R   t   ExecStatNode(   R>   RG   t   codet   tuple_variantRY   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_exec_statement!  s,    
		


c         C@  s5   |  j    } |  j   t |   } t j | d | S(   NRY   (   RF   R=   R  R   t   DelStatNode(   R>   RG   RY   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_del_statement<  s    
c         C@  sB   |  j    } |  j d  | r5 |  j d d t n  t j |  S(   Nt   passs   Expected a newlinet   ignore_semicolon(   RF   R^   t   expect_newlineRO   R   t   PassStatNode(   R>   t   with_newlineRG   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_pass_statementD  s
    c         C@  s#   |  j    } |  j   t j |  S(   N(   RF   R=   R   t   BreakStatNode(   R>   RG   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_break_statementK  s    
c         C@  s#   |  j    } |  j   t j |  S(   N(   RF   R=   R   t   ContinueStatNode(   R>   RG   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_continue_statementQ  s    
c         C@  sM   |  j    } |  j   |  j t k r4 t |   } n d  } t j | d | S(   NR   (   RF   R=   R;   R   R   R5   R   t   ReturnStatNode(   R>   RG   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_return_statementW  s    
c      
   C@  s  |  j    } |  j   d  } d  } d  } d  } |  j t k r t |   } |  j d k r |  j   t |   } |  j d k r |  j   t |   } q q |  j d k r |  j   t |   } q n  | s | s | r t j | d | d | d | d | St j |  Sd  S(   NRB   R   t   exc_typet	   exc_valuet   exc_tbt   cause(	   RF   R=   R5   R;   R   R_   R   t   RaiseStatNodet   ReraiseStatNode(   R>   RG   R  R  R  R	  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_raise_statementa  s0    



c         C@  s  |  j    } |  j } |  j   t |  d d g } x6 |  j d k rl |  j   | j t |  d d  q7 Wg  } t j |  j j k } x| D]\ } } } } | d k r t	 j
 | d | d | d | }	 n | rd | k rt j | d	 t j | d
 |  j j d  g }
 n d  }
 t	 j | d t j | d | p@| d t j | d t j | d
 | d | rsd n d  d |
 }	 | j |	  q Wt	 j | d | S(   Nt
   as_allowedi   RB   t   cimportt   module_namet   as_namet   is_absoluteR   RY   R   R   R  R@   R  R0   i    t	   name_listt   stats(   RF   R;   R=   t   p_dotted_nameRC   R	   R    RM   RN   R   t   CImportStatNodeR   R  R   R   R5   R  RN  t
   ImportNodet   StatListNode(   R>   RG   RA  R  R  R  t   target_namet   dotted_nameR  t   statR  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_import_statement~  s<    	

*c         C@  s  |  j    } |  j   |  j d k rX d } x0 |  j d k rT | d 7} |  j   q. Wn d  } | d  k	 r |  j d k r |  j    |  j j d  } } nH | d  k r t j |  j j k r d } n  t	 |  d t
 \ } } } } |  j d k r|  j d  n  |  j } |  j   | d k } t
 }	 |  j d	 k rj|  j    |  j j d	  d  d  f g }
 |  j   n4 |  j d
 k rt }	 |  j   n  t |  |  g }
 xL |  j d k r|  j   |	 r|  j d k rPn  |
 j t |  |   qW|	 r|  j d  n  | d k r| s%|  j d  n | r;|  j d  n x |
 D] \ } } } } | d k rt|  j d |  Pn  y t t |  } Wn& t k
 r|  j d | |  Pn X|  j j j |  qBWt j |  S| d k rt j | d | d | d |
 Sg  } g  } x^ |
 D]V \ } } } } | j t j | d |  | j | t j | d | p^| f  qWt j |
 d d d | } t j | d t j | d t j | d | d | d | d | Sd  S(   NR   i    i   t   importR  R-  R  s   Expected 'import' or 'cimport'R   R   RB   R   t
   __future__s?   from __future__ imports must occur at the beginning of the files   invalid syntaxt   bracess   not a chances    future feature %s is not definedR  t   relative_levelt   imported_namesR   R@   RY   t   moduleR0   R  R  (   R  R  (   R  R  (   RF   R=   R;   R5   RM   R   R	   R    RN   R  R8   R   RO   t   p_imported_nameRC   R^   t   getattrt   AttributeErrort   addR   R  t   FromCImportStatNodeR   R   RN  R  t   FromImportStatNodeR  (   R>   t   first_statementRG   R0   t   dotted_name_posR  t   _RA  t
   is_cimportt   is_parenthesizedR   t   name_posR@   R  t	   directivet   imported_name_stringsR  t   import_list(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_from_import_statement  s    

"!		
'
&	t   classt   structt   unionc         C@  se   |  j    } d  } | r= |  j t k r= |  j } |  j   n  t |   } t |   } | | | | f S(   N(   RF   R5   R<   t   imported_name_kindsR=   RA   t	   p_as_name(   R>   R+  RG   RA  R@   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR"    s    	c         C@  s   |  j    } t |   } d  } | g } x0 |  j d k rY |  j   | j t |    q* W| ro t |   } n  | | |  j j d j	 |   | f S(   NR   u   .(
   RF   RA   R5   R;   R=   RC   R6  RM   R   Rb  (   R>   R  RG   R  R  RD   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s    	
c         C@  s:   |  j  d k r2 |  j d k r2 |  j   t |   Sd  Sd  S(   NR:   t   as(   R;   R<   R=   RA   R5   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR6    s    

c         C@  si   |  j    } |  j   t |   } |  j d k rJ |  j   t |   } n d  } t j | d | d | S(   NRB   t   condR   (   RF   R=   R_   R;   R5   R   t   AssertStatNode(   R>   RG   R8  R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_assert_statement  s    

t   ;Rt  c         C@  s}   |  j    } |  j   t |   g } x0 |  j d k rW |  j   | j t |    q( Wt |   } t j | d | d | S(   Nt   elifR  R  (   RF   R=   t   p_if_clauseR;   RC   t   p_else_clauseR   R  (   R>   RG   R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_if_statement$  s    

c         C@  s=   |  j    } t |   } t |   } t j | d | d | S(   NR  R  (   RF   R_   t   p_suiteR   R  (   R>   RG   Ri   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR=  0  s
    c         C@  s+   |  j  d k r# |  j   t |   Sd  Sd  S(   NRh   (   R;   R=   R@  R5   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR>  7  s    

c         C@  sY   |  j    } |  j   t |   } t |   } t |   } t j | d | d | d | S(   NR  R  R  (   RF   R=   R_   R@  R>  R   t   WhileStatNode(   R>   RG   Ri   R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_while_statement>  s    
c         C@  sr   |  j    } |  j   t |  d t d | } t |   } t |   } | j d | d | d |  t j | |  S(   NR  R   R  R  (	   RF   R=   R  RO   R@  R>  R'   R   R  (   R>   R   RG   R  R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   J  s    
c         C@  s  t  |   } |  j d k rM |  j   t |  | d | } t d | d |  S|  j r| r|  j d k r |  j   t |   } n | d  } } t |   } |  j	   } t
 |   } |  j	   }	 t |   }
 t |   } t |   } | d  k rt j | d | } n; | j s't | j d  n | | j k rFt | d  n  | d	 |
 d	 k rjt |	 d
  n  t d | d | d | d |
 d | d |  S|  j d  i  Sd  S(   NR   R   t   targett   iteratorR   R@   s4   Target of for-from statement must be a variable names5   Variable name in for-from range does not match targeti    s,   Relation directions in for-from do not matcht   bound1t	   relation1t	   relation2t   bound2R  (   t   p_for_targetR;   R=   t   p_for_iteratorR  R   R   R5   t   p_for_from_relationRF   RA   t   p_for_from_stepR   RN  R   R   RG   R@   R^   (   R>   R  R   RC  RD  RE  t   rel1t	   name2_post   name2t   rel2_post   rel2RH  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  U  sH    

		


c         C@  s7   |  j  t k r& |  j  } |  j   | S|  j d  d  S(   Ns#   Expected one of '<', '<=', '>' '>='(   R;   t   inequality_relationsR=   R   (   R>   RH   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRK    s
    	
c         C@  s@   |  j  d k r8 |  j d k r8 |  j   t |   } | Sd  Sd  S(   NR:   t   by(   R;   R<   R=   R   R5   (   R>   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRL    s
    
c         C@  s   |  j    } t |   } |  j d k r |  j   | g } xC |  j | k r | j t |    |  j d k rr Pn  |  j   q= Wt j | d | S| Sd  S(   NRB   RY   (   RF   R{   R;   R=   RC   R   R   (   R>   RW   RG   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_target  s    
	c         C@  s   t  |  d  S(   NR   (   RT  (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRI    s    c         C@  sO   |  j    } | r! t |   } n t |   } | r< t j n t j | d | S(   Nt   sequence(   RF   R   Rl   R   t   AsyncIteratorNodet   IteratorNode(   R>   R  R   RG   Rc   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRJ    s
    c         C@  s  |  j    } |  j   t |   } g  } d  } |  j d	 k r x& |  j d k re | j t |    q@ W|  j d k r |  j   t |   } n  t j | d | d | d | } |  j d k r | Sn  |  j d k r|  j   t |   } t j	 | d | d | S|  j
 d  d  S(
   Nt   exceptRh   R  t   except_clausesR  t   finallyt   finally_clauses   Expected 'except' or 'finally'(   RX  Rh   (   RF   R=   R@  R5   R;   RC   t   p_except_clauseR   t   TryExceptStatNodet   TryFinallyStatNodeR   (   R>   RG   R  RY  R  R[  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_try_statement  s,    

	
c      
   C@  sT  |  j    } |  j   d  } d  } t } |  j d k r#t |   } t | t j  ra | j	 } n	 | g } |  j d k s |  j d k r |  j
 d k r |  j j d k r |  j   t |   } q#|  j d k r#|  j
 d k r#|  j   |  j    } t |   } t j | d | } t } q#n  t |   } t j | d | d | d	 | d
 | S(   NRV   RB   R:   R7  i   R@   t   patternRC  R  t   is_except_as(   RF   R=   R5   R8   R;   R_   R   R   R   RY   R<   RM   RH  RA   RN  RO   R@  R   t   ExceptClauseNode(   R>   RG   R  R  Ra  t   pos2R@   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR\    s0    
	-

c   
      C@  s   |  j    } |  j   t |  d  d } |  j d  |  j r | } |  j j | |  } | r |  j j |  t	 j
 |  F } t |  } t | | |  d | j d |  j } t | |  }	 Wd  QX|	 Sd  Sn t j |  Sd  S(   NR(  i   s!   Syntax error in include statementRa  t   parse_comments(   RF   R=   R^  R  t   compile_time_evalRM   t   find_include_filet   included_filesRC   R   t   open_source_fileR   R   t   encodingRd  t   p_statement_listR5   R   R  (
   R>   R+   RG   t   unicode_include_file_namet   include_file_namet   include_file_pathR+  t   source_desct   s2t   tree(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_include_statement  s     
	$c         C@  sB   |  j    |  j d k r2 |  j r2 t |   } n t |   } | S(   Nt   template(   R=   R<   R   t   p_with_templateR   (   R>   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_with_statement  s
    
c      
   C@  sR  |  j    } |  j r |  j d k r |  j d k r | rJ |  j d  n  |  j } |  j   |  j d k r |  j   t |   } n t |   } t j	 | d | d | St
 |   } d  } |  j d k r |  j d k r |  j   t |   } n  |  j d k r!|  j   t |  d	 | } n t |   } t j | d
 | d | d | d	 | S(   NR:   R!   t   gils   with gil/nogil cannot be asyncRB   t   stateR  R7  R   t   managerRC  (   R!   Ru  (   RF   R   R;   R<   R   R=   R   R@  R   t   GILStatNodeR_   R5   R{   t   WithStatNode(   R>   R   RG   Rv  R  Rw  RC  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR     s*    (	



c         C@  s   |  j    } g  } |  j   |  j d  | j |  j  |  j   x7 |  j d k r| |  j   | j |  j  |  j   qF W|  j d  |  j d k r |  j   |  j d  |  j   t   } | | _	 t
 |  | |  } |  j   | St | d  d  S(   NR   RB   R  RV   s-   Syntax error in template function declaration(   RF   R=   R^   RC   R<   R;   R  t   expect_indentR#   R7   t   p_c_func_or_var_declarationt   expect_dedentR   (   R>   RG   R7   t   body_ctxt   func_or_var(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRs  !  s*    




		
c         C@  s  |  j  d k r t |   } n|  j  d k r< t |   } nz|  j  d k rZ t |   } n\|  j  d k rx t |   } n>|  j  d k r t |   } n |  j  d k r t |   } n|  j  d k r t |   } n |  j  d k r t |   } n |  j  d	 k rt	 |   } n |  j  d k r,t
 |   } n |  j  d k rPt |  d | } nf |  j  d k rnt |   } nH |  j  d k rt |   } n* |  j  d k rt |   } n t |   } | S(   Nt   globalt   nonlocalt   printt   exect   delt   breakt   continuet   returnt   raiseR  R  R   R(  R   t   assertR  (   R  R  (   R;   R  R  R  R  R  R  R  R  R  R  R1  R   R:  R  R  (   R>   R(  R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_simple_statement9  s<    c         C@  sh  t  |  d | } | j } g  } t | t j  sC | j |  n  xm |  j d k r |  j   |  j d k rr Pn  t  |  d | } t | t j  r qF n  | j |  t } qF W| s t j |  } n4 t	 |  d k r | d } n t j
 | d | } |  j d k rWt | t j  rW| j j rT| j j d k rT|  j d	 |  qTqWn  |  j d
  | S(   NR(  R;  Rr  Rt  i   i    R  t   cdefs@   The 'cdef' keyword is only allowed in Cython files (pyx/pxi/pxd)s%   Syntax error in simple statement list(   Rr  Rt  (   Rr  Rt  (   R  RG   R   R   R  RC   R;   R=   R8   R   R  R   Rc   R   R@   R   R  (   R>   R+   R(  R  RG   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_simple_statement_list[  s2    	

c         C@  s+   |  j  } d |  _  t |   } | |  _  | S(   Ni   (   RJ  R   (   R>   t   oldRc   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_compile_time_expr~  s
    			c         C@  s   |  j    } |  j } |  j   t |   } |  j d  t |   } |  j ro | j |  } | j | |  n  |  j	 d d t
 t j |  S(   NR   s   Expected a newlineR  (   RF   RK  R=   RA   R^   R  Re  t   compile_time_valuet   declareR  RO   R   R  (   R>   RG   t   denvR@   Rc   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_DEF_statement  s    	
	c   	      C@  s  |  j    } |  j } | } |  j } d  } xr |  j   t |   } | o[ t | j |   |  _ t |  |  } |  j r | } d } n  |  j	 d k r- Pq- q- W|  j	 d k r |  j   | |  _ t |  |  } | r | } q n  | s t
 j |  } n  | |  _ | S(   Ni    t   ELIFt   ELSE(   RF   Re  RK  R5   R=   R  RS  R  R@  R;   R   R  (	   R>   R+   RG   t
   saved_evalt   current_evalR  R   Rc   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_IF_statement  s2    		
		
		c   	   	   C@  s  | j  } d  } |  j d k rJ | j d) k r= |  j d  n  t |  |  S|  j d k rc t |   S|  j d k r t |  |  S|  j d k r| j d* k r |  j d  n  | j |  _ t |   } | j	 r7|  j d+ k r7|  j d k r |  j
 d k r q|  j d  q7n% |  j d k r7| r7t |  d d Sd } |  j d k r_d } |  j   n( |  j d k rd } d } |  j   n  | rE| j d, k r|  j d  n  | j |  _ t |  | d |   } | d  k	 rAt j t j t j f } | j	 r| t j t j f 7} n  t | |  s5|  j d  n  | | _ n  | S| j rd|  j d d t n|  j d k rd | j k r| j d k r|  j d  n  | j |  _ t |  |  S|  j d k r| j d- k r|  j d  n  t |  |  S|  j d  k r0| j d. k r#|  j d!  n  t |  |  S| j d	 k rg|  j d k rg|  j
 d k rgt |   S|  j d k r| j d k rt |  d t S| j d/ k rt |   } | d  k	 r| S|  j d"  n  |  j d# k rt |   S|  j d$ k rt |   S|  j d% k rt  |   S|  j d& k r4t! |   S|  j d' k rMt" |   S|  j d k rv|  j   t# |  | |  S|  j d k r|  j
 d k r|  j
 } |  j   |  j d k rt# |  | |  S| r|  j d  n  |  j$ d |  n  t% |  | d( | Sd  S(0   Nt   ctypedefR!  t
   module_pxds#   ctypedef statement not allowed heret   DEFt   IFR   R2  t   c_classR  t   propertyt   c_class_pxdR$   s   decorator not allowed hereR   R  t   cpdefR:   R   s7   Decorators can only be followed by functions or classesR  R  i   i    s   cdef statement not allowed hereR4   s%   'api' not allowed with this statementR   R   s   def statement not allowed heres!   class definition not allowed heret   includes"   include statement not allowed heres%   Executable statement not allowed hereRg   t   whileR   t   tryR   R(  (   R!  R  (   R!  R2  R  R  R  R  R  R$   (   R   R  R  R2  (   R!  R  R  R  R  (   R!  R  R2  R$   (   R!  R  (   R  R  (&   R2   R5   R;   R0   R   t   p_ctypedef_statementR  R  t   p_decoratorsR9   R<   R  R=   t   p_cdef_statementR   t   CFuncDefNodet   CVarDefNodet   CClassDefNodet   CStructOrUnionDefNodet   CEnumDefNodeR   R   R"   R8   R   t   p_class_statementRq  t   p_property_declRO   t   p_ignorable_statementR?  RB  R   R_  Rt  R   t   put_backR  (	   R>   R+   R(  R2   R   R4   R   t   tupt
   ident_name(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_statement  s    	
		-






	
c         C@  s   |  j    } g  } xS |  j d k rg t |  | d | } t | t j  rQ q n  | j |  t } q W| s{ t j |  St |  d k r | d St j	 | d | Sd  S(   Nt   DEDENTRt  R(  i   i    R  (   R  Rt  (
   RF   R;   R  R   R   R  RC   R8   R   R  (   R>   R+   R(  RG   R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRj  	  s    
c         C@  s   t  |  | d t d S(   Nt   with_doc_onlyi   (   t   p_suite_with_docstringR8   (   R>   R+   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR@  &	  s    c         C@  s   |  j  d  d  } |  j d k rg |  j   |  j   | rK t |   } n  t |  |  } |  j   n_ | j r |  j	 d d t
 n  | j d k r t |  |  } n t |   } |  j d	 d
 t | s t |  \ } } n  | | f S(   NRV   Rr  s%   'api' not allowed with this statementR   R!  R2  R  R$   s   Syntax error in declarationsR  (   R!  R2  R  R$   (   R^   R5   R;   R=   Rz  t   p_doc_stringRj  R|  R"   R   R8   R0   R  R  R  RO   t   _extract_docstring(   R>   R+   R  t   docR  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  *	  s$    

	c         C@  s<  g  } g  } d } x|  j  | k r1|  j  d k sB |  j  d k rX |  j d d t n  t } |  j  d k r7|  j   d d k r7|  j } |  j   |  j   t |   r t |   } nH t |  d | }	 t	 |  d	 d
 }
 t
 j |	 j d |	 d |
 } t } t j | j d | } | j | | f  t } n t |   rRt |   } nH t |  d | }	 t	 |  d	 d
 }
 t
 j |	 j d |	 d |
 } t } | j |  | d
 7} t |  d k r|  j d d | j n  |  j  d k r$|  j  | k r | r |  j d d j |   q n  Pn  |  j   q W| | f S(   s   
    Parses positional and keyword arguments. end_sy_set
    should contain any s.sy that terminate the argument list.
    Argument expansion (* and **) are not allowed.

    Returns: (positional_args, keyword_args)
    i    R   s   **s$   Argument expansion not allowed here.R   R:   R   R7   R   i   R   R   R   s%   Non-keyword arg following keyword argRG   RB   s   Unmatched %ss    or (   R;   R   R8   R   R<   R=   R   R_   R   R   R   t   CComplexBaseTypeNodeRG   RO   R   R   RC   R   Rb  (   R>   t
   end_sy_setR7   R   R   t   pos_idxt   parsed_typet   identR   R   R   t   keyword_nodet   was_keyword(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_positional_and_keyword_argsA	  sP    %	

	
 c         C@  s<   |  j  d k r t |  d | St |  | d | d | Sd  S(   NR   R7   t   nonempty(   R;   t   p_c_complex_base_typet   p_c_simple_base_type(   R>   t	   self_flagR  R7   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   y	  s    c         C@  s=   |  j  d k r5 |  j t k r5 |  j } |  j   | Sd Sd  S(   NR:   R-  (   R;   R<   t   calling_convention_wordsR=   (   R>   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_calling_convention	  s
    	
t	   __stdcallt   __cdeclt
   __fastcallc         C@  sQ  |  j    } |  j   t |  d | } t |  d t } t j | d | d | } |  j d k r | g } xv |  j d k r |  j   |  j d k r Pn  t |  d | } t |  d t } | j t j | d | d |  qp Wt j	 | d | } n  |  j
 d  |  j d k rMt |   r8t |  |  } qMt |  | |  } n  | S(	   NR7   R   R   R   RB   R   t
   componentsR   (   RF   R=   R   R   RO   R   R  R;   RC   t   CTupleBaseTypeNodeR^   t   is_memoryviewslice_accesst   p_memoryviewslice_accesst   p_buffer_or_template(   R>   R7   RG   R   R   t	   type_nodeR  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  	  s.    
	
c         C@  s  d } d } d } d } g  } |  j    }	 |  j d k sP t |	 d |  j  n  |  j d k r |  j   t |  d | d | d | }
 t |
 t j  r t j	 |	 d	 |
 j
 |
 _
 |
 St j	 |	 d	 |
 St |   rd } |  j d k r$|  j t k r$t |  j \ } } |  j } |  j   nL t |   \ } } |  j d k rj|  j t k rj|  j } |  j   n d
 } |  j d k r|  j d k rd } |  j   qnNt |   r|  j } |  j   x,|  j d k r| j |  |  j   t |   } qWn |  j } |  j   | r|  j d k r|  j d k r|  j   |  j d k s|  j d k s|  j d k s|  j d k r|  j t k r|  j d d  q|  j d d  |  j d |  d  } q|  j d k r|  j d |  d  } qn  t j |	 d | d | d | d | d | d | d | d | } |  j d k rst |   r^t |  |  } qst |  | |  } n  |  j d k r|  j   t |   } t j |	 d	 | d | } n  | S(   Ni    i   R:   s"   Expected an identifier, found '%s't   constR  R  R7   R   RT  RV  R   R   R   s   **R   R   R@   t   module_patht   is_basic_c_typet   signedRG  t   is_self_arg(   R   s   **R   R   (   RF   R;   R   R<   R=   R   R   R   R   R   R   t   looking_at_base_typet   special_basic_c_typest   p_sign_and_longnesst   basic_c_type_namest   looking_at_dotted_nameRC   RA   R  R  R5   t   CSimpleBaseTypeNodeR  R  R  t   CNestedBaseTypeNode(   R>   R  R  R7   t   is_basicR  RG  RV  R  RG   R   R@   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  	  s    
			

	

-	
c   
      C@  s   |  j    } |  j   t |  d
 |  \ } } |  j d  |  j d k r_ t |  | |  } n  t j | d g  | D]- \ } } t j d | j	 d | d |  ^ qr } t
 j | d | d | d	 | }	 |	 S(   NR  R   R   RG   R   R   R   R   R   (   R  (   RF   R=   R  R^   R;   R  R   R   R   RG   R   R   (
   R>   R   R7   RG   R   R   R   R   R   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  	  s    
:	c         C@  s|   | r | r | S| rJ | rJ t  |   r7 t |  |  St |  | d   Sn. | rx | rx t  |   rq t |  |  S| Sn  d  S(   N(   R  R  R  R5   (   R>   R   R  R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_bracketed_base_type
  s    c         C@  s   |  j  |  j f g } |  j   t } |  j d k r= t } nM |  j  d k r | j |  j  |  j f  |  j   |  j  d k r t } q n  x( | d  d  d  D] } |  j |   q W| S(   NRV   R#  i(   R;   R<   R=   R8   RO   RC   R  (   R>   t   savedt   retvalt   sv(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  *
  s    
	
c         C@  s   |  j    } |  j   t |   \ } } x0 | D]( } t |  d k  r/ |  j d  q/ q/ W|  j d  t | |  } t j | d | d | } | S(   Ni   sD   An axis specification in memoryview declaration does not have a ':'.R  R   t   axes(	   RF   R=   R  R   R   R^   R  R   R   (   R>   R   RG   R  R*  R  R  R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  ?
  s    
	c         C@  s   |  j  d k o |  j t k S(   NR:   (   R;   R<   R  (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   looking_at_nameO
  s    c         C@  s  |  j  t k r t S|  j d k rt } |  j  } g  } |  j   x: |  j d k r} |  j   | j |  j   |  j d  qD W|  j |  j  f } |  j d k r t } n |  j d k s |  j d k r |  j   |  j d
 k } |  j |   np |  j d k r'|  j   |  j d k } |  j |   n8 |  j d k r_|  j   |  j d k } |  j |   n  | j	   x. | D]& } |  j d |  |  j d d  qpW|  j d |  | o| d	 St Sd  S(   NR:   R   R   s   **R   R  R   R   i    (   R   R  (
   R<   t   base_type_start_wordsR8   R;   R=   RC   R^   RO   R  t   reverse(   R>   t   is_typeR@   t   dotted_pathR  t   p(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   R
  sB    	

	



c         C@  s   |  j  d k o |  j t k S(   NR:   (   R;   R<   R  (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  z
  s    c         C@  sM   |  j  d k rE |  j } |  j   |  j  d k } |  j d |  | Sd Sd  S(   NR:   R   i    (   R;   R<   R=   R  (   R>   R@   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  ~
  s    	
c         C@  sC   |  j  |  j f } t |   d k } | s? | \ |  _  |  _ n  | S(   s   See if we're looking at a.b.c(u   ((   t
   start_linet	   start_colR   (   R>   RF   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   looking_at_call
  s
    t   voidt   charRT  RU  t   doublet   bintt
   Py_UNICODEt   Py_UCS4t	   Py_hash_tt
   Py_ssize_tt   ssize_tt   size_tt	   ptrdiff_tt   Py_tss_tt   shortRY  R  RF  t   enumt   packedc         C@  s   d } d } x |  j  d k r |  j t k r |  j d k rE d } nL |  j d k r] d } n4 |  j d k ru d } n |  j d	 k r | d 7} n  |  j   q W| | f S(
   Ni   i    R:   RF  R  i   R  iRY  (   R;   R<   t   sign_and_longness_wordsR=   (   R>   R  RG  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  
  s    !			c         C@  s@   t  |  d  } | d  k	 r6 t |  } |  j | _ n d  } | S(   NR(  (   Rk  R5   R   Ra  Ri  (   R>   t   literalt   cname(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_opt_cname
  s    c         C@  s  |  j    } |  j d k r |  j   |  j d k s@ t |   r t j | d |  j j d  d d  }	 t	 |  | | |	 |  }
 q t
 |  | d | d | d | d	 | d
 d }
 |  j d  n t |  | | | | | |  }
 | r|
 j r|  j d k rt |  j    d |
 j  n  xh |  j d k r|  j    } |  j d k rXt |  |
  }
 n" |  j   t	 |  | | |
 |  }
 d } qW|
 S(   NR   R   R@   u    R  R   R  t   cmethod_flagR  t   calling_convention_allowedi   s&   %s on something that is not a functionR   i    (   R   R   (   RF   R;   R=   R  R   t   CNameDeclaratorNodeRM   R   R5   t   p_c_func_declaratorR   R^   t   p_c_simple_declaratort   calling_conventionR   t   p_c_array_declarator(   R>   R+   R   R  R  t
   assignableR  R  RG   R
  R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   
  s0    
'	

c         C@  s`   |  j    } |  j   |  j d k r4 t |   } n d  } |  j d  t j | d | d | S(   NR  R
  t	   dimension(   RF   R=   R;   R   R5   R^   R   t   CArrayDeclaratorNode(   R>   R
  RG   t   dim(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  
  s    
c         C@  s   t  |  | d | d d } t |   } |  j d  t |   } t |   \ } }	 t |   }
 t j | d | d | d | d | d	 |	 d
 | p | j p |
 d |
 S(   NR  t   nonempty_declaratorsi    R   R
  RY   t   has_varargst   exception_valuet   exception_checkR!   t   with_gil(	   t   p_c_arg_listt   p_optional_ellipsisR^   t   p_nogilt   p_exception_value_clauset
   p_with_gilR   t   CFuncDeclaratorNodeR!   (   R>   RG   R+   R
  R  RY   t   ellipsisR!   t   exc_valt	   exc_checkR  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  
  s    	R   R   R   RJ   R   s   ++s   --R   R   R   R   s   <<s   >>RB   s   []s   ()R  RS  c         C@  sG  |  j    } t |   } |  j d k r |  j   |  j d k r |  j    }	 |  j   t |  | d | d | d | d | d | }
 t j |	 d |
 } n- t |  | d | d | d | d | d | } t j | d | } nZ|  j d	 k rM|  j   t |  | d | d | d | d | d | } t j | d t j | d | } n|  j d
 k r|  j   t |  | d | d | d | d | d | } t j	 | d | } nd  } |  j d k r8|  j } | rt |  j    d  n  |  j   t |   } | d k r`|  j d k r`| r`|  j   t |   } q`n( | rTt |  j    d  n  d } d  } | d  k r| j d  k	 r| r| j d | } n  | d k r| j d k r| r|  j } g  | D] } | d k rd ^ qr|  j   | d k r|  j d  d } n} | d k r2|  j d  d } n[ | d% k rd|  j | k rd| d 9} |  j   n) |  j d k r| |  j 7} |  j   n  | t k r|  j d | d  t n  | | 7} q| d k r|  j } | t k r|  j d | d  t n  | d! | } |  j   qn  t j | d" | d# | d$ | } | | _ | S(&   NR   R  R   R  R  R  R  R
  s   **R   R:   s   Declarator should be emptyRx   R   s   Empty declaratorR-  s   ::t   externs   +-*/<=>!%&|([^~,i   R   R   s   ()R   R  s   []R   R   R   i   s,   Overloading operator '%s' not yet supported.R   t    R@   R  t   default(   R   R   R   R   (   RF   R  R;   R=   R<   R   R   t   CConstDeclaratorNodet   CPtrDeclaratorNodet   CReferenceDeclaratorNodeR5   R   R  R_   R6   R1   R^   t   supported_overloaded_operatorsR8   R  R  (   R>   R+   R   R  R  R  R  RG   R  t	   const_post
   const_baseR
  R   R  R@   R  RH   R'  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   	  s    

	

	
!
!!	%
		

	
	c         C@  s4   |  j  d k r, |  j d k r, |  j   d Sd Sd  S(   NR:   R!   i   i    (   R;   R<   R=   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  _  s    
c         C@  s2   |  j  d k r* |  j   |  j d  d Sd Sd  S(   NR   Ru  i   i    (   R;   R=   t   expect_keyword(   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  f  s
    
c         C@  s  d  } d } |  j d k r|  j   |  j d k rG d } |  j   q|  j d k r d } |  j   |  j d k r |  j } |  j   t |  |  } q|  j d k rt j |  j   d d } |  j   qq|  j d	 k r d } |  j   n  t |   } n  | | f S(
   Ni    RX  R   i   R   R:   R   u   *R   (	   R5   R;   R=   R<   R@  R   R9  RF   R_   (   R>   R  R  R@   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  n  s,    

	
s   **R   c   	      C@  sw   g  } | } xd |  j  t k rr | j t |  | | | d | d | d |  |  j  d k r_ Pn  |  j   d } q W| S(   NR  t   kw_onlyRX   RB   i    (   R;   t   c_arg_list_terminatorsRC   t   p_c_arg_declR=   (	   R>   R+   t	   in_pyfuncR  R  R  RX   RY   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    


c         C@  s%   |  j  d k r t |   d Sd Sd  S(   NR   i   i    (   R;   R  (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    
c         C@  s%  |  j    } d } }	 d  }
 d  } |  j rm t j | d d  d g  d d d d d d d d d | d	 d  } n t |  | d
 | } t |  | d
 | } |  j d k r0|  j r0|  j } |  j   |  j d k r |  j	 d k r |  j   n |  j
 d  | st
 | d |  n  | d k }	 | d k } n  | r^|  j d k r^|  j   t |   } n  |  j d k r|  j   d | j k r|  j d  k rt j |  }
 |  j   qd | j k rt |   }
 qt
 | d  qt |   }
 n  t j | d | d | d | d |	 d |
 d | d | S(!   Ni    R@   R  R  R  RV  RG  R  R7   R  Rt   Rn   R:   R5   s   Expected 'None's*   '%s None' only allowed in Python functionsRV   R   R   R   R   R    s;   default values cannot be specified in pxd files, use ? or *R   R   t   not_nonet   or_noneR  R  R  (   Rt   Rn   (   R   R   (   RF   R5   R   R   R  R   R   R;   R=   R<   R   R_   R0   R   R  t	   modifierst   CArgDeclNode(   R>   R+   R"  R  R  R  RX   RG   R#  R$  R  R  R   R   RA  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR!    sV    
		


c         C@  s4   |  j  d k r, |  j d k r, |  j   d Sd Sd  S(   NR:   R"   i   i    (   R;   R<   R=   (   R>   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_api  s    
c         C@  sq  |  j    } t |  | j  | _ | j p3 t |   | _ | j rk | j d k rk t | d | j  qk n  | j d k r |  j d k r t |  | |  S|  j d k r |  j   t |  | |  St	 |   r d | _
 | j r t | d  n  t |  |  S|  j d	 k r2| j r%t | d  n  t |  |  S|  j d
 k r| j d k r`t | d  n  | j ryt | d  n  t |  | |  S|  j d k r|  j d k rt |  | |  S|  j d k r/|  j t k r/| j d k rt | d  n  | j r|  j d k rt | d  qn  t |  | |  S|  j d k r]|  j d k r]t |  | |  St |  | |  Sd  S(   NR%   t   publics   Cannot combine 'api' with '%s'R  R   R  i   s$   cdef blocks cannot be declared cpdefRV   R2  R!  R  s*   Extension type definition not allowed heres(   Extension types cannot be declared cpdefR:   R   s/   C struct/union/enum definition not allowed hereR  s'   C struct/union cannot be declared cpdeft   fused(   R%   R(  (   R!  R  (   R!  R  (   RF   t   p_visibilityR1   R"   R'  R   R;   t   p_cdef_extern_blockR=   R  R!   R4   t   p_cdef_blockR0   t   p_c_class_definitionR<   t   p_cpp_class_definitiont   struct_enum_uniont   p_struct_enumt   p_fused_definitionR{  (   R>   R+   RG   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    sL    	
					c         C@  s   t  |  | d d   S(   NR2   i   (   R@  (   R>   R+   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR,    s    c      
   C@  s   | j  r t | d  n  d  } |  j d  |  j d k rH |  j   n t |  d  d } | d d d d	  } |  j d
 k r |  j   t |  d  d | _ n  t	 |   r d | _
 n  t |  | t  \ } } t j | d | d | d | d
 | j S(   Ns+   cdef extern blocks cannot be declared cpdefR   R   R(  i   R2   i   R1   R  R6   t   include_filet   verbatim_includeR  (   R4   R   R5   R^   R;   R=   R^  R<   R6   R  R!   R  RO   R   t   CDefExternNode(   R>   RG   R+   R2  R3  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR+    s&    	
c         C@  sG  |  j    |  j d k rj |  j } |  j    t |   } | d  k rv | j d  k	 rv | j d | } qv n d  } d  } d  } |  j d  g  } |  j d k r t |  | |  nD |  j    |  j   x# |  j d k r t |  | |  q W|  j	   t
 j | d | d | d	 | d
 | j d | j d | j d | j d | j d k S(   NR:   s   ::RV   Rr  R  Rt  R@   R  R  R3   R1   t   create_wrapperR"   t   in_pxdR  (   R  Rt  (   R=   R;   R<   R  R5   R6   R^   t   p_c_enum_lineRz  R|  R   R  R3   R1   R4   R"   R0   (   R>   RG   R+   R@   R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_c_enum_definition   s0    
	



	c         C@  s   |  j  d k re t |  | |  xM |  j  d k ra |  j   |  j  d k rN Pn  t |  | |  q" Wn
 |  j   |  j d  d  S(   NR  RB   Rr  Rt  s   Syntax error in enum item list(   Rr  Rt  (   R;   t   p_c_enum_itemR=   R  (   R>   R+   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR7  =  s    

c      	   C@  s   |  j    } t |   } t |   } | d  k rS | j d  k	 rS | j d | } n  d  } |  j d k r |  j   t |   } n  | j t	 j
 | d | d | d |  d  S(   Ns   ::R   R@   R  R   (   RF   RA   R  R5   R6   R;   R=   R_   RC   R   t   CEnumDefItemNode(   R>   R+   R  RG   R@   R  R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR9  I  s    
c   	      C@  s  t  } |  j d k rV t } |  j   |  j d k sC |  j d k rV |  j d  qV n  |  j } |  j   t |   } t |   } | d  k r | j	 d  k	 r | j	 d | } n  d  } |  j d k r`|  j   |  j
 d  |  j   g  } t   } x[ |  j d k rR|  j d k r8| j t |  |  j   |   q |  j   |  j d	  q W|  j   n |  j d
  t j | d | d | d | d | d | j d | j d | j d | j d k d | 	S(   NR  R:   R3  s   ::RV   Rr  R  R  s   Expected a newlines*   Syntax error in struct or union definitionR@   R  RA  t
   attributesR3   R1   R"   R6  R  (   R8   R<   RO   R=   R;   t   expectedRA   R  R5   R6   R^   Rz  R#   RC   R{  RF   R  R|  R   R  R3   R1   R"   R0   (	   R>   RG   R+   R  RA  R@   R  R;  R}  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_c_struct_or_union_definitionV  s>    
	


	
c         C@  s   | j  d
 k r t | d  n  |  j   t |   } |  j d  |  j   |  j   g  } xL |  j d k r |  j d k r | j t	 |    n
 |  j   |  j   q_ W|  j
   | s t | d  n  t j | d | d	 | S(   s5   
    c(type)def fused my_fused_type:
        ...
    R!  R  s&   Fused type definition not allowed hereRV   R  R  s   Need at least one typeR@   t   types(   R!  R  (   R0   R   R=   RA   R^   R  Rz  R;   RC   R   R|  R   t   FusedTypeNode(   R>   RG   R+   R@   R>  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR1  z  s"    




c         C@  s3   |  j  d k r t |  | |  St |  | |  Sd  S(   NR  (   R<   R8  R=  (   R>   RG   R+   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR0    s    c         C@  s   |  j    } | } |  j d k r~ |  j d k r~ |  j } | d k rq | | k rq |  j d | | f d t n  |  j   n  | S(	   NR:   R  R(  t   readonlyR%   s,   Conflicting visibility options '%s' and '%s'R   (   R  R(  R@  (   RF   R;   R<   R   R8   R=   (   R>   t   prev_visibilityRG   R1   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR*    s    		c         C@  sF   |  j  d k rB |  j d k rB |  j } |  j   | g t |   Sg  S(   NR:   R    (   R    (   R;   R<   R=   t   p_c_modifiers(   R>   t   modifier(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRB    s
    	
c         C@  s  | j  d$ k } t |   } t |  d d d | j } t |  | d |  d | d d d d } | j | _ |  j d	 k r |  j d
 k r | j  d k r |  j   d } n d } |  j d k r |  j	 d d t
 |  j   t |   n  |  j d k r| j  d% k r#| j r#|  j	 d  n  t |  t d d   \ } }	 t j | d | j d | d | d |	 d | d | d | j d | j d | 	}
 n | r| | _ n  | g } x^ |  j d k r|  j   |  j d k rPn  t |  | d | d d d d } | j |  qW|  j d } |  j d  d! t | j  d& k r[|  j | k r[t |   } n d  } t j | d | j d | d" | d# | j  d' k d | d | j d | d | j }
 |
 S((   NR  R  R  i   R7   R%  R  R  R:   R  t	   cpp_classi    s   ->s~   Return type annotation is not allowed in cdef/cpdef signatures. Please define it before the function name, as in C signatures.R   RV   R!  R  s&   C function definition not allowed hereR0   R  R1   R   R   R  R  R"   R4   t   is_const_methodRB   Rr  s&   Syntax error in C variable declarationR  t   declaratorsR6  (   R  R  (   R!  R  R  R  RD  (   R  R  (   R  R  (   R0   RB  R   R7   R   R4   R;   R<   R=   R   R8   R_   R  R#   R   R  R1   R"   RE  RC   R  R  RO   R  R5   R  (   R>   RG   R+   R  R%  R   R   RE  R  t   suiteR   RF  t   doc_line(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR{    sn    -
	
				
		c         C@  sN  |  j    } |  j   t |  | j  } t |   } | d d d |  } | r[ d | _ n  |  j d k rz t |  | |  S|  j d k r |  j t	 k r t
 |  | |  S|  j d k r |  j d k r t |  | |  St |  d d } t |  | d d d d } |  j d	 d
 t t j | d | d | d | d | d | j d k Sd  S(   NR3   i   R1   R2  R:   R)  R  R  s"   Syntax error in ctypedef statementR  R   R   R"   R6  R  (   RF   R=   R*  R1   R'  R"   R;   R-  R<   R/  R0  R1  R   R   R  RO   R   t   CTypeDefNodeR0   (   R>   R+   RG   R1   R"   R   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s*    
c         C@  s  g  } x |  j  d k r|  j   } |  j   t |  d d d } | j d  } t j | d |  j j | d  } x9 | d D]- } t j	 | d |  j j |  d	 | } q W|  j  d
 k r t
 |  |  } n  | j t j | d |  |  j d  q	 W| S(   NR   R  i    i   R   R@   i   R   R   R   t	   decorators"   Expected a newline after decorator(   R;   RF   R=   R  t   splitR   RN  RM   R   R   R   RC   R   t   DecoratorNodeR  (   R>   R   RG   t	   decstringRD   RJ  R@   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    
%%c         C@  s@   |  j  d k r< | t k r< |  j d | d t t |   S| S(   sq   Step over incorrectly placed cdef modifiers (@see _CDEF_MODIFIERS) to provide a good error message for them.
    R:   sT   Cannot use cdef modifier '%s' in Python function signature. Use a decorator instead.R   (   R;   R   R   R8   RA   (   R>   R@   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   _reject_cdef_modifier_in_py  s    
c         C@  sW  |  j    } | r |  j   n  |  j   t |  t |    } |  j d d |  j d k rb |  j n |  j  t |  d d \ } } } |  j d  t |  |  j  d  } |  j d k r |  j   t
 |   } t |  |  j  n  t |  t d d   \ }	 }
 | r|  j   n  t j | d	 | d
 | d | d | d |	 d |
 d | d | d | 	S(   NR   s~   Expected '(', found '%s'. Did you use cdef syntax in a Python declaration? Use decorators and Python type annotations instead.R:   RW   R   s   ->R0   R  R@   RY   RZ   R[   R  R  R   R   t   return_type_annotation(   RF   t   enter_asyncR=   RN  RA   R^   R;   R<   R]   R5   R_   R  R#   t
   exit_asyncR   t   DefNode(   R>   R   R   RG   R@   RY   RZ   R[   RO  R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR   )  s0    
#
c         C@  s'  t  |  d d d d d | } d  } d  } |  j d k r |  j   |  j d k rg t |  d | } n  |  j d k r |  j   | j t  |  d d d d d d d |  q |  j | k r |  j d	  q n  |  j d
 k r |  j   t |  d | } n  |  j d k r|  j   n  | | | f S(   NR"  i   R  RX   R   R:   RB   R  s-   Syntax error in Python function argument lists   **(   R  R5   R;   R=   t   p_py_arg_declR   R   (   R>   RW   RX   RY   RZ   R[   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR]   I  s(    	


c         C@  se   |  j    } t |   } d  } | rL |  j d k rL |  j   t |   } n  t j | d | d | S(   NRV   R@   R  (   RF   RA   R5   R;   R=   R_   R   t   PyArgDeclNode(   R>   RX   RG   R@   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyRS  _  s    
c   
      C@  s  |  j    } |  j   t t |    } |  j | _ d  } d  } |  j d k r t |  d t	 \ } } t
 | | |  \ } } n  | d  k r t j | d g  } n  t |  t d d   \ } }	 t j | d | d | d | d	 | d
 |	 d | d |  j j d k S(   NR   R   RY   R0   R2  R@   t   basesR   R  R  R   t   force_py3_semanticsi   (   RF   R=   R   RA   Ra  Ri  R5   R;   R   R8   R  R   R   R  R#   R   t   PyClassDefNodeRM   RH  (
   R>   R   RG   t
   class_nameR  R   R   R   R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR  i  s$    
c         C@  s^  |  j    g  } t |   } x6 |  j d k rT |  j    | j |  t |   } q W| rz | j d k rz t | d  n  | r |  j d k r |  j d k r |  j    t |   } n | } d  } d  } d  } d  }	 |  j d k r-t |  d t	 \ }
 } | r|  j d  n  t
 | |
 |  \ } } n  | d  k rQt j | d	 g  } n  |  j d
 k r| j d( k r| j rt |  j   d  n  t |   \ } } }	 n  |  j d k r| j d k rd } n d } t |  t d |   \ } } n |  j d  d  } d  } | j d k rL| s3t | d  n  | rt | d  qn | j d k r| sqt | d  n  | st | d  qn^ | j d k r| j r| st | d  n  | st | d  qqn t | d | j  t j | d | j d | j d | j d d j |  d | d  | d! | d" | d# | d$ |	 d% | j d k d& | d' | S()   NR   R  s6   Qualified class name only allowed for 'extern' C classR:   R7  R   R   s$   C classes cannot take keyword bases.RY   R   R(  sB   Name options only allowed for 'public', 'api', or 'extern' C classRV   R  R  R  R0   s"   Syntax error in C class definitions)   Module name required for 'extern' C classs?   Type object name specification not allowed for 'extern' C classs>   Object struct name specification required for 'public' C classs<   Type object name specification required for 'public' C classR%   s;   Object struct name specification required for 'api' C classs9   Type object name specification required for 'api' C classs   Invalid class visibility '%s'R1   R3   R"   R  RX  R  RU  t   objstruct_namet   typeobj_namet
   check_sizeR6  R  R  (   R(  R  (   R=   RA   R;   RC   R1   R   R<   R5   R   R8   R  R   R   R"   RF   t   p_c_class_optionsR0   R  R#   R  R   R  R3   Rb  (   R>   RG   R+   R  RX  R  RY  RZ  RU  R[  R   R   R*  t
   body_levelR  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR-    s    

$
	!				c         C@  s  d  } d  } d  } |  j d  x |  j d k r5 Pn  |  j d k r] |  j   t |   } np |  j d k r |  j   t |   } nH |  j d k r |  j   t |   } | d k r |  j d	 |  q n  |  j d
 k r Pn  |  j   q" W|  j d d  | | | f S(   NR   R:   t   objectR  R[  t   ignoret   warnR   s/   Expected one of ignore, warn or error, found %rRB   R  s)   Expected 'object', 'type' or 'check_size'(   R_  R`  R   (   R5   R^   R;   R<   R=   RA   R   (   R>   RY  RZ  R[  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR\    s.    


c         C@  se   |  j    } |  j   t |   } t |  t d d  d t \ } } t j | d | d | d | S(   NR0   R  R  R@   R  R  (   RF   R=   RA   R  R#   RO   R   t   PropertyNode(   R>   RG   R@   R  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    
!c         C@  sQ   |  j  d k rM |  j   } t |   } |  j d d t t j | d | Sd S(   sO   
    Parses any kind of ignorable statement that is allowed in .pxd files.
    R&  s   Syntax error in stringR  Rc   N(   R;   RF   R   R  RO   R   R   R5   (   R>   RG   t   string_node(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    c         C@  sl   |  j  d k rd |  j   } t |   \ } } } |  j d d t | d k rS | St | d  | Sd  Sd  S(   NR&  s   Syntax error in doc stringR  R(  R-  s2   Python 3 requires docstrings to be unicode strings(   R(  R-  (   R;   RF   R8  R  RO   R   R5   (   R>   RG   RA  t   bytes_resultt   unicode_result(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s    c         C@  sM  d } |  d k r n t |  t j  rZ |  j j r |  j } t j |  j d g  }  q ng t |  t j  r |  j r |  j } t | d t j  r | d j j r | d j } | d =q q n  | d k r d } nm t | t	 j
  rt |  j d  | j } n? t | t	 j  r:| j } | d k rC| j } qCn	 | j } | |  f S(   s   
    Extract a docstring from a statement or from the first statement
    in a list.  Remove the statement if found.  Return a tuple
    (plain-docstring or None, node).
    R  i    s2   Python 3 requires docstrings to be unicode stringsN(   R5   R   R   R   Rc   t   is_string_literalR  RG   R  R   R;  R   R   R=  R.  (   R   t   doc_nodeR  R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s2    						c         C@  s]   t  |  | d |  d d } |  j d k rY |  j d t |  j  t |  j  f  n  | S(   NR0   R(  i   Rt  s!   Syntax error in statement [%s,%s](   Rj  R;   R   RQ  R<   (   R>   R0   R+   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_code+  s
    	#s$   ^#\s*cython\s*:\s*((\w|[.])+\s*=.*)$c         C@  s\  i  } xO|  j  d k rW|  j   } t |  j  } | rJ| j d  j   } y t j | d t } Wn: t	 k
 r } |  j
 | j d d t |  j   q	 n Xxp | D]h } | | k r q | | | | k r t | d | f  q |  j
 d | | | | | f d | q Wd	 | k r:|  j j | d	  n  | j |  n  |  j   q	 W| S(
   Nt   commentlinei   t   ignore_unknowni    R   s   Duplicate directive found: %ss@   Conflicting settings found for top-level directive %s: %r and %rRG   RH  (   R;   RF   t!   _match_compiler_directive_commentR<   R  R  R
   t   parse_directive_listRO   t
   ValueErrorR   RY   R8   R=   R   RM   t   set_language_levelR'   (   R>   R   RG   t   mt   directives_stringt   new_directivest   eR@   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_compiler_directive_comments7  s0    
	#c   
   
   C@  s.  |  j    } t |   } t |  _ |  j j d  k r |  j j d  | d j r d d  l	 } | j
 d | d j t d t j r d n d q n  t |   } | r d } n d } t |  | d |  d	 d }	 |  j d
 k r|  j d t |  j  t |  j  f  n  t | d | d |	 d | d | S(   Ni   i    so   Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: %st
   stackleveli   R  R!  R0   R(  Rt  s!   Syntax error in statement [%s,%s]R  R  t   full_module_namet   directive_comments(   RF   Rr  R8   Rd  RM   RH  R5   Rm  t   filenamet   warningsR`  t   FutureWarningt   cythont   compiledR  Rj  R;   R   RQ  R<   R   (
   R>   R   Rt  R+   RG   Ru  Rw  R  R0   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_moduleX  s.    			#c         C@  sN   t  |   } |  j d k r> |  j d  |  j d  t } n t } | | f S(   NR   R   (   RA   R;   R^   R8   RO   (   R>   R@   t   required(    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   p_template_definitionw  s    	c         C@  s  |  j    g  } t |   } t |   } | d  k rW | j d  k	 rW | j d | } n  |  j d k rv t | d  n  |  j d k r |  j    t |   g } x0 |  j d k r |  j    | j t |    q W|  j	 d  g  | D] \ } } | ^ q }	 n d  } d  }	 |  j d k r|  j    t
 |  d |	 g }
 x6 |  j d k rr|  j    |
 j t
 |  d |	  q=W|  j	 d	  n g  }
 |  j d k rt |  j   d
  n  t |   } |  j d k r|  j    |  j	 d  |  j   g  } t d | j d d d | p| j  } |	 | _ xR |  j d k rt|  j d k rZ| j t |  |   q#|  j    |  j d  q#W|  j   n d  } |  j d  t j | d | d | d |
 d | j d | j d k d | d | S(   Ns   ::R   s*   Qualified class name not allowed C++ classR   RB   R  R   R7   R   s&   Name options not allowed for C++ classRV   Rr  R1   R0   RD  R!   R  R  s   Expected a newlines$   Syntax error in C++ class definitionR@   R  t   base_classesR6  R  R;  (   R=   RA   R  R5   R6   R;   R   R}  RC   R^   R   RF   R  Rz  R#   R1   R!   R7   t   p_cpp_class_attributeR  R|  R   t   CppClassNodeR0   (   R>   RG   R+   R  RX  R  R7   R@   R|  t   template_namesR~  R!   R;  R}  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR.    sh    


"



'	
	c         C@  sR  d  } |  j d k r$ t |   } n  |  j d k rI t |  |  j   |  S|  j d k re t |  |  S|  j d k r |  j t k r |  j d k r t |  |  j   |  St |  |  j   |  Sn t	 |  |  j   |  } | d  k	 rJt
 j t
 j t
 j f } | j r| t
 j t
 j f 7} n  t | |  s>|  j d  n  | | _ n  | Sd  S(   NR   R   R  R:   R  s7   Decorators can only be followed by functions or classes(   R5   R;   R  R<   R.  RF   R  R/  R0  R{  R   R  R  R  R9   R  R  R   R   R   (   R>   R+   R   R   R  (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s(    	c   
      C@  s  d | } | r|  j  |  | r7 |  j  d |  n  t |  } | t k r |  j  d | d | d f  x5 t d t |   D] } t |  | | | d  q W|  j  d |  d  St | t j  rjy | j	 } Wn t
 k
 r | j j } n X|  j  d | | j f  xO | j j   D]> \ } }	 | d	 k r$| d
 k r$t |  |	 | d |  q$q$Wd  S| t k r|  j  d  x2 t t |   D] } t |  | | | d  qW|  j  d |  d  Sn  |  j  d | | f  d  S(   Ns     s   %s: s	   (%s @ %s
i    i   i   s   %s)
s   %s @ %s
t   tagRG   s   [
s   %s]
s   %s%s
(   t   writeR  R   t   rangeR   t   print_parse_treeR   R   t   NodeR  R$  R[  R.   RG   R&   R  R   (
   R+  R   R0   R   t   indt   tR  R  R@   R   (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyR    s:    
(   R    R!   R"   (   i    i    (   i    i    (   i   i    (   i   i    (   i   i    (   i    i    (   i   i    (   i   i    (   R  R    Ry  R  R^  R  R   t   ioR   R   R   t   unicodedataR   R   R   R   t	   functoolsR   R   t   ScanningR   R   R   R-  R   R   R   R   R   R   R   R   R   t   ErrorsR   R   R   R	   R
   t   version_infoR   t
   maxunicodeR   R   R#   RA   RE   RI   RU   RO   Rd   Re   R_   R`   Rl   Ro   Rp   Rs   Rw   R   R{   R   R}   R_  R|   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R   R   R  R  R  R  R  R5   R  R   R5  R@  RM  R8  Rk  Rm  R^  R{  R8   Ru  t   compilet   decodeR  R   R   R~  R  R1  R  R  R  R2  R3  R  R  R   R  R0  R   R  R  R  R  R  R  R  R  R  R  R  R  R  R1  R5  R"  R  R6  R:  R   R?  R=  R>  RB  R   R  RK  RL  RR  RT  RI  RJ  R_  R\  Rq  Rt  R   Rs  R  R  R  R  R  R  Rj  R@  R  R  R   R  R  R  R  R  R  R  R  R  R   R  R  R  R  R  R  R  R  R/  R  R  R   R  R  R  R   R  R  R  R   R  R  R!  R'  R  R,  R+  R8  R7  R9  R=  R1  R0  R*  RB  R{  R  R  RN  R   R]   RS  R  R-  R\  R  R  R  R  Rg  Rj  Rr  R{  R}  R.  R  R  (    (    (    s6   lib/python2.7/site-packages/Cython/Compiler/Parsing.pyt   <module>   s  "														
																		3	*								?	 	
	)	,	e	.K	0	z						n	
								/						
		$Q!				!				+		$									"#			f8		Q						(		
	$			!	
		V			'	3		)						$	"				@			
 
		L						#	!	
	;	