ó
­«Y]c           @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d	 „  ƒ  YZ d
 e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d „  Z e d k re ƒ  n  d S(   iÿÿÿÿN(   t   test_support(   t   assert_python_failuret   RoundtripLegalSyntaxTestCasec           B   sÅ   e  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 „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sx   | | ƒ } | j  ƒ  } y t j | ƒ } Wn- t j k
 rZ } |  j d | | f ƒ n X|  j | | j  ƒ  d ƒ d  S(   Ns   could not roundtrip %r: %ss!   could not re-generate syntax tree(   t   totuplet   parsert   sequence2stt   ParserErrort   failt   assertEqual(   t   selft   ft   st   st1t   tt   st2t   why(    (    s!   lib/python2.7/test/test_parser.pyt	   roundtrip   s    c         C   s   |  j  t j | ƒ d  S(   N(   R   R   t   expr(   R	   R   (    (    s!   lib/python2.7/test/test_parser.pyt
   check_expr   s    c         B   sA   e  j d ƒ } | j ƒ  } i  } | | U|  j | d e ƒ d  S(   Ns/   from __future__ import unicode_literals; x = ''t   x(   R   t   suitet   compilet   assertIsInstancet   unicode(   R	   R   t   codet   scope(    (    s!   lib/python2.7/test/test_parser.pyt   test_flags_passed    s
    c         C   s   |  j  t j | ƒ d  S(   N(   R   R   R   (   R	   R   (    (    s!   lib/python2.7/test/test_parser.pyt   check_suite)   s    c         C   s­   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d	 ƒ |  j  d
 ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   def f(): yield 1s   def f(): yields   def f(): x += yields   def f(): x = yield 1s   def f(): x = y = yield 1s   def f(): x = yields   def f(): x = y = yields   def f(): 1 + (yield)*2s   def f(): (yield 1)*2s   def f(): return; yield 1s   def f(): yield 1; returns1   def f():
    for x in range(30):
        yield x
s)   def f():
    if (yield):
        yield x
(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_yield_statement,   s    c         C   s*  |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d	 ƒ |  j  d
 ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d  ƒ |  j  d! ƒ |  j  d" ƒ |  j  d# ƒ |  j  d$ ƒ |  j  d% ƒ |  j  d& ƒ |  j  d' ƒ |  j  d( ƒ |  j  d) ƒ |  j  d* ƒ |  j  d+ ƒ |  j  d, ƒ |  j  d- ƒ |  j  d. ƒ |  j  d/ ƒ |  j  d0 ƒ |  j  d1 ƒ |  j  d2 ƒ |  j  d3 ƒ |  j  d4 ƒ |  j  d5 ƒ |  j  d6 ƒ |  j  d7 ƒ |  j  d8 ƒ |  j  d9 ƒ |  j  d: ƒ |  j  d; ƒ |  j  d< ƒ |  j  d= ƒ |  j  d> ƒ d  S(?   Ns   foo(1)s   {1:1}s   {1:1, 2:2, 3:3}s   {1:1, 2:2, 3:3,}s   {1}s	   {1, 2, 3}s
   {1, 2, 3,}s   []s   [1]s	   [1, 2, 3]s
   [1, 2, 3,]s   ()s   (1,)s	   (1, 2, 3)s
   (1, 2, 3,)s   [x**3 for x in range(20)]s"   [x**3 for x in range(20) if x % 3]s+   [x**3 for x in range(20) if x % 2 if x % 3]s=   [x+y for x in range(30) for y in range(20) if x % 2 if y % 3]s   list(x**3 for x in range(20))s&   list(x**3 for x in range(20) if x % 3)s/   list(x**3 for x in range(20) if x % 2 if x % 3)sA   list(x+y for x in range(30) for y in range(20) if x % 2 if y % 3)s   {x**3 for x in range(30)}s"   {x**3 for x in range(30) if x % 3}s+   {x**3 for x in range(30) if x % 2 if x % 3}s=   {x+y for x in range(30) for y in range(20) if x % 2 if y % 3}s2   {x**3: y**2 for x, y in zip(range(30), range(30))}s;   {x**3: y**2 for x, y in zip(range(30), range(30)) if x % 3}sD   {x**3: y**2 for x, y in zip(range(30), range(30)) if x % 3 if y % 3}s=   {x:y for x in range(30) for y in range(20) if x % 2 if y % 3}s
   foo(*args)s   foo(*args, **kw)s	   foo(**kw)s   foo(key=value)s   foo(key=value, *args)s   foo(key=value, *args, **kw)s   foo(key=value, **kw)s   foo(a, b, c, *args)s   foo(a, b, c, *args, **kw)s   foo(a, b, c, **kw)s   foo(a, *args, keyword=23)s	   foo + bars	   foo - bars	   foo * bars	   foo / bars
   foo // bars	   lambda: 0s   lambda x: 0s   lambda *y: 0s   lambda *y, **z: 0s   lambda **z: 0s   lambda x, y: 0s   lambda foo=bar: 0s"   lambda foo=bar, spaz=nifty+spit: 0s   lambda foo=bar, **z: 0s#   lambda foo=bar, blaz=blat+2, **z: 0s'   lambda foo=bar, blaz=blat+2, *y, **z: 0s   lambda x, *y, **z: 0s   lambda x: 5 if x else 2s   (x for x in range(10))s   foo(x for x in range(10))(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_expressions?   s|    c         C   sR   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Nt   prints   print 1s   print 1,s
   print >>fps   print >>fp, 1s   print >>fp, 1,(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt
   test_print€   s    c         C   s   |  j  d ƒ d  S(   Nt   a(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_simple_expressionˆ   s    c         C   s   |  j  d ƒ |  j  d ƒ d  S(   Ns   a = bs   a = b = c = d = e(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_simple_assignmentsŒ   s    c         C   s    |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d	 ƒ |  j  d
 ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   a += bs   a -= bs   a *= bs   a /= bs   a //= bs   a %= bs   a &= bs   a |= bs   a ^= bs   a <<= bs   a >>= bs   a **= b(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt!   test_simple_augmented_assignments   s    c         C   sû   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d	 ƒ |  j  d
 ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   def f(): passs   def f(*args): passs   def f(*args, **kw): passs   def f(**kw): passs   def f(foo=bar): passs   def f(foo=bar, *args): passs!   def f(foo=bar, *args, **kw): passs   def f(foo=bar, **kw): passs   def f(a, b): passs   def f(a, b, *args): passs   def f(a, b, *args, **kw): passs   def f(a, b, **kw): passs   def f(a, b, foo=bar): passs!   def f(a, b, foo=bar, *args): passs'   def f(a, b, foo=bar, *args, **kw): passs    def f(a, b, foo=bar, **kw): passs   @staticmethod
def f(): passs,   @staticmethod
@funcattrs(x, y)
def f(): passs   @funcattrs()
def f(): pass(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_function_defsž   s&    c         C   s8   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   class foo():passs!   @class_decorator
class foo():passs&   @class_decorator(arg)
class foo():passs(   @decorator1
@decorator2
class foo():pass(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_class_defs¹   s    c         C   sá   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d	 ƒ |  j  d
 ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   from sys.path import *s   from sys.path import dirnames   from sys.path import (dirname)s   from sys.path import (dirname,)s*   from sys.path import dirname as my_dirnames,   from sys.path import (dirname as my_dirname)s-   from sys.path import (dirname as my_dirname,)s&   from sys.path import dirname, basenames(   from sys.path import (dirname, basename)s)   from sys.path import (dirname, basename,)s4   from sys.path import dirname as my_dirname, basenames6   from sys.path import (dirname as my_dirname, basename)s7   from sys.path import (dirname as my_dirname, basename,)s5   from sys.path import dirname, basename as my_basenames7   from sys.path import (dirname, basename as my_basename)s8   from sys.path import (dirname, basename as my_basename,)s   from .bogus import x(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_import_from_statementÄ   s.    c         C   sE   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns
   import syss   import sys as systems   import sys, maths   import sys as system, maths   import sys, math as my_math(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_basic_import_statementÝ   s
    c         C   s8   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   from . import names   from .. import names   from .pkg import names   from ..pkg import name(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_relative_importsä   s    c         C   s   |  j  d ƒ d  S(   Ns"   # -*- coding: iso-8859-1 -*-
pass
(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_pep263ê   s    c         C   s   |  j  d ƒ d  S(   Ns   assert alo < ahi and blo < bhi
(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_assertî   s    c         C   s+   |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   with open('x'): pass
s   with open('x') as f: pass
s*   with open('x') as f, open('y') as g: pass
(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt	   test_withñ   s    c         C   sR   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   try: pass
except: pass
s   try: pass
finally: pass
s'   try: pass
except A: pass
finally: pass
s4   try: pass
except A: pass
except: pass
finally: pass
s"   try: pass
except: pass
else: pass
s0   try: pass
except: pass
else: pass
finally: pass
(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_try_stmtö   s    c         C   s8   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(   Ns   try: pass
except: pass
s   try: pass
except A: pass
s   try: pass
except A, e: pass
s   try: pass
except A as e: pass
(   R   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt   test_except_clause   s    c   	         s5  d } t  j | ƒ } ‡  f d †  ‰  d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- g } |  j t ˆ  | j d t d t ƒ ƒ ƒ | ƒ |  j t ˆ  | j ƒ  ƒ ƒ g  | D] \ } } } } | | f ^ qª ƒ |  j t ˆ  | j d t ƒ ƒ ƒ g  | D]! \ } } } } | | | f ^ q÷ ƒ |  j t ˆ  | j d t ƒ ƒ ƒ g  | D]! \ } } } } | | | f ^ qGƒ |  j t ˆ  | j d t d t ƒ ƒ ƒ g  | D] } t | ƒ ^ qƒ |  j t ˆ  t  j | d t d t ƒƒ ƒ | ƒ |  j t ˆ  t  j | d t d t ƒƒ ƒ g  | D] } t | ƒ ^ qƒ d  S(.   Ns   def f(x):
    return x + 1c         3   sf   |  d } |  d } t  | t t f ƒ r] x6 |  d D]" } x ˆ  | ƒ D] } | VqG Wq4 Wn |  Vd  S(   Ni    i   (   t
   isinstancet   tuplet   list(   t   treet	   node_typet   nextt   eltR   (   t   walk(    s!   lib/python2.7/test/test_parser.pyR5     s    

i   t   defi    R
   i   i   t   (i   R   i   i   t   )i   t   :t    i	   i   iÿÿÿÿt   returni   t   +i   t   1i   i   t	   line_infot   col_info(   i   R6   i   i    (   i   R
   i   i   (   i   R7   i   i   (   i   R   i   i   (   i   R8   i   i   (   i   R9   i   i   (   i   R:   i   i	   (   i   R:   i   iÿÿÿÿ(   i   R;   i   i   (   i   R   i   i   (   i   R<   i   i   (   i   R=   i   i   (   i   R:   i   i   (   i   R:   i   iÿÿÿÿ(   i   R:   i   iÿÿÿÿ(   i    R:   i   iÿÿÿÿ(	   R   R   R   R0   R   t   Truet   tolistt   st2tuplet   st2list(	   R	   R   t   stt   expectedR   t   nt   lt   cR   (    (   R5   s!   lib/python2.7/test/test_parser.pyt   test_position  sF    	',!/!/' (   t   __name__t
   __module__R   R   R   R   R   R   R   R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   RI   (    (    (    s!   lib/python2.7/test/test_parser.pyR      s*   							A													
	t   IllegalSyntaxTestCasec           B   sk   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   c         C   s=   y t  j | ƒ Wn t  j k
 r' n X|  j d | ƒ d  S(   Ns"   did not detect invalid tree for %r(   R   R   R   R   (   R	   R1   t   label(    (    s!   lib/python2.7/test/test_parser.pyt   check_bad_treeB  s
    c         C   s   |  j  d d ƒ d  S(   Ni   i   i   s   <junk>(   i   i   i   (   RN   (   R	   (    (    s!   lib/python2.7/test/test_parser.pyt	   test_junkJ  s    c      	   C   sø   d d d d d d f f d f f d d f } |  j  | d
 ƒ d d d d d d f f d f f d d f } |  j  | d ƒ d d d d d d f f d f f d d f } |  j  | d ƒ d d d d d d f f d f f d d  f } |  j  | d ƒ d  S(!   Ni  i  i  i  i  i   i   R:   i    s    too small items in terminal nodeu   passs'   non-string second item in terminal nodet   passt   0s'   non-integer third item in terminal nodes   too many items in terminal node(   i   (   i   R:   (   i   R:   (   i    R:   (   i   u   pass(   i   R:   (   i   R:   (   i    R:   (   i   RP   RQ   i    (   i   R:   (   i   R:   (   i    R:   (   i   RP   i    i    (   i   R:   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_illegal_terminalN  sP    												c      $   C   sL  d d d d d- d. d d/ d0 f d1 d d2 d3 d d d d d d4 d d d d d d d d d  d! d" d# d$ d% d5 f f f f f f f f f f f f f f f f f d d d d d( d6 d d d d d d d d d  d! d" d# d$ d% d7 f f f f f f f f f f f f f f f f f d8 f f d9 f f f f d: d; f f f } |  j  | d, ƒ d  S(<   Ni  i  i  i  i   R6   R
   i  i   R7   i   R8   i   R9   i#  i   R:   i   i	  i
  i  i  R;   i9  i$  i%  i&  i'  i)  i*  i+  i,  i-  i.  i/  i0  i1  i   R=   i  t   yieldi   i    s   def f():
  return 1
  yield 1(   i   R6   (   i   R
   (   i   R7   (   i   R8   (   i   R9   (   i   R:   (   i   R:   (   i   R;   (   i   R=   (   i   RS   (   i   R=   (   i   R:   (   i   R:   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_illegal_yield_1|  sf    B?	c      %   C   s  d d d d d d4 d d5 f d6 d d7 f f f d8 f f d d d d9 d: d d; d< f d= d d> d? d d d d d d@ d d  d! d" d# d$ d% d& d' d( d) d* d+ d, dA f f f f f f f f f f f f f f f f f d d d d d/ dB d d  d! d" d# d$ d% d& d' d( d) d* d+ d, dC f f f f f f f f f f f f f f f f f dD f f dE f f f f dF dG f f f } |  j  | d3 ƒ d  S(H   Ni  i  i	  i
  i  i   t   fromi  t
   __future__t   importi  t
   generatorsi   R:   i  i  R6   R
   i  i   R7   i   R8   i   R9   i#  i   i  i  R;   i9  i$  i%  i&  i'  i)  i*  i+  i,  i-  i.  i/  i0  i1  i   R=   i  RS   i   i    s   def f():
  return 1
  yield 1(   i   RU   (   i   RV   (   i   RW   (   i   RX   (   i   R:   (   i   R6   (   i   R
   (   i   R7   (   i   R8   (   i   R9   (   i   R:   (   i   R:   (   i   R;   (   i   R=   (   i   RS   (   i   R=   (   i   R:   (   i   R:   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_illegal_yield_2³  sx    		B?	c         C   s•   d d d d d d d d
 d d d d d d d d d d d d d  f f f f f f f f f f f f f d! f f d" f f d# f } |  j  | d ƒ d  S($   Ni  i  i	  i
  i  i   R   i#   s   >>i"  i#  i$  i%  i'  i(  i)  i*  i+  i,  i-  i.  i/  t   fpi   t   ,i   R:   i    s   print >>fp,(   i   R   (   i#   s   >>(   i   RZ   (   i   R[   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_print_chevron_commaó  s&    <			c         C   sÑ   d d d d d d d d d	 d
 d d d d d d f f f f f f f f f f f f f d d d d d d d d d	 d
 d d d d d d f f f f f f f f f f f f f f d d f } |  j  | d ƒ d  S(   Ni  i7  i"  i#  i$  i%  i'  i(  i)  i*  i+  i,  i-  i.  i/  i   R    i   R[   RH   i   R:   i    s   a,,c(   i   R    (   i   R[   (   i   R[   (   i   RH   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_a_comma_comma_c
  s.    <?	c         C   sò   d d d d d d d d d	 d
 d d d d d d d d d d f f f f f f f f f f f f f f d d f d d d d	 d
 d d d d d d d d d d  f f f f f f f f f f f f f f f f d! f f d" f } |  j  | d ƒ d  S(#   Ni  i  i	  i
  i  i8  i#  i$  i%  i&  i(  i)  i*  i+  i,  i-  i.  i/  i0  i   R    i  i%   s   $=t   bi   R:   i    s   a $= b(   i   R    (   i%   s   $=(   i   R^   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_illegal_operator%  s:    <	B		c         C   sA   d d d d d d f f d f f d d f } |  j  | d ƒ d  S(   Ni  i  i	  i
  i  i   t   fooi   R:   i    s   malformed global ast(   i   R`   (   i   R:   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_malformed_globalF  s    	c         C   sY   d d d d d d d d d
 d d f f f f f d f f d d f } |  j  | d ƒ d  S(   Ni  i  i  i  i  i  i   RU   RW   i  i  t   fredi   R:   i    s   from import a(   i   RU   (   i   RW   (   i   Rb   (   i   R:   (   i   R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_missing_import_sourceQ  s    		c         C   sK   d d d f f } |  j  | d ƒ d d d	 f d f } |  j  | d ƒ d  S(
   NiS  i  i    R:   s   missed encodingu
   iso-8859-1s   non-string encoding(   i    R:   (   i    R:   (   RN   (   R	   R1   (    (    s!   lib/python2.7/test/test_parser.pyt   test_illegal_encoding_  s    		(   RJ   RK   RN   RO   RR   RT   RY   R\   R]   R_   Ra   Rc   Rd   (    (    (    s!   lib/python2.7/test/test_parser.pyRL   @  s   			.	7	@			!		t   CompileTestCasec           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s8   t  j d ƒ } t  j | ƒ } |  j t | ƒ d ƒ d  S(   Ns   2 + 3i   (   R   R   t	   compilestR   t   eval(   R	   RD   R   (    (    s!   lib/python2.7/test/test_parser.pyt   test_compile_exprp  s    c         B   sD   e  j d ƒ } e  j | ƒ } i  } | | U|  j | d d ƒ d  S(   Ns   x = 2; y = x + 3t   yi   (   R   R   Rf   R   (   R	   RD   R   t   globs(    (    s!   lib/python2.7/test/test_parser.pyt   test_compile_suiteu  s
    c         C   s)   t  j d ƒ } |  j t t  j | ƒ d  S(   Ns	   1 = 3 + 4(   R   R   t   assertRaisest   SyntaxErrorRf   (   R	   RD   (    (    s!   lib/python2.7/test/test_parser.pyt   test_compile_error|  s    c         C   sN   t  j d ƒ } |  j t t  j | ƒ t  j d ƒ } |  j t t  j | ƒ d  S(   Ns   a = u"\U12345678"s
   a = u"\u1"(   R   R   Rl   Rm   Rf   (   R	   RD   (    (    s!   lib/python2.7/test/test_parser.pyt   test_compile_badunicode€  s    c         C   s]   t  j d ƒ } t  j | ƒ } |  j t | ƒ d ƒ t  j | ƒ } |  j t | ƒ d ƒ d  S(   Ns   -3iýÿÿÿ(   R   R   Rf   R   Rg   (   R	   RD   t   code1t   code2(    (    s!   lib/python2.7/test/test_parser.pyt   test_issue_9011†  s
    (   RJ   RK   Rh   Rk   Rn   Ro   Rr   (    (    (    s!   lib/python2.7/test/test_parser.pyRe   l  s
   				t   ParserStackLimitTestCasec           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   si   try to push the parser to/over its limits.
    see http://bugs.python.org/issue1881 for a discussion
    c         C   s   d | d | S(   Nt   [t   ](    (   R	   t   level(    (    s!   lib/python2.7/test/test_parser.pyt   _nested_expression•  s    c         C   s,   |  j  d ƒ } t j | ƒ } | j ƒ  d  S(   Nic   (   Rw   R   R   R   (   R	   t   eRD   (    (    s!   lib/python2.7/test/test_parser.pyt   test_deeply_nested_list˜  s    c         C   sK   |  j  d ƒ } t d | ƒ \ } } } |  j d | ƒ |  j d | ƒ d  S(   Nid   s   -cs   s_push: parser stack overflowt   MemoryError(   Rw   R   t   assertIn(   R	   Rx   t   rct   outt   err(    (    s!   lib/python2.7/test/test_parser.pyt   test_trigger_memory_error  s    (   RJ   RK   t   __doc__Rw   Ry   R   (    (    (    s!   lib/python2.7/test/test_parser.pyRs   ‘  s   		t   STObjectTestCasec           B   s2   e  Z d  Z d „  Z e j Z e j d „  ƒ Z RS(   s(   Test operations on ST objects themselvesc         C   sê   t  j d ƒ t  j d ƒ t  j d ƒ g } x¹ | D]± } t j | ƒ } |  j | j ƒ  | j ƒ  ƒ t j | ƒ } |  j | j ƒ  | j ƒ  ƒ xR t t j	 d ƒ D]= } t j
 t j | | ƒ ƒ } |  j | j ƒ  | j ƒ  ƒ q¡ Wq1 Wd  S(   Ns   2 + 3s   x = 2; y = x + 3s   list(x**3 for x in range(20))i   (   R   R   R   t   copyR   R   t   deepcopyt   ranget   picklet   HIGHEST_PROTOCOLt   loadst   dumps(   R	   t   stsRD   t   st_copyt   proto(    (    s!   lib/python2.7/test/test_parser.pyt   test_copy_pickle¨  s    c            sÖ   d „  ‰  t  j d ƒ ‰ t j d ƒ ‰ ‡  ‡ ‡ f d †  ‰ ‡ ‡ ‡ ‡ f d †  } | t j d ƒ ƒ | t j d ƒ ƒ | t j d ƒ ƒ | t j d	 ƒ ƒ | t j d
 ƒ ƒ | t j d d d d ƒ ƒ d  S(   Nc         S   s:   |  d k r |  S|  d k r( |  d d @Sd |  d j  ƒ  >S(   Ni   i€   i   iüÿÿÿ(   t
   bit_length(   RF   (    (    s!   lib/python2.7/test/test_parser.pyt
   XXXROUNDUP»  s
    t   Piit   hP3iP0hc            sÁ   |  d  k r d Sd } t |  ƒ d k o8 t |  d t ƒ } | r\ | t |  d ƒ d 7} n  | ro |  d d !n |  d } | r½ | ˆ  t | ƒ ƒ ˆ 7} x! | D] } | ˆ | ƒ 7} q  Wn  | S(   Ni    i   iÿÿÿÿ(   t   Nonet   lenR.   t   str(   t   nodet   rest   hasstrt   childrent   child(   RŽ   t   nodesizet   sizeofchildren(    s!   lib/python2.7/test/test_parser.pyRš   Ä  s    %c            s(   ˆ j  |  ˆ  ˆ ˆ |  j ƒ  ƒ ƒ d  S(   N(   t   check_sizeofR   (   RD   (   t   basesizeR™   R	   Rš   (    s!   lib/python2.7/test/test_parser.pyt   check_st_sizeofÒ  s    s   2 + 3s	   2 + 3 + 4s	   x = 2 + 3R:   s   # -*- coding: utf-8 -*-Rt   s   2,iè  Ru   (   t   supportt   calcobjsizet   structt   calcsizeR   R   R   (   R	   R   (    (   RŽ   Rœ   R™   R	   Rš   s!   lib/python2.7/test/test_parser.pyt   test_sizeof¹  s    	(   RJ   RK   R€   RŒ   Rž   R›   t   cpython_onlyR¢   (    (    (    s!   lib/python2.7/test/test_parser.pyR   ¥  s   		c           C   s   t  j t t t t t ƒ d  S(   N(   Rž   t   run_unittestR   RL   Re   Rs   R   (    (    (    s!   lib/python2.7/test/test_parser.pyt	   test_mainà  s    t   __main__(   R‚   R   R…   t   unittestt   sysR    t   testR    Rž   t   test.script_helperR   t   TestCaseR   RL   Re   Rs   R   R¥   RJ   (    (    (    s!   lib/python2.7/test/test_parser.pyt   <module>   s"   ÿ 1ÿ -%;	
