KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/21571/root/usr/lib64/python2.4/compiler/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/21571/root/usr/lib64/python2.4/compiler/pycodegen.pyo
m
=5Dc@sdkZdkZdkZdkZdkZdkZdklZdkl	Z	l
Z
lZlZdkl
Z
lZlZlZdklZlZlZlZdklZlZlZlZlZlZlZdklZyeidZ Wne!j
o
dZ nXhddfd	<ddfd
<ddfd<ddfd<Z"dZ#d
Z$dZ%dZ&ddZ'e(e(dZ)dfdYZ*de*fdYZ+de*fdYZ,de*fdYZ-dfdYZ.dZ/dfdYZ0dfd YZ1d!e1e0fd"YZ2d#e1e0fd$YZ3d%e1e0fd&YZ4d'fd(YZ5d)e1e5e0fd*YZ6d+e1e5e0fd,YZ7d-fd.YZ8d/e1e8e0fd0YZ9d1Z:d2Z;d3fd4YZ<d5fd6YZ=d7e=fd8YZ>d9e=fd:YZ?d;e=fd<YZ@d=e=fd>YZAhe	iBe><e	iCe?<e	iDe@<e	iEeA<ZFd?ZGeHd@jo&xeiIdD]ZJe'eJqWndS(AN(sStringIO(sastsparseswalkssyntax(spyassemsmiscsfuturessymbols(sSC_LOCALs	SC_GLOBALsSC_FREEsSC_CELL(s
CO_VARARGSsCO_VARKEYWORDSsCO_NEWLOCALSs	CO_NESTEDsCO_GENERATORsCO_GENERATOR_ALLOWEDsCO_FUTURE_DIVISION(sTupleArgiit
CALL_FUNCTIONtCALL_FUNCTION_VARtCALL_FUNCTION_KWtCALL_FUNCTION_VAR_KWiiicCst|d}|i}|it||}y|i|Wnt
j
o
n,Xt|dd}|i||idS(NtUtctwb(topentfilenametftreadtbuftclosetModuletmodtcompiletdisplaytSyntaxErrortdump(RRR	RR((t*/usr/lib64/python2.4/compiler/pycodegen.pytcompileFile$s

cCs|dj	p
|dj	o
tdn|djot||}nM|djot	||}n-|djot
||}n
td|i|i
S(s*Replacement for builtin compile() functionsnot implemented yettsingletexectevals6compile() 3rd arg must be 'exec' or 'eval' or 'single'N(tflagstNonetdont_inherittRuntimeErrortmodetInteractivetsourceRtgenR
t
Expressiont
ValueErrorRtcode(RRRRRR((RR2s




tAbstractCompileModecBs2tZdZdZdZdZdZRS(NcCs||_||_d|_dS(N(RtselfRRR"(R$RR((Rt__init__Gs		cCs9t|i|i}ti|i|ti	||S(N(
tparseR$RRttreetmisctset_filenameRtsyntaxtcheck(R$R'((Rt	_get_treeLs
cCsdS(N((R$((RRRscCs|iS(N(R$R"(R$((RtgetCodeUs(t__name__t
__module__RRR%R,RR-(((RR#Cs
			R cBstZdZdZRS(NRcCs+|i}t|}|i|_dS(N(R$R,R'tExpressionCodeGeneratorRR-R"(R$R'R((RR\s(R.R/RR(((RR XsRcBstZdZdZRS(NRcCs+|i}t|}|i|_dS(N(R$R,R'tInteractiveCodeGeneratorRR-R"(R$R'R((RRes(R.R/RR(((RRasR
cBs8tZdZddZdZeiZdZRS(NRicCsM|i}t|}|odk}|i|GHn|i|_dS(N(	R$R,R'tModuleCodeGeneratorRRtpprintR-R"(R$RR3R'R((RRns	cCs*|i|iti|i|dS(N(R	twriteR$tgetPycHeadertmarshalRR"(R$R	((RRvscCs2tii|i}tid|}|i|S(Ns<i(	tostpathtgetmtimeR$RtmtimetstructtpacktMAGIC(R$R:((RR5|s(	R.R/RRRtimpt	get_magicR=R5(((RR
js
	tLocalNameFindercBsktZdZfdZdZdZdZdZdZdZ	dZ
d	Zd
ZRS(sFind local names in scopecCsCti|_ti|_x|D]}|ii|q%WdS(N(R(tSetR$tnamestglobalstnametadd(R$RBRD((RR%s
cCsHx>|iiD]-}|ii|o|ii|qqW|iS(N(R$RCtelementsteltRBthas_elttremove(R$RG((Rt	getLocalss
cCsdS(N((R$tnode((Rt	visitDictscCs(x!|iD]}|ii|q
WdS(N(RKRBRDR$RCRE(R$RKRD((RtvisitGlobals
cCs|ii|idS(N(R$RBRERKRD(R$RK((Rt
visitFunctionscCsdS(N((R$RK((RtvisitLambdascCs5x.|iD]#\}}|ii|p|q
WdS(N(RKRBRDtaliasR$RE(R$RKRPRD((RtvisitImports
cCs5x.|iD]#\}}|ii|p|q
WdS(N(RKRBRDRPR$RE(R$RKRPRD((Rt	visitFroms
cCs|ii|idS(N(R$RBRERKRD(R$RK((Rt
visitClassscCs|ii|idS(N(R$RBRERKRD(R$RK((RtvisitAssNames(
R.R/t__doc__R%RJRLRMRNRORQRRRSRT(((RR@s								cCs-t|tio|ipdSq)ndS(Nii(t
isinstanceRKtasttConsttvalue(RK((Rtis_constant_falses
t
CodeGeneratorcBs9tZdZdZeZeZdZdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZd
ZdZdZedZeZeZeZdZdZdZdZddZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*d Z+d!Z,d"Z-d#Z.d$Z/d%Z0d&Z1d'Z2d(Z3d)Z4d*Z5d+Z6d,Z7d-Z8d.Z9d/Z:d0Z;d1Z<d2Z=d3Z>d4Z?d5Z@d6ZAd7ZBd8d9ZCeDd:joeCZEeCZFnd;ZEd<ZFd=ZGhd>d?<d@dA<dBdC<dDdE<dFdG<dHdI<dJdK<dLdM<dNdO<dPdQ<dRdS<dTdU<ZHdVZIdWZJdXZKdYZLdZZMd[ZNdd\ZOd]ZPd^ZQd_ZRed`ZSedaZTdbZUdcZVddZWdeZXdfZYdgZZdhZ[diZ\djZ]dkZ^dlZ_dmZ`dnZadoZbdpZcdqZddrZedsZfdtZgduZhdvZidwZjdxZkdyZldzZmd{ZnRS(|sDefines basic code generator for Python bytecode

    This class is an abstract base class.  Concrete subclasses must
    define an __init__() that defines self.graph and then calls the
    __init__() defined in this class.

    The concrete class must also define the class attributes
    NameFinder, FunctionGen, and ClassGen.  These attributes can be
    defined in the initClass() method, which is a hook for
    initializing these methods after all the classes have been
    defined.
    icCs|idjo|id|i_n|iti|_ti|_	d|_
|id|_|i
i}xY|D]Q}|djo|iitd|_q|djo|iitqqWdS(Nit
BINARY_DIVIDEtdivisiontBINARY_TRUE_DIVIDEt
generators(R$t_CodeGenerator__initializedRt	initClasst	__class__t
checkClassR(tStacktlocalstsetupstlast_linenot_setupGraphDelegationt_div_opt
get_moduletfuturestfeaturetgraphtsetFlagtCO_FUTURE_DIVISIONtCO_GENERATOR_ALLOWED(R$RkRl((RR%s"

	
	


cCsdS(s)This method is called once for each classN((R$((RRascCs9yWn.tj
o"}d|ii}t|nXdS(s*Verify that class is constructed correctlysBad class construction for %sN(tAssertionErrortmsgR$RbR.tintro(R$RrRs((RRcscCsO|ii|_|ii|_|ii|_|ii|_|ii|_dS(N(R$RmtemittnewBlockt
startBlockt	nextBlocktsetDocstring(R$((RRhs
cCs
|iiS(sReturn a code objectN(R$RmR-(R$((RR-scCs/|idj	oti||iSn|SdS(N(R$t
class_nameRR(tmangleRD(R$RD((RRzscCs ti}t|||iS(N(tsymbolst
SymbolVisitortstwalkR'tscopes(R$R'R}((RtparseSymbolss
cCs
tddS(Ns#should be implemented by subclasses(R(R$((RRjscCs|iii|S(N(R$RettopRHRD(R$RD((RtisLocalNamescCs|id|dS(NtSTORE(R$t_nameOpRD(R$RD((Rt	storeNamescCs|id|dS(NtLOAD(R$RRD(R$RD((RtloadNamescCs|id|dS(NtDELETE(R$RRD(R$RD((RtdelNamescCs|i|}|ii|}|tjo:|ip|i|d|q|i|d|n|t	jo:|ip|i|d|q|i|d|nF|t
jp
|tjo|i|d|ntd||fdS(Nt_NAMEt_FASTt_GLOBALt_DEREFs unsupported scope for var %s: %d(
R$RzRDtscopet
check_nametSC_LOCALt	optimizedRttprefixt	SC_GLOBALtSC_FREEtSC_CELLR(R$RRDR((RRs



cCs:|io|i|d|n|i|d|dS(sEmit name ops for names generated implicitly by for loops

        The interpreter generates names that start with a period or
        dollar sign.  The symbol table ignores these names because
        they aren't present in the program text.
        RRN(R$RRtRRD(R$RRD((Rt_implicitNameOp$s
cCs[t|dd}|dj	o8||ijp|o!|id|||_tSnt	S(sEmit SET_LINENO if necessary.

        The instruction is considered necessary if the node has a
        lineno attribute and it is different than the last lineno
        emitted.

        Returns true if SET_LINENO was emitted.

        There are no rules for when an AST node should have a lineno
        attribute.  The transformer and AST code need to be reviewed
        and a consistent policy implemented and documented.  Until
        then, this method works around missing line numbers.
        tlinenot
SET_LINENON(
tgetattrRKRRR$RgtforceRttTruetFalse(R$RKRR((Rt
set_lineno5s
$	cCs|i||_|i||_|idd|io$|id|i|idnt|i|i	dd}|ii|i
|i|i|idd|iddS(NRit
LOAD_CONSTRUtverbosetRETURN_VALUE(R$RRKRRRttdocRR~t
NameFindertlnfRetpushRJtvisitR(R$RKR((RtvisitModuleSs
cCsP|i||i||_|i||_|i|i|iddS(NR(R$RRKRRRRRt(R$RK((RtvisitExpression`s

cCsE|i|dd|io|i|in|i|idS(NtisLambdai(R$t_visitFuncOrLambdaRKRRxRRD(R$RK((RRNgs
cCs|i|dddS(NRi(R$RRK(R$RK((RROmsc
Csy|oD|io:x!|iiD]}	|i|	qWt|ii}nd}|i	||i
||i|i}t|i||i|i|x|iD]}|i|qW|ii}|oNx|D]}|id|qW|id||idt|in*|id||idt|ix$t|D]}|iddq[WdS(NitLOAD_CLOSURERtMAKE_CLOSUREt
MAKE_FUNCTIONRi(RRKt
decoratorstnodest	decoratorR$RtlentndecoratorstFunctionGenRRyRjRR~R"tfinishRtdefaultstdefaultRt
get_free_varstfreesRDRttrangeti(
R$RKRRDRRRRRR((RRps4




cCs.|i||i|i}t|i||i|i	||i
d|ix|iD]}|i|qbW|i
dt|i|ii}x|D]}|i
d|qW|i
d||o|i
ddn|i
dd|i
dd|i
d|i|idS(	NRtBUILD_TUPLERRiRRtBUILD_CLASS(R$tClassGenRKRRjRR~R"RRRtRDtbasestbaseRRRRRR(R$RKRDRRR((RRSs*



cCs|i}t|i}xt|D]}|i|\}}t|oq(n|i||i
||i}|id||i|id|i
||id||i||idq(W|io|i
|in|i|dS(Nt
JUMP_IF_FALSEtPOP_TOPtJUMP_FORWARD(R$RutendRRKtteststnumtestsRRttesttsuiteRZRRtnextTestRtRwRvtelse_(R$RKRRRRRR((RtvisitIfs(








cCs8|i||i}|i}|i}|id||i||i	i
t|f|i|dt|i
|i|id|p||i|id|i
|i|id||i||id|id|i	i|io|i
|in|i|dS(Nt
SETUP_LOOPRRRt
JUMP_ABSOLUTEt	POP_BLOCK(R$RRKRutloopRtafterRtRwRfRtLOOPRRRtbodyRvtpop(R$RKRRR((Rt
visitWhiles*








cCs*|i}|i}|i}|iit|f|i||i
d||i|i|i
d|i
||i|dd|i
d||i|i|i|i|i
d||i
||i
d|ii|io|i|in|i
|dS(NRtGET_ITERRitFOR_ITERRR(R$RutstarttanchorRRfRRRRKRtRtlistRwtassignRRR(R$RKRRR((RtvisitFors(






cCsE|iptd|i|ifn|i||iddS(Ns'break' outside loop (%s, %d)t
BREAK_LOOP(R$RfRRKRRRRt(R$RK((Rt
visitBreaks

cCsj|iptd|i|ifn|ii\}}|t	jo+|i
||id||in|t
jp
|tjo|i
|t|i}xA|djo3|d}|i|\}}|t	joPqqW|t	jotd|i|ifn|id||in1|tjo#d}t||i|ifndS(Ns 'continue' outside loop (%s, %d)Riit
CONTINUE_LOOPs7'continue' not allowed inside 'finally' clause (%s, %d)(R$RfRRKRRRtkindtblockRRRtRwtEXCEPTtTRY_FINALLYRt
loop_blocktEND_FINALLYRr(R$RKRRRRrR((Rt
visitContinues.









cCs}|i}xI|id D]:}|i||i|||i	|idqW|i|id|i	|dS(NiR(
R$RuRRKRtchildRRttjumpRw(R$RKRRR((Rt	visitTests

cCs|i|ddS(NR(R$RRK(R$RK((RtvisitAndscCs|i|ddS(NtJUMP_IF_TRUE(R$RRK(R$RK((RtvisitOr scCsD|i|i|i}xy|id D]j\}}|i||i	d|i	d|i	d||i	d||i
|i	dq*W|io4|id\}}|i||i	d|nt|idjoT|i}|i	d||i
||i	d	|i	d|i
|ndS(
NitDUP_TOPt	ROT_THREEt
COMPARE_OPRRiRtROT_TWO(R$RRKtexprRutcleanuptopstopR"RtRwRRRv(R$RKR"RRR((RtvisitCompare#s,








cCs|i|d|i}
|id|_|idd|id|idd|id|
g}	xtt	t
|i|iD]\}}|i|\}}d}x>|iD]3}|djo|i}n|i||qW|	id|||fqW|id	|
|i|i|id
d|idx|	D]z\}}}|oG|i}|id||i||id|i|n|id
||i|qXW|id|
|id|_dS(Ns	$append%dit
BUILD_LISTiRt	LOAD_ATTRtappendRRRRRRR(R$RRKt_CodeGenerator__list_countRRtRtstacktzipRRtqualsRtfor_RRRRtconttifstif_RutinsertRtskip_oneRvRw(R$RKRRRRRRRRR((Rt
visitListComp>sD


"




cCs|i}|i}|i|i|id|i||i	|dt
|id||i|i|i||fS(NRRR(R$RuRRRRKRRtRwRRR(R$RKRR((RtvisitListCompFords


cCsN|i|dt|i|i|id||i|iddS(NRRR(	R$RRKRRRRttbranchRu(R$RKR((RtvisitListCompIfqs

cCst||i|i|i}t|i||i	|i
||ii}|oEx|D]}|id|qeW|id||iddn!|id||idd|i|iidi|id|idddS(	NRRRiRRRi(tGenExprCodeGeneratorRKR$RRyRjRR~R"RRRRRRDRtRRtiter(R$RKRDRR((RtvisitGenExprxs"


c
Csp|i|g}	xttt|i|iD]\}}|i
|\}}d}x>|iD]3}|djo|i}n|i
||qfW|	id|||fq5W|i
|i|idx|	D]z\}}}|oG|i}|id||i||id|i|n|id||i|qW|idddS(NitYIELD_VALUERRRR(R$RRKRRRRRRRRRRRRRRRuRRRtRRvRw(
R$RKRRRRRRRR((RtvisitGenExprInners2
"




cCs|i}|i}|io|idn|i|i|i	d|i
||i|dt|i	d||i
|i|i
||fS(Ns[outmost-iterable]RRR(R$RuRRRKt
is_outmostRRRRtRwRRR(R$RKRR((RtvisitGenExprFors



cCsN|i|dt|i|i|id||i|iddS(NRRR(	R$RRKRRRRtRRu(R$RKR((RtvisitGenExprIfs

cCsdS(N((R$RK((RtvisitAssertscCs|i|d}|io|i|i|d}n|io|i|i|d}n|io|i|i|d}n|id|dS(Niit
RAISE_VARARGS(	R$RRKtntexpr1Rtexpr2texpr3Rt(R$RKR((Rt
visitRaises



cCsh|i}|i}|i}|io|i}
n|}
|i||i	d||i
||iit
|f|i|i|i	d|ii|i	d|
|i|t|id}	x>tt|iD]'}|i|\}}}|i||oa|i	d|i||i	dd|i}|i	d||i
|i	d	n|i	d	|o|i|n|i	d	|i	d	|i||i	d||o|i
|n|i
|o|i	d	qqW|i	d
|io!|i
|
|i|in|i
|dS(NtSETUP_EXCEPTRRiRRsexception matchRRR(R$RuRthandlersRRKRtlElseRRtRwRfRRRRRvRtlastRRRttargettnext(R$RKRRRRRRRRR((RtvisitTryExceptsZ

















cCs|i}|i}|i||id||i||ii	t
|f|i|i|id|ii|idd|i||ii	t|f|i|i|id|iidS(Nt
SETUP_FINALLYRRR(R$RuRtfinalRRKRtRwRfRRRRRR(R$RKRR((RtvisitTryFinallys





cCs.|i||i|i|iddS(NR(R$RRKRRRt(R$RK((RtvisitDiscard-s
cCs|id|idS(NR(R$RtRKRY(R$RK((Rt
visitConst2scCs'|id|i|i|idS(NR(R$RtRKRDRR(R$RK((RtvisitKeyword5scCsdS(N((R$RK((RRM9scCs!|i||i|idS(N(R$RRKRRD(R$RK((Rt	visitName=s
cCs|i|dS(N(R$RRK(R$RK((Rt	visitPassAscCs|i|x|iD]\}}tdjo|iddn|id||i	dd}|o|i||i|q|i|qWdS(NiRtIMPORT_NAMEt.i(
R$RRKRBRDRPtVERSIONRtRtsplitRt_resolveDotsR(R$RKRDRPR((RRQDs



cCs|i|td|i}tdjo|idt|n|id|i	x|iD]\}}tdjo`|djod|_|iddSq|id||i
||i|p|qf|id|qfW|id	dS(
NcCs|\}}|S(N(RDRP(t.0RDRP((Rt<lambda>SsiRR"t*itIMPORT_STARtIMPORT_FROMR(R$RRKtmapRBtfromlistR$RtttupletmodnameRDRPt	namespaceR&R(R$RKR-RDRP((RRRQs$




	

cCsS|id}t|djodSnx"|dD]}|id|q5WdS(NR#iR(RDR%teltsRRGR$Rt(R$RDR1RG((RR&gscCs0|i|i|id|i|idS(NR(R$RRKRRtRztattrname(R$RK((RtvisitGetattrnscCs|i||i|it|id}xltt|iD]U}|i|}||jo|idnt|t
io|i|qFqFWdS(NiR(R$RRKRRRRtdupsRRRGRtRVRWtNode(R$RKR4RRG((RtvisitAssignts


cCse|idjo|i|in>|idjo!|i||i|in
dG|iGHdS(Nt	OP_ASSIGNt	OP_DELETEtoops(RKRR$RRDRR(R$RK((RRTs
cCs|i|i|idjo |id|i|inB|idjo |id|i|indG|iGH|GHdS(NR7t
STORE_ATTRR8tDELETE_ATTRswarning: unexpected flags:(R$RRKRRRtRzR2(R$RK((RtvisitAssAttrs  tUNPACK_SEQUENCEcCsUt|djo|i|t|inx|iD]}|i|q:WdS(NR8(	tfindOpRKR$RtRRRRR(R$RKRR((Rt_visitAssSequences

icCs|i|ddS(NtUNPACK_TUPLE(R$R?RK(R$RK((Rt
visitAssTuplescCs|i|ddS(NtUNPACK_LIST(R$R?RK(R$RK((RtvisitAssListscCsg|i|t|i}|i|d|i|i|i|i|i	|i|ddS(Ntloadtstore(
R$RRKtwrap_augtaug_nodeRRRtt_augmented_opcodeR(R$RKRG((RtvisitAugAssigns
s+=tINPLACE_ADDs-=tINPLACE_SUBTRACTs*=tINPLACE_MULTIPLYs/=tINPLACE_DIVIDEs//=tINPLACE_FLOOR_DIVIDEs%=tINPLACE_MODULOs**=t
INPLACE_POWERs>>=tINPLACE_RSHIFTs<<=tINPLACE_LSHIFTs&=tINPLACE_ANDs^=tINPLACE_XORs|=t
INPLACE_ORcCsF|djo|i|in"|djo|i|indS(NRDRE(RR$RRKRDR(R$RKR((RtvisitAugNames

cCs|djo=|i|i|id|id|i|in;|djo-|id|id|i|indS(NRDRRRERR:(RR$RRKRRtRzR2(R$RKR((RtvisitAugGetattrs

 

cCs|djo|i|dn|djod}|io|dB}n|io|dB}n|djo|idn,|djo|idn|id	|id
|ndS(NRDiREiiRitROT_FOURRsSTORE_SLICE+%d(RR$t
visitSliceRKtslicetlowertupperRt(R$RKRRZ((Rt
visitAugSlices






cCsst|idjo
tdn|djo|i|dn,|djo|id|idndS(Nis-augmented assignment to tuple is not possibleRDRERtSTORE_SUBSCR(RRKtsubsRRR$tvisitSubscriptRt(R$RKR((RtvisitAugSubscripts



cCs|i|i|idjo|iddn|i|i|idjo|idn|i|i|iddS(NRRt	EXEC_STMT(R$RRKRReRRtRC(R$RK((Rt	visitExecscCsd}d}|i||i|ixI|iD]>}|i|t|t	i
o|d}q3|d}q3W|idj	o|i|in|i
dj	o|i|i
n|idj	}|i
dj	}t||f}|i||d>|BdS(Niii(tpostkwR$RRKRtargstargRVRWtKeywordt	star_argsRt
dstar_argst	have_start
have_dstartcallfunc_opcode_infotopcodeRt(R$RKRnRlRdReRgRk((Rt
visitCallFuncs$


cCs|i||io|i|inxn|iD]c}|io|idn|i||io|id|idq5|idq5W|io|o|idndS(NRRt
PRINT_ITEM_TOt
PRINT_ITEMR(	R$RRKtdestRRRRttnewline(R$RKRsR((Rt
visitPrints






cCs?|i|dd|io|idn|iddS(NRsitPRINT_NEWLINE_TOt
PRINT_NEWLINE(R$RtRKRrRt(R$RK((RtvisitPrintnls
cCs.|i||i|i|iddS(NR(R$RRKRRYRt(R$RK((RtvisitReturns
cCs.|i||i|i|iddS(NR(R$RRKRRYRt(R$RK((Rt
visitYield s
cCsB|i|id}|io|i|i|dB}n|io|i|i|dB}n|oS|djo|idq|djo|iddq|iddn|i	djo|id|nZ|i	d	jo|id
|n5|i	djo|id|nd
G|i	GHdS(NiiiRitDUP_TOPXtOP_APPLYsSLICE+%dR7sSTORE_SLICE+%dR8sDELETE_SLICE+%dsweird slice(
R$RRKRRZR[R\taug_flagRtR(R$RKR|RZ((RRY's,



cCs|i|ix|iD]}|i|qW|o|iddnt|idjo|idt|in|i	djo|idnC|i	djo|idn"|i	d	jo|id
ndS(NRziiRR{t
BINARY_SUBSCRR7R^R8t
DELETE_SUBSCR(
R$RRKRR_tsubR|RtRR(R$RKR|R((RR`Bs
cCs1|i|i|i|i|i|dS(N(R$RRKtlefttrightRtR(R$RKR((RtbinaryOpSscCs|i|dS(Nt
BINARY_ADD(R$RRK(R$RK((RtvisitAddXscCs|i|dS(NtBINARY_SUBTRACT(R$RRK(R$RK((RtvisitSub[scCs|i|dS(NtBINARY_MULTIPLY(R$RRK(R$RK((RtvisitMul^scCs|i||iS(N(R$RRKRi(R$RK((RtvisitDivascCs|i|dS(NtBINARY_FLOOR_DIVIDE(R$RRK(R$RK((Rt
visitFloorDivdscCs|i|dS(Nt
BINARY_MODULO(R$RRK(R$RK((RtvisitModgscCs|i|dS(NtBINARY_POWER(R$RRK(R$RK((Rt
visitPowerjscCs|i|dS(Nt
BINARY_LSHIFT(R$RRK(R$RK((RtvisitLeftShiftmscCs|i|dS(Nt
BINARY_RSHIFT(R$RRK(R$RK((RtvisitRightShiftpscCs!|i|i|i|dS(N(R$RRKRRtR(R$RKR((RtunaryOpuscCs|i|dS(NtUNARY_INVERT(R$RRK(R$RK((RtvisitInvertyscCs|i|dS(NtUNARY_NEGATIVE(R$RRK(R$RK((Rt
visitUnarySub|scCs|i|dS(NtUNARY_POSITIVE(R$RRK(R$RK((Rt
visitUnaryAddscCs|i|dS(NR(R$RRK(R$RK((RtvisitUnaryInvertscCs|i|dS(Nt	UNARY_NOT(R$RRK(R$RK((RtvisitNotscCs|i|dS(Nt
UNARY_CONVERT(R$RRK(R$RK((RtvisitBackquotescCsD|i|dx,|dD] }|i||i|qWdS(Nii(R$RRRKRtR(R$RRRK((RtbitOps

cCs|i|idS(Nt
BINARY_AND(R$RRKR(R$RK((RtvisitBitandscCs|i|idS(Nt	BINARY_OR(R$RRKR(R$RK((Rt
visitBitorscCs|i|idS(Nt
BINARY_XOR(R$RRKR(R$RK((RtvisitBitxorscCs|idtdS(NR(R$RttEllipsis(R$RK((Rt
visitEllipsisscCsK|i|x|iD]}|i|qW|idt|idS(NR(R$RRKRRGRRtR(R$RKRG((Rt
visitTuples


cCsK|i|x|iD]}|i|qW|idt|idS(NR(R$RRKRRGRRtR(R$RKRG((Rt	visitLists


cCs>x|iD]}|i|q
W|idt|idS(NtBUILD_SLICE(RKRRR$RRtR(R$RKR((Rt
visitSliceobjs
cCs||i||iddxX|iD]M\}}|id|i||i||id|idq'WdS(Nt	BUILD_MAPiRRR^(R$RRKRttitemstktvR(R$RKRR((RRLs





(oR.R/RURRR`RyR%RaRcRhR-RzRRjRRRRRRRRR@RRRRRRNRORRSRRRRRRRRRRRRRRRR
RRRRRRRRRMR R!RQRRR&R3R6RTR<R?R$RARCRIRHRVRWR]RaRcRoRtRwRxRyRYR`RRRRRRRRRRRRRRRRRRRRRRRRRRL(((RR[s															
										
				&	
									2								
							


			r																																				tNestedScopeMixincBstZdZdZRS(s>Defines initClass() for nested scoping (Python 2.2-compatible)cCs(t|i_t|i_t|i_dS(N(R@R$RbRtFunctionCodeGeneratorRtClassCodeGeneratorR(R$((RRas(R.R/RURa(((RRsR2cBs)tZeiZdZdZdZRS(NcCsEtid|i|_ti||_|i	t
||dS(Ns<module>(tpyassemtPyFlowGraphR'RR$Rmtfuturetfind_futuresRkt _ModuleCodeGenerator__super_initR~(R$R'((RR%s
cCs|S(N(R$(R$((RRjs(R.R/R[R%RRRRj(((RR2s		R0cBs/tZeiZdZfZdZdZRS(NcCs3tid|i|_|it||dS(Ns<expression>(RRR'RR$Rmt$_ExpressionCodeGenerator__super_initR~(R$R'((RR%s
cCs|S(N(R$(R$((RRjs(	R.R/R[R%RRRRkRj(((RR0s
		R1cBs8tZeiZdZfZdZdZdZ	RS(NcCsMtid|i|_|i|i|t|||i	ddS(Ns
<interactive>R(
RRR'RR$Rmt%_InteractiveCodeGenerator__super_initRR~Rt(R$R'((RR%s



cCs|S(N(R$(R$((RRjscCs!|i|i|iddS(Nt
PRINT_EXPR(R$RRKRRt(R$RK((RRs(
R.R/R[R%RRRRkRjR(((RR1s			tAbstractFunctionCodecBsGtZdZdZdZdZdZdZdZeZ	RS(NiicCsW||_||_|o't}
d|
i}|
id|
_n
|i}t
|i\}}	ti||i|dd|_||_|i|o|io|i|int|i|i|dd}|ii|i|io|iitn|io|iit n|i!||	o|i"|indS(Ns<lambda.%d>iRRi(#RyR$RtmoduleRRtklasstlambdaCountRDtfunctgenerateArgListtargnamesRfthasTupleArgRRRRmt
super_initRRxR~R"RRReRRJtvarargsRnt
CO_VARARGStkwargstCO_VARKEYWORDSRtgenerateArgUnpack(R$RRRRyRRRDRfRR((RR%s.		
		
!


cCs|iS(N(R$R(R$((RRjscCs<|ii|ip|iddn|iddS(NRR(R$RmtstartExitBlockRRtR(R$((RRs

cCsjxctt|D]O}||}t|tijo)|i	dd|d|i
|qqWdS(Nt	LOAD_FASTs.%di(RRRfRRgttypettypest	TupleTypeR$RttunpackSequence(R$RfRRg((RR s
cCstdjo|idt|n|idt|xE|D]=}t|tijo|i	|qD|i
d|qDWdS(NiR=R@R(R$R$RtRttupRGRRRRR(R$RRG((RR's
(
R.R/RRR%RjRRRtunpackTuple(((RRs					RcBs)tZeiZdZeiZdZRS(NcCs||_|||_|i||||||ii	|ii
|ii|ii|ii
dj	o|iitndS(N(RR$RRt"_FunctionCodeGenerator__super_initRRyRRmtsetFreeVarsRtsetCellVarst
get_cell_varst	generatorRRntCO_GENERATOR(R$RRRRyR((RR%;s	
(	R.R/R[R%RRRRR(((RR4s		RcBs)tZeiZdZeiZdZRS(NcCsu||_|||_|i||d|||ii|ii	|ii
|ii|iit
dS(Ni(RR$tgexpRt!_GenExprCodeGenerator__super_initRyRRmRRRRRnR(R$RRRyR((RR%Ks	
(	R.R/R[R%RRRRR(((RRDs		tAbstractClassCodecBs#tZdZdZdZRS(NcCs|i|_||_ti|i|idddd|_|i	t
|i|idd}|ii|i|iit|io|i|indS(NRiRiR(RRDR$RyRRRRRmRR~R"RRReRRJRntCO_NEWLOCALSRRx(R$RRRR((RR%Us	

cCs|iS(N(R$R(R$((RRjascCs+|ii|id|iddS(NtLOAD_LOCALSR(R$RmRRt(R$((RRds

(R.R/R%RjR(((RRSs		RcBs)tZeiZdZeiZdZRS(NcCs||_|||_|i||||ii|ii|ii	|ii
|i||idd|i
d|io$|id|i|i
dndS(NtLOAD_GLOBALR.R/RRU(RR$RRt_ClassCodeGenerator__super_initRRmRRRRRRtRR(R$RRR((RR%os	



(	R.R/R[R%RRRRR(((RRis		cCsg}g}d}xtt|D]}||}t|t	i
jo|i|q%t|t	ijo>|it
|d||iti||d}q%td|q%W|||fS(s&Generate an arg list marking TupleArgsiiisunexpect argument type:N(RftextratcountRRtarglistRRGRRt
StringTypeRRtTupleArgtextendR(tflattenR!(RRRRRfRG((RR|s
cCs#t}t||dd|iS(s5Find the op (DELETE, LOAD, STORE) in an AssTuple treeRiN(tOpFinderRR~RKR(RKR((RR>s	RcBs&tZdZdZeZeZRS(NcCs
d|_dS(N(RR$R(R$((RR%scCsD|idjo|i|_n!|i|ijo
tdndS(Nsmixed ops in stmt(R$RRRKRR!(R$RK((RRTs(R.R/R%RTR<R`(((RRs		t	DelegatorcBs tZdZdZdZRS(sBase class to support delegation for augmented assignment nodes

    To generator code for augmented assignments, we use the following
    wrapper classes.  In visitAugAssign, the left-hand expression node
    is visited twice.  The first time the visit uses the normal method
    for that node .  The second time the visit uses a different method
    that generates the appropriate code to perform the assignment.
    These delegator classes wrap the original AST nodes in order to
    support the variant visit methods.
    cCs
||_dS(N(tobjR$(R$R((RR%scCst|i|S(N(RR$Rtattr(R$R((Rt__getattr__s(R.R/RUR%R(((RRs
	t
AugGetattrcBstZRS(N(R.R/(((RRstAugNamecBstZRS(N(R.R/(((RRstAugSlicecBstZRS(N(R.R/(((RRstAugSubscriptcBstZRS(N(R.R/(((RRscCst|i|S(N(twrapperRKRb(RK((RRFst__main__(KR>R7R6R;tsysRt	cStringIOtStringIOtcompilerRWR&R~R*RR(RR{tcompiler.constsRRRRRRRt	CO_NESTEDRRpRotcompiler.pyassemRtversion_infoR$tAttributeErrorRmRRRRRRRR#R RR
R@RZR[RR2R0R1RRRRRRR>RRRRRRtGetattrtNametSlicet	SubscriptRRFR.targvtfile(>RR0R@RR(R~R&RR1RRRRRRRRFR;RZR>RRRRRRmRRoRpR>RRRR#RRWRRRRRRR$R*R RRRR{RRR[RR
R2RRRRR7R6R((Rt?sp						
1
B		+	
>		6	


Anon7 - 2021