ó {G_Tc@sðddlZddlZddlZddlZddlmZddlmZdej fd„ƒYZ dej fd„ƒYZ dej fd „ƒYZ d ej fd „ƒYZ d ej fd „ƒYZd„ZedkrìeƒndS(iÿÿÿÿN(t test_support(tassert_python_failuretRoundtripLegalSyntaxTestCasecBsÅeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsx||ƒ}|jƒ}ytj|ƒ}Wn-tjk rZ}|jd||fƒnX|j||jƒdƒdS(Nscould not roundtrip %r: %ss!could not re-generate syntax tree(ttotupletparsert sequence2stt ParserErrortfailt assertEqual(tselftftstst1tttst2twhy((s,/usr/local/lib/python2.7/test/test_parser.pyt roundtrips  cCs|jtj|ƒdS(N(RRtexpr(R R ((s,/usr/local/lib/python2.7/test/test_parser.pyt check_exprscBsAejdƒ}|jƒ}i}||U|j|deƒdS(Ns/from __future__ import unicode_literals; x = ''tx(RtsuitetcompiletassertIsInstancetunicode(R Rtcodetscope((s,/usr/local/lib/python2.7/test/test_parser.pyttest_flags_passeds  cCs|jtj|ƒdS(N(RRR(R R ((s,/usr/local/lib/python2.7/test/test_parser.pyt check_suite'scCs­|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒdS(Nsdef f(): yield 1sdef f(): yieldsdef f(): x += yieldsdef f(): x = yield 1sdef f(): x = y = yield 1sdef f(): x = yieldsdef f(): x = y = yieldsdef f(): 1 + (yield)*2sdef f(): (yield 1)*2sdef f(): return; yield 1sdef f(): yield 1; returns1def f(): for x in range(30): yield x s)def f(): if (yield): yield x (R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_yield_statement*s            cCs*|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒ|jd!ƒ|jd"ƒ|jd#ƒ|jd$ƒ|jd%ƒ|jd&ƒ|jd'ƒ|jd(ƒ|jd)ƒ|jd*ƒ|jd+ƒ|jd,ƒ|jd-ƒ|jd.ƒ|jd/ƒ|jd0ƒ|jd1ƒ|jd2ƒ|jd3ƒ|jd4ƒ|jd5ƒ|jd6ƒ|jd7ƒ|jd8ƒ|jd9ƒ|jd:ƒ|jd;ƒ|jd<ƒ|jd=ƒ|jd>ƒdS(?Nsfoo(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]slist(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)sAlist(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)sfoo(*args, **kw)s foo(**kw)sfoo(key=value)sfoo(key=value, *args)sfoo(key=value, *args, **kw)sfoo(key=value, **kw)sfoo(a, b, c, *args)sfoo(a, b, c, *args, **kw)sfoo(a, b, c, **kw)sfoo(a, *args, keyword=23)s foo + bars foo - bars foo * bars foo / bars foo // bars lambda: 0s lambda x: 0s lambda *y: 0slambda *y, **z: 0s lambda **z: 0slambda x, y: 0slambda foo=bar: 0s"lambda foo=bar, spaz=nifty+spit: 0slambda foo=bar, **z: 0s#lambda foo=bar, blaz=blat+2, **z: 0s'lambda foo=bar, blaz=blat+2, *y, **z: 0slambda x, *y, **z: 0slambda x: 5 if x else 2s(x for x in range(10))sfoo(x for x in range(10))(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_expressions=s|                                                             cCsR|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒdS(Ntprintsprint 1sprint 1,s print >>fps print >>fp, 1sprint >>fp, 1,(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyt test_print~s      cCs|jdƒdS(Nta(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_simple_expression†scCs|jdƒ|jdƒdS(Nsa = bsa = b = c = d = e(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_simple_assignmentsŠs cCs |jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒdS( Nsa += bsa -= bsa *= bsa /= bsa //= bsa %= bsa &= bsa |= bsa ^= bsa <<= bsa >>= bsa **= b(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyt!test_simple_augmented_assignmentsŽs           cCsû|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒdS(Ns def f(): passsdef f(*args): passsdef f(*args, **kw): passsdef f(**kw): passsdef f(foo=bar): passsdef f(foo=bar, *args): passs!def f(foo=bar, *args, **kw): passsdef f(foo=bar, **kw): passsdef f(a, b): passsdef f(a, b, *args): passsdef f(a, b, *args, **kw): passsdef f(a, b, **kw): passsdef 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,/usr/local/lib/python2.7/test/test_parser.pyttest_function_defsœs&                  cCs8|jdƒ|jdƒ|jdƒ|jdƒdS(Nsclass foo():passs!@class_decorator class foo():passs&@class_decorator(arg) class foo():passs(@decorator1 @decorator2 class foo():pass(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_class_defs·s   cCsá|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jd ƒ|jdƒ|jdƒ|jdƒ|jdƒdS(Nsfrom sys.path import *sfrom sys.path import dirnamesfrom sys.path import (dirname)sfrom 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,)s4from sys.path import dirname as my_dirname, basenames6from sys.path import (dirname as my_dirname, basename)s7from sys.path import (dirname as my_dirname, basename,)s5from sys.path import dirname, basename as my_basenames7from sys.path import (dirname, basename as my_basename)s8from sys.path import (dirname, basename as my_basename,)sfrom .bogus import x(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_import_from_statementÂs.          cCsE|jdƒ|jdƒ|jdƒ|jdƒ|jdƒdS(Ns import syssimport sys as systemsimport sys, mathsimport sys as system, mathsimport sys, math as my_math(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_basic_import_statementÛs     cCs8|jdƒ|jdƒ|jdƒ|jdƒdS(Nsfrom . import namesfrom .. import namesfrom .pkg import namesfrom ..pkg import name(R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_relative_importsâs   cCs|jdƒdS(Ns"# -*- coding: iso-8859-1 -*- pass (R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyt test_pep263èscCs|jdƒdS(Nsassert alo < ahi and blo < bhi (R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyt test_assertìscCs+|jdƒ|jdƒ|jdƒdS(Nswith open('x'): pass swith open('x') as f: pass s*with open('x') as f, open('y') as g: pass (R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyt test_withïs  cCsR|jdƒ|jdƒ|jdƒ|jdƒ|jdƒ|jdƒdS(Nstry: pass except: pass stry: pass finally: pass s'try: pass except A: pass finally: pass s4try: pass except A: pass except: pass finally: pass s"try: pass except: pass else: pass s0try: pass except: pass else: pass finally: pass (R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyt test_try_stmtôs      cCs8|jdƒ|jdƒ|jdƒ|jdƒdS(Nstry: pass except: pass stry: pass except A: pass stry: pass except A, e: pass stry: pass except A as e: pass (R(R ((s,/usr/local/lib/python2.7/test/test_parser.pyttest_except_clauseþs   cs’d}tj|ƒ}|jddddƒ}‡fd†‰tˆ|ƒƒ}|jddd d!d"d#d$d%d&d'd(d)d*d+d,d-g|ƒdS(.Nsdef f(x): return x + 1t line_infoitcol_infoc3s`|d}|d}t|tƒrWx6|dD]"}xˆ|ƒD] }|VqAWq.Wn|VdS(Nii(t isinstancettuple(ttreet node_typetnextteltR(twalk(s,/usr/local/lib/python2.7/test/test_parser.pyR6 s  tdefiR iit(iRiit)i t:ti iiÿÿÿÿtreturnit+i t1ii(iR7ii(iR ii(iR8ii(iRii(iR9ii(i R:ii(iR;ii (iR;iiÿÿÿÿ(iR<ii(iRii (iR=ii (iR>ii(iR;ii(iR;iiÿÿÿÿ(iR;iiÿÿÿÿ(iR;iiÿÿÿÿ(RRRtlistR(R RR Rt terminals((R6s,/usr/local/lib/python2.7/test/test_parser.pyt test_positions. (t__name__t __module__RRRRRRRR!R"R#R$R%R&R'R(R)R*R+R,R-RA(((s,/usr/local/lib/python2.7/test/test_parser.pyRs*    A            tIllegalSyntaxTestCasecBsYeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z RS( cCs=ytj|ƒWntjk r'nX|jd|ƒdS(Ns"did not detect invalid tree for %r(RRRR(R R2tlabel((s,/usr/local/lib/python2.7/test/test_parser.pytcheck_bad_tree1s cCs|jddƒdS(Niiis(iii(RF(R ((s,/usr/local/lib/python2.7/test/test_parser.pyt test_junk9sc$CsLddddd-d.dd/d0fd1dd2d3dddddd4ddddddddd d!d"d#d$d%d5fffffffffffffffffddddd(d6ddddddddd d!d"d#d$d%d7fffffffffffffffffd8ffd9ffffd:d;fff}|j|d,ƒdS(<NiiiiiR7R iiR8iR9i R:i#iR;ii i iiR<i9i$i%i&i'i)i*i+i,i-i.i/i0i1iR>ityieldiisdef f(): return 1 yield 1(isdef(iR (iR8(iR9(i R:(iR;(iR;(isreturn(iR>(iRH(iR>(iR;(iR;(iR;(iR;(RF(R R2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_illegal_yield_1=sf B? c%Csdddddd4dd5fd6d d7fffd8ffdddd9d:dd;d<fd=dd>d?dddddd@dd d!d"d#d$d%d&d'd(d)d*d+d,dAfffffffffffffffffddddd/dBdd d!d"d#d$d%d&d'd(d)d*d+d,dCfffffffffffffffffdDffdEffffdFdGfff}|j|d3ƒdS(HNiii i iitfromit __future__timportit generatorsiR;iiR7R iiR8iR9i R:i#iiiR<i9i$i%i&i'i)i*i+i,i-i.i/i0i1iR>iRHiisdef f(): return 1 yield 1(iRJ(iRK(iRL(iRM(iR;(isdef(iR (iR8(iR9(i R:(iR;(iR;(isreturn(iR>(isyield(iR>(iR;(iR;(iR;(iR;(RF(R R2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_illegal_yield_2tsx   B? cCs•dddddddd d d d dddddddddd fffffffffffffd!ffd"ffd#f}|j|dƒdS($Niii i i iRi#s>>i"i#i$i%i'i(i)i*i+i,i-i.i/tfpi t,iR;is print >>fp,(isprint(i#s>>(isfp(i RP(iR;(iR;(RF(R R2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_print_chevron_comma´s&<   cCsÑddddddddd d d d d dddfffffffffffffddddddddd d d d d dddffffffffffffffddf}|j|dƒdS(Nii7i"i#i$i%i'i(i)i*i+i,i-i.i/iR i RPtciR;isa,,c(iR (i RP(i RP(iRR(iR;(iR;(RF(R R2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_a_comma_comma_cËs.<? cCsòddddddddd d d d d dddddddffffffffffffffddfdddd d d d d ddddddd ffffffffffffffffd!ffd"f}|j|dƒdS(#Niii i i i8i#i$i%i&i(i)i*i+i,i-i.i/i0iR i i%s$=tbiR;isa $= b(iR (i%s$=(iRT(iR;(iR;(RF(R R2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_illegal_operatoræs:< B  cCsAdddddd ffd ffddf}|j|d ƒdS(Niii i iitfooiR;ismalformed global ast(iRV(iR;(iR;(iR;(RF(R R2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_malformed_globals c CsYddddddddd d dfffffdffddf}|j|dƒdS(Nii i i iiiRJRLiitfrediR;is from import a(isfrom(isimport(iRX(iR;(iR;(iR;(RF(R R2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_missing_import_sources   ( RBRCRFRGRIRNRQRSRURWRY(((s,/usr/local/lib/python2.7/test/test_parser.pyRD/s   7 @   ! tCompileTestCasecBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs8tjdƒ}tj|ƒ}|jt|ƒdƒdS(Ns2 + 3i(RRt compilestRteval(R tstR((s,/usr/local/lib/python2.7/test/test_parser.pyttest_compile_expr%scBsDejdƒ}ej|ƒ}i}||U|j|ddƒdS(Nsx = 2; y = x + 3tyi(RRR[R(R R]Rtglobs((s,/usr/local/lib/python2.7/test/test_parser.pyttest_compile_suite*s cCs)tjdƒ}|jttj|ƒdS(Ns 1 = 3 + 4(RRt assertRaisest SyntaxErrorR[(R R]((s,/usr/local/lib/python2.7/test/test_parser.pyttest_compile_error1scCsNtjdƒ}|jttj|ƒtjdƒ}|jttj|ƒdS(Nsa = u"\U12345678"s a = u"\u1"(RRRbRcR[(R R]((s,/usr/local/lib/python2.7/test/test_parser.pyttest_compile_badunicode5scCs]tjdƒ}tj|ƒ}|jt|ƒdƒtj|ƒ}|jt|ƒdƒdS(Ns-3iýÿÿÿ(RRR[RR\(R R]tcode1tcode2((s,/usr/local/lib/python2.7/test/test_parser.pyttest_issue_9011;s (RBRCR^RaRdReRh(((s,/usr/local/lib/python2.7/test/test_parser.pyRZ!s     tParserStackLimitTestCasecBs)eZdZd„Zd„Zd„ZRS(sitry to push the parser to/over its limits. see http://bugs.python.org/issue1881 for a discussion cCsd|d|S(Nt[t]((R tlevel((s,/usr/local/lib/python2.7/test/test_parser.pyt_nested_expressionJscCs,|jdƒ}tj|ƒ}|jƒdS(Nic(RmRRR(R teR]((s,/usr/local/lib/python2.7/test/test_parser.pyttest_deeply_nested_listMscCsK|jdƒ}td|ƒ\}}}|jd|ƒ|jd|ƒdS(Nids-css_push: parser stack overflowt MemoryError(RmRtassertIn(R Rntrctoutterr((s,/usr/local/lib/python2.7/test/test_parser.pyttest_trigger_memory_errorRs(RBRCt__doc__RmRoRu(((s,/usr/local/lib/python2.7/test/test_parser.pyRiFs  tSTObjectTestCasecBs)eZdZejZejd„ƒZRS(s(Test operations on ST objects themselvescsÖd„‰tjdƒ‰tjdƒ‰‡‡‡fd†‰‡‡‡‡fd†}|tjdƒƒ|tjdƒƒ|tjdƒƒ|tjd ƒƒ|tjd ƒƒ|tjd d d dƒƒdS(NcSs:|dkr|S|dkr(|dd@Sd|djƒ>S(Nii€iiüÿÿÿ(t bit_length(tn((s,/usr/local/lib/python2.7/test/test_parser.pyt XXXROUNDUPas    tPiithP3iP0hcsÁ|dkrdSd}t|ƒdko8t|dtƒ}|r\|t|dƒd7}n|ro|dd!n|d}|r½|ˆt|ƒƒˆ7}x!|D]}|ˆ|ƒ7}q Wn|S(Niiiÿÿÿÿ(tNonetlenR0tstr(tnodetresthasstrtchildrentchild(Rztnodesizetsizeofchildren(s,/usr/local/lib/python2.7/test/test_parser.pyR†js % cs(ˆj|ˆˆˆ|jƒƒƒdS(N(t check_sizeofR(R](tbasesizeR…R R†(s,/usr/local/lib/python2.7/test/test_parser.pytcheck_st_sizeofxss2 + 3s 2 + 3 + 4s x = 2 + 3R;s# -*- coding: utf-8 -*-Rjs2,ièRk(tsupportt calcobjsizetstructtcalcsizeRRR(R R‰((RzRˆR…R R†s,/usr/local/lib/python2.7/test/test_parser.pyt test_sizeof_s (RBRCRvRŠR‡t cpython_onlyRŽ(((s,/usr/local/lib/python2.7/test/test_parser.pyRwZs cCstjtttttƒdS(N(RŠt run_unittestRRDRZRiRw(((s,/usr/local/lib/python2.7/test/test_parser.pyt test_main†s t__main__(RtunittesttsysRŒttestRRŠttest.script_helperRtTestCaseRRDRZRiRwR‘RB(((s,/usr/local/lib/python2.7/test/test_parser.pyts    ÿ"ò%,