def _statementsForExecutionAndEvaluationIntoValue(stmts, varName): for i in xrange( len( stmts ) - 1, -1, -1 ): stmt = stmts[i] if stmt.isInstanceOf( Schema.ExprStmt ): return stmts[:i] + [ Schema.AssignStmt( targets=[ Schema.SingleTarget( name=varName ) ], value=stmt['expr'] ) ] + stmts[i+1:] elif stmt.isInstanceOf( Schema.BlankLine ) or stmt.isInstanceOf( Schema.CommentStmt ): pass else: break return deepcopy( stmts ) + [ Schema.AssignStmt( targets=[ Schema.SingleTarget( name=varName ) ], value=Schema.Load( name='None' ) ) ]
def __py_execmodel__(self, codeGen): assigns = [] for definition in self._definitions_: target = definition.target.model['target'] value = definition.value.model['expr'] assign = Py.AssignStmt(targets=[target], value=value) assigns.append(assign) return Py.PythonSuite(suite=assigns)