コード例 #1
0
ファイル: ast.py プロジェクト: sorinasandu/ixcode
    def toBB(self, BBlist, cBB):
        firstBB = Expression('if (%s)' % self._cond).toBB(BBlist, cBB)
        lastBB = BB()
        ignore = False

        if self._true:
            newBB = self._true.toBB(BBlist, firstBB)
            if newBB.is_ignored():
                ignore = True
            else:
                newBB.add_link(lastBB)

        if self._false:
            newBB = self._false.toBB(BBlist, firstBB)
            if newBB.is_ignored() and ignore:
                lastBB.set_ignore()
            else:
                newBB.add_link(lastBB)
        else:
            if ignore:
                lastBB.set_ignore()
            firstBB.add_link(lastBB)

        BBlist.append(lastBB)
        return lastBB