;
Ģā"Ic            	   @   s½   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z Gd   d e j  Z Gd   d e j  Z Gd   d e j  Z	 Gd	   d
 e j  Z
 d   Z e d k o e   n d S(   i    N(   u   supportc             B   s   |  Ee  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 S(   c             C   s   | |  } | j    } y t j |  } WnA t j k
 o2 } z |  j d | | f  WYd  d  } ~ Xn X|  j | | j    d  d  S(   Nu   could not roundtrip %r: %su!   could not re-generate syntax tree(   u   totupleu   parseru   sequence2stu   ParserErroru   failu   assertEquals(   u   selfu   fu   su   st1u   tu   st2u   why(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu	   roundtrip   s    +c             C   s   |  j  t j |  d  S(   N(   u	   roundtripu   parseru   expr(   u   selfu   s(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu
   check_expr   s    c             C   sO   t  j d  } | j   } i  } t | i  |  |  j t | d t   d  S(   Nu/   from __future__ import unicode_literals; x = ''u   x(   u   parseru   suiteu   compileu   execu
   assertTrueu
   isinstanceu   str(   u   selfu   suiteu   codeu   scope(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_flags_passed   s
    c             C   s   |  j  t j |  d  S(   N(   u	   roundtripu   parseru   suite(   u   selfu   s(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   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(   Nu   def f(): yield 1u   def f(): yieldu   def f(): x += yieldu   def f(): x = yield 1u   def f(): x = y = yield 1u   def f(): x = yieldu   def f(): x = y = yieldu   def f(): 1 + (yield)*2u   def f(): (yield 1)*2u   def f(): return; yield 1u   def f(): yield 1; returnu1   def f():
    for x in range(30):
        yield x
u)   def f():
    if (yield):
        yield x
(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   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&  d  S('   Nu   foo(1)u	   [1, 2, 3]u   [x**3 for x in range(20)]u"   [x**3 for x in range(20) if x % 3]u+   [x**3 for x in range(20) if x % 2 if x % 3]u   list(x**3 for x in range(20))u&   list(x**3 for x in range(20) if x % 3)u/   list(x**3 for x in range(20) if x % 2 if x % 3)u
   foo(*args)u   foo(*args, **kw)u	   foo(**kw)u   foo(key=value)u   foo(key=value, *args)u   foo(key=value, *args, **kw)u   foo(key=value, **kw)u   foo(a, b, c, *args)u   foo(a, b, c, *args, **kw)u   foo(a, b, c, **kw)u   foo(a, *args, keyword=23)u	   foo + baru	   foo - baru	   foo * baru	   foo / baru
   foo // baru	   lambda: 0u   lambda x: 0u   lambda *y: 0u   lambda *y, **z: 0u   lambda **z: 0u   lambda x, y: 0u   lambda foo=bar: 0u"   lambda foo=bar, spaz=nifty+spit: 0u   lambda foo=bar, **z: 0u#   lambda foo=bar, blaz=blat+2, **z: 0u'   lambda foo=bar, blaz=blat+2, *y, **z: 0u   lambda x, *y, **z: 0u   (x for x in range(10))u   foo(x for x in range(10))(   u
   check_expr(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_expressions<   sL    c             C   s   |  j  d  d  S(   Nu   a(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_simple_expressiond   s    c             C   s   |  j  d  |  j  d  d  S(   Nu   a = bu   a = b = c = d = e(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_simple_assignmentsh   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(   Nu   a += bu   a -= bu   a *= bu   a /= bu   a //= bu   a %= bu   a &= bu   a |= bu   a ^= bu   a <<= bu   a >>= bu   a **= b(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu!   test_simple_augmented_assignmentsl   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(   Nu   def f(): passu   def f(*args): passu   def f(*args, **kw): passu   def f(**kw): passu   def f(foo=bar): passu   def f(foo=bar, *args): passu!   def f(foo=bar, *args, **kw): passu   def f(foo=bar, **kw): passu   def f(a, b): passu   def f(a, b, *args): passu   def f(a, b, *args, **kw): passu   def f(a, b, **kw): passu   def f(a, b, foo=bar): passu!   def f(a, b, foo=bar, *args): passu'   def f(a, b, foo=bar, *args, **kw): passu    def f(a, b, foo=bar, **kw): passu   @staticmethod
def f(): passu,   @staticmethod
@funcattrs(x, y)
def f(): passu   @funcattrs()
def f(): pass(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_function_defsz   s&    c             C   s   |  j  d  |  j  d  d  S(   Nu   class foo():passu   class foo(object):pass(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   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(   Nu   from sys.path import *u   from sys.path import dirnameu   from sys.path import (dirname)u   from sys.path import (dirname,)u*   from sys.path import dirname as my_dirnameu,   from sys.path import (dirname as my_dirname)u-   from sys.path import (dirname as my_dirname,)u&   from sys.path import dirname, basenameu(   from sys.path import (dirname, basename)u)   from sys.path import (dirname, basename,)u4   from sys.path import dirname as my_dirname, basenameu6   from sys.path import (dirname as my_dirname, basename)u7   from sys.path import (dirname as my_dirname, basename,)u5   from sys.path import dirname, basename as my_basenameu7   from sys.path import (dirname, basename as my_basename)u8   from sys.path import (dirname, basename as my_basename,)u   from .bogus import x(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_import_from_statement   s.    c             C   sE   |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  d  S(   Nu
   import sysu   import sys as systemu   import sys, mathu   import sys as system, mathu   import sys, math as my_math(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_basic_import_statement²   s
    c             C   s   |  j  d  d  S(   Nu"   # -*- coding: iso-8859-1 -*-
pass
(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_pep263¹   s    c             C   s   |  j  d  d  S(   Nu   assert alo < ahi and blo < bhi
(   u   check_suite(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_assert½   s    c                s   d } t  j |  } | j d d d d  }   f d     t   |   } |  j d d d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- g |  d  S(.   Nu   def f(x):
    return x + 1
u	   line_infoi   u   col_infoc             3   sh   |  d } |  d } t  | t  o; x= |  d d   D]" } x   |  D] } | VqH Wq5 Wn |  Vd  S(   Ni    i   (   u
   isinstanceu   tuple(   u   treeu	   node_typeu   nextu   eltu   x(   u   walk(    u-   /mit/python/lib/python3.0/test/test_parser.pyu   walkĒ   s    

  u   defi    u   fi   i   u   (i   u   xi   i   u   )i   u   :u    i	   i   i’’’’u   returni   u   +i   u   1i   i   (   i   u   defi   i    (   i   u   fi   i   (   i   u   (i   i   (   i   u   xi   i   (   i   u   )i   i   (   i   u   :i   i   (   i   u    i   i	   (   i   u    i   i’’’’(   i   u   returni   i   (   i   u   xi   i   (   i   u   +i   i   (   i   u   1i   i   (   i   u    i   i   (   i   u    i   i’’’’(   i   u    i   i’’’’(   i    u    i   i’’’’(   u   parseru   suiteu   totupleu   listu   assertEqual(   u   selfu   codeu   st1u   st2u	   terminals(    (   u   walku-   /mit/python/lib/python3.0/test/test_parser.pyu   test_positionĄ   s.    
N(   u   __name__u
   __module__u	   roundtripu
   check_expru   test_flags_passedu   check_suiteu   test_yield_statementu   test_expressionsu   test_simple_expressionu   test_simple_assignmentsu!   test_simple_augmented_assignmentsu   test_function_defsu   test_class_defsu   test_import_from_statementu   test_basic_import_statementu   test_pep263u   test_assertu   test_position(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   RoundtripLegalSyntaxTestCase   s    
							(									u   RoundtripLegalSyntaxTestCasec             B   sM   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d S(   c          	   C   s@   y t  j |  Wn t  j k
 o Yn X|  j d |  d  S(   Nu"   did not detect invalid tree for %r(   u   parseru   sequence2stu   ParserErroru   fail(   u   selfu   treeu   label(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   check_bad_treeķ   s
    c             C   s   |  j  d d  d  S(   Ni   i   i   u   <junk>(   i   i   i   (   u   check_bad_tree(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu	   test_junkõ   s    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   u   defu   fi  i   u   (i   u   )i   u   :i#  i   u    i   i	  i
  i  i  u   returni9  i$  i%  i&  i'  i)  i*  i+  i,  i-  i.  i/  i0  i1  i   u   1i  u   yieldi   i    u   def f():
  return 1
  yield 1(   i   u   def(   i   u   f(   i   u   ((   i   u   )(   i   u   :(   i   u    (   i   u    (   i   u   return(   i   u   1(   i   u   yield(   i   u   1(   i   u    (   i   u    (   i   u    (   i    u    (   u   check_bad_tree(   u   selfu   tree(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   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   u   fromi  u
   __future__u   importi  u
   generatorsi   u    i  i  u   defu   fi  i   u   (i   u   )i   u   :i#  i   i  i  u   returni9  i$  i%  i&  i'  i)  i*  i+  i,  i-  i.  i/  i0  i1  i   u   1i  u   yieldi   i    u   def f():
  return 1
  yield 1(   i   u   from(   i   u
   __future__(   i   u   import(   i   u
   generators(   i   u    (   i   u   def(   i   u   f(   i   u   ((   i   u   )(   i   u   :(   i   u    (   i   u    (   i   u   return(   i   u   1(   i   u   yield(   i   u   1(   i   u    (   i   u    (   i   u    (   i    u    (   u   check_bad_tree(   u   selfu   tree(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_illegal_yield_20  sx    		B?	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   u   ai   u   ,u   ci   u    i    u   a,,c(   i   u   a(   i   u   ,(   i   u   ,(   i   u   c(   i   u    (   i    u    (   u   check_bad_tree(   u   selfu   tree(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_a_comma_comma_cp  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   u   ai  i%   u   $=u   bi   u    i    u   a $= b(   i   u   a(   i%   u   $=(   i   u   b(   i   u    (   i    u    (   u   check_bad_tree(   u   selfu   tree(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   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   u   fooi   u    i    u   malformed global ast(   i   u   foo(   i   u    (   i   u    (   i    u    (   u   check_bad_tree(   u   selfu   tree(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_malformed_global¬  s    	N(	   u   __name__u
   __module__u   check_bad_treeu	   test_junku   test_illegal_yield_1u   test_illegal_yield_2u   test_a_comma_comma_cu   test_illegal_operatoru   test_malformed_global(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   IllegalSyntaxTestCaseė   s   
			7	@		!u   IllegalSyntaxTestCasec             B   s2   |  Ee  Z d    Z d   Z d   Z d   Z d S(   c             C   s8   t  j d  } t  j |  } |  j t |  d  d  S(   Nu   2 + 3i   (   u   parseru   expru	   compilestu   assertEqualsu   eval(   u   selfu   stu   code(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_compile_expr¼  s    c             C   sI   t  j d  } t  j |  } i  } t | |  |  j | d d  d  S(   Nu   x = 2; y = x + 3u   yi   (   u   parseru   suiteu	   compilestu   execu   assertEquals(   u   selfu   stu   codeu   globs(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_compile_suiteĮ  s
    c             C   s)   t  j d  } |  j t t  j |  d  S(   Nu	   1 = 3 + 4(   u   parseru   suiteu   assertRaisesu   SyntaxErroru	   compilest(   u   selfu   st(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_compile_errorČ  s    c             C   sN   t  j d  } |  j t t  j |  t  j d  } |  j t t  j |  d  S(   Nu   a = "\U12345678"u	   a = "\u1"(   u   parseru   suiteu   assertRaisesu   SyntaxErroru	   compilest(   u   selfu   st(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_compile_badunicodeĢ  s    N(   u   __name__u
   __module__u   test_compile_expru   test_compile_suiteu   test_compile_erroru   test_compile_badunicode(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   CompileTestCaseø  s   
			u   CompileTestCasec             B   s/   |  Ee  Z d  Z d   Z d   Z d   Z d S(   uj   try to push the parser to/over it's limits.
    see http://bugs.python.org/issue1881 for a discussion
    c             C   s   d | d | S(   Nu   [u   ](    (   u   selfu   level(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   _nested_expressionÖ  s    c             C   s,   |  j  d  } t j |  } | j   d  S(   Ni]   (   u   _nested_expressionu   parseru   expru   compile(   u   selfu   eu   st(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_deeply_nested_listŁ  s    c             C   s<   |  j  d  } t d d t j |  j t t j |  d  S(   Nid   u6   Expecting 's_push: parser stack overflow' in next lineu   file(   u   _nested_expressionu   printu   sysu   stderru   assertRaisesu   MemoryErroru   parseru   expr(   u   selfu   e(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   test_trigger_memory_errorß  s    	
N(   u   __name__u
   __module__u   __doc__u   _nested_expressionu   test_deeply_nested_listu   test_trigger_memory_error(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   ParserStackLimitTestCaseŅ  s   
		u   ParserStackLimitTestCasec               C   s   t  j t t t t  d  S(   N(   u   supportu   run_unittestu   RoundtripLegalSyntaxTestCaseu   IllegalSyntaxTestCaseu   CompileTestCaseu   ParserStackLimitTestCase(    (    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu	   test_mainå  s
    u   __main__(   u   parseru   osu   unittestu   sysu   testu   supportu   TestCaseu   RoundtripLegalSyntaxTestCaseu   IllegalSyntaxTestCaseu   CompileTestCaseu   ParserStackLimitTestCaseu	   test_mainu   __name__(    (    (    u-   /mit/python/lib/python3.0/test/test_parser.pyu   <module>   s   ŽĶ		