コード例 #1
0
	def propigateMerge(self, oldlcl, newlcl):
		for suite, frame in self.pairs:
			original = frame.readLocal(oldlcl, newlcl)

			if original and newlcl != original:
				asgn = Assign(original, [newlcl])
				asgn.markMerge()
				suite.insert(asgn)
コード例 #2
0
ファイル: localframe.py プロジェクト: winex/pystream
    def propigateMerge(self, oldlcl, newlcl):
        for suite, frame in self.pairs:
            original = frame.readLocal(oldlcl, newlcl)

            if original and newlcl != original:
                asgn = Assign(original, [newlcl])
                asgn.markMerge()
                suite.insert(asgn)
コード例 #3
0
ファイル: pythonstack.py プロジェクト: ncbray/pystream
    def evaluate(self, target=None):
        # Prevent multiple evaluations
        if not self.target:

            # If the merges are chained, try to use the same target?
            if not target:
                self.target = Local(None)
            else:
                self.target = target

                # Create the partial merges
            for e, onExit in zip(self.elements, self.onExits):
                if isinstance(e, DeferedMerge):
                    e = e.evaluate(self.target)

                if self.target != e:
                    asgn = Assign(e, self.target)
                    asgn.markMerge()
                    onExit.append(asgn)

        return self.target
コード例 #4
0
ファイル: pythonstack.py プロジェクト: winex/pystream
	def evaluate(self, target=None):
		# Prevent multiple evaluations
		if not self.target:

			# If the merges are chained, try to use the same target?
			if not target:
				self.target = Local(None)
			else:
				self.target = target

			# Create the partial merges
			for e, onExit in zip(self.elements, self.onExits):
				if isinstance(e, DeferedMerge):
					e = e.evaluate(self.target)

				if self.target != e:
					asgn = Assign(e, self.target)
					asgn.markMerge()
					onExit.append(asgn)

		return self.target