ó
¦V]c        &   @@  s0  d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d	 d
 d d d d d d d d d d d d g Z	 d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< g& Z
 d= e f d> „  ƒ  YZ e d? k r,d d@ l Z e j ƒ  n  d@ S(A   s+   
Uses TreeFragment to test invalid syntax.
i    (   t   absolute_importi   (   t
   CythonTesti   (   t   CompileError(   t	   ExprNodest   0_0_0t   4_2t   1_0000_0000t   0b1001_0100t   0xffff_fffft   0o5_7_7s	   1_00_00.5s
   1_00_00.5js   1_00_00.5e5t   1_00_00jt   1_00_00e5_1t   1e1_0s   .1_4s   .1_4e1s   .1_4jt   0_t   42_s   1.4j_t   0b1_t   0xf_t   0o5_t   0_b0t   0_xft   0_o5t   0b_0t   0x_ft   0o_5s   0 if 1_Else 1s   1_.4s   1_.4js   1._4s   1._4js   ._5s   1.0e+_1t	   4_______2s   0.1__4t   0b1001__0100t   0xffff__fffft   0o5__77t   1e1__0s   1.4_js   1.4e5_jt   1_e1s   1.4_e1t   1e_1s   1.4e_1s   1_ 2s   1 _2s   1_2.2_ 1s   1_2.2 _1s   1_2e _1s   1_2e2 _1s   1_2e 2_1t   TestGrammarc           B@  s   e  Z d  „  Z d „  Z RS(   c         C@  sÇ   xÀ t  D]¸ } x¯ d d d d d g D]˜ } d | | } y |  j d | ƒ WnV t k
 r¤ } | g  t | ƒ j ƒ  D] } | j ƒ  ^ qt k s» t t | ƒ ƒ ‚ q# Xt s# t d | ƒ ‚ q# Wq Wd  S(	   Ns   %ss   1 + %ss   %s + 1s   2 * %ss   %s * 2s   x = uC                       # cython: language_level=3
                    s5   Invalid Cython code '%s' failed to raise an exception(   t   INVALID_UNDERSCORE_LITERALSt   fragmentR   t   strt
   splitlinest   stript   AssertionErrort   False(   t   selft   literalt
   expressiont   codet   exct   s(    (    s@   lib/python2.7/site-packages/Cython/Compiler/Tests/TestGrammar.pyt   test_invalid_number_literals]   s    Gc         C@  sU  xNt  D]F} x=t d d d d d g ƒ D] \ } } d | | } |  j d | ƒ j } | d  k	 sk t ‚ | j d j } | d k r¦ | d	 rš | j n | j	 } n  d
 | k s¾ d | k rÙ t
 | t j ƒ sIt ‚ q) d | k sd | k sd | k r1d | k pd | k r1t
 | t j ƒ sIt ‚ q) t
 | t j ƒ s) t ‚ q) Wq Wd  S(   Ns   %ss   1 + %ss   %s + 1s   2 * %ss   %s * 2s   x = uC                       # cython: language_level=3
                    i    i   t   jt   Jt   .t   et   Et   0xt   0X(   t   VALID_UNDERSCORE_LITERALSt	   enumerateR!   t   roott   NoneR%   t   statst   rhst   operand2t   operand1t
   isinstanceR   t   ImagNodet	   FloatNodet   IntNode(   R'   R(   t   iR)   R*   t   nodet   literal_node(    (    s@   lib/python2.7/site-packages/Cython/Compiler/Tests/TestGrammar.pyt   test_valid_number_literalsj   s    (=(   t   __name__t
   __module__R-   RD   (    (    (    s@   lib/python2.7/site-packages/Cython/Compiler/Tests/TestGrammar.pyR   [   s   	t   __main__N(   t   __doc__t
   __future__R    t	   TestUtilsR   t   ErrorsR   t    R   R5   R    R   RE   t   unittestt   main(    (    (    s@   lib/python2.7/site-packages/Cython/Compiler/Tests/TestGrammar.pyt   <module>   sz   		$