- Removed futile recoursive import, that would not work in python3
git-svn-id: http://galileo.dmi.unict.it/svn/relational/trunk@307 014f5005-505e-4b48-8d0a-63407b615a7c
This commit is contained in:
parent
404e44671d
commit
8a21307d22
@ -29,7 +29,6 @@
|
|||||||
# The class used is defined in optimizer module.
|
# The class used is defined in optimizer module.
|
||||||
# A function will have to return the number of changes performed on the tree.
|
# A function will have to return the number of changes performed on the tree.
|
||||||
|
|
||||||
import optimizer
|
|
||||||
import parser
|
import parser
|
||||||
|
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
@ -43,10 +42,10 @@ def replace_node(replace,replacement):
|
|||||||
replace.name=replacement.name
|
replace.name=replacement.name
|
||||||
replace.kind=replacement.kind
|
replace.kind=replacement.kind
|
||||||
|
|
||||||
if replace.kind==optimizer.UNARY:
|
if replace.kind==parser.UNARY:
|
||||||
replace.child=replacement.child
|
replace.child=replacement.child
|
||||||
replace.prop=replacement.prop
|
replace.prop=replacement.prop
|
||||||
elif replace.kind==optimizer.BINARY:
|
elif replace.kind==parser.BINARY:
|
||||||
replace.right=replacement.right
|
replace.right=replacement.right
|
||||||
replace.left=replacement.left
|
replace.left=replacement.left
|
||||||
|
|
||||||
@ -64,12 +63,12 @@ def recoursive_scan(function,node,rels=None):
|
|||||||
returned value.'''
|
returned value.'''
|
||||||
changes=0
|
changes=0
|
||||||
#recoursive scan
|
#recoursive scan
|
||||||
if node.kind==optimizer.UNARY:
|
if node.kind==parser.UNARY:
|
||||||
if rels!=None:
|
if rels!=None:
|
||||||
changes+=function(node.child,rels)
|
changes+=function(node.child,rels)
|
||||||
else:
|
else:
|
||||||
changes+=function(node.child)
|
changes+=function(node.child)
|
||||||
elif node.kind==optimizer.BINARY:
|
elif node.kind==parser.BINARY:
|
||||||
if rels!=None:
|
if rels!=None:
|
||||||
changes+=function(node.right,rels)
|
changes+=function(node.right,rels)
|
||||||
changes+=function(node.left,rels)
|
changes+=function(node.left,rels)
|
||||||
@ -148,7 +147,7 @@ def futile_union_intersection_subtraction(n):
|
|||||||
#Subtraction of the same thing or with selection on the left child
|
#Subtraction of the same thing or with selection on the left child
|
||||||
elif (n.name=='-' and ((n.left==n.right) or (n.left.name=='σ' and n.left.child==n.right)) ):#Empty relation
|
elif (n.name=='-' and ((n.left==n.right) or (n.left.name=='σ' and n.left.child==n.right)) ):#Empty relation
|
||||||
changes=1
|
changes=1
|
||||||
n.kind=optimizer.UNARY
|
n.kind=parser.UNARY
|
||||||
n.name='σ'
|
n.name='σ'
|
||||||
n.prop='False'
|
n.prop='False'
|
||||||
n.child=n.left.get_left_leaf()
|
n.child=n.left.get_left_leaf()
|
||||||
@ -165,23 +164,23 @@ def down_to_unions_subtractions_intersections(n):
|
|||||||
_o=('ᑌ','-','ᑎ')
|
_o=('ᑌ','-','ᑎ')
|
||||||
if n.name=='σ' and n.child.name in _o:
|
if n.name=='σ' and n.child.name in _o:
|
||||||
|
|
||||||
left=optimizer.node()
|
left=parser.node()
|
||||||
left.prop=n.prop
|
left.prop=n.prop
|
||||||
left.name=n.name
|
left.name=n.name
|
||||||
left.child=n.child.left
|
left.child=n.child.left
|
||||||
left.kind=optimizer.UNARY
|
left.kind=parser.UNARY
|
||||||
right=optimizer.node()
|
right=parser.node()
|
||||||
right.prop=n.prop
|
right.prop=n.prop
|
||||||
right.name=n.name
|
right.name=n.name
|
||||||
right.child=n.child.right
|
right.child=n.child.right
|
||||||
right.kind=optimizer.UNARY
|
right.kind=parser.UNARY
|
||||||
|
|
||||||
n.name=n.child.name
|
n.name=n.child.name
|
||||||
n.left=left
|
n.left=left
|
||||||
n.right=right
|
n.right=right
|
||||||
n.child=None
|
n.child=None
|
||||||
n.prop=None
|
n.prop=None
|
||||||
n.kind=optimizer.BINARY
|
n.kind=parser.BINARY
|
||||||
changes+=1
|
changes+=1
|
||||||
|
|
||||||
return changes+recoursive_scan(down_to_unions_subtractions_intersections,n)
|
return changes+recoursive_scan(down_to_unions_subtractions_intersections,n)
|
||||||
@ -235,14 +234,14 @@ def swap_union_renames(n):
|
|||||||
changes=1
|
changes=1
|
||||||
|
|
||||||
#Copying self, but child will be child of renames
|
#Copying self, but child will be child of renames
|
||||||
q=optimizer.node()
|
q=parser.node()
|
||||||
q.name=n.name
|
q.name=n.name
|
||||||
q.kind=optimizer.BINARY
|
q.kind=parser.BINARY
|
||||||
q.left=n.left.child
|
q.left=n.left.child
|
||||||
q.right=n.right.child
|
q.right=n.right.child
|
||||||
|
|
||||||
n.name='ρ'
|
n.name='ρ'
|
||||||
n.kind=optimizer.UNARY
|
n.kind=parser.UNARY
|
||||||
n.child=q
|
n.child=q
|
||||||
n.prop=n.left.prop
|
n.prop=n.left.prop
|
||||||
n.left=n.right=None
|
n.left=n.right=None
|
||||||
@ -521,9 +520,9 @@ def selection_and_product(n,rels):
|
|||||||
#Preparing left selection
|
#Preparing left selection
|
||||||
if len(left)>0:
|
if len(left)>0:
|
||||||
changes=1
|
changes=1
|
||||||
l_node=optimizer.node()
|
l_node=parser.node()
|
||||||
l_node.name='σ'
|
l_node.name='σ'
|
||||||
l_node.kind=optimizer.UNARY
|
l_node.kind=parser.UNARY
|
||||||
l_node.child=n.child.left
|
l_node.child=n.child.left
|
||||||
l_node.prop=''
|
l_node.prop=''
|
||||||
n.child.left=l_node
|
n.child.left=l_node
|
||||||
@ -539,10 +538,10 @@ def selection_and_product(n,rels):
|
|||||||
#Preparing right selection
|
#Preparing right selection
|
||||||
if len(right)>0:
|
if len(right)>0:
|
||||||
changes=1
|
changes=1
|
||||||
r_node=optimizer.node()
|
r_node=parser.node()
|
||||||
r_node.name='σ'
|
r_node.name='σ'
|
||||||
r_node.prop=''
|
r_node.prop=''
|
||||||
r_node.kind=optimizer.UNARY
|
r_node.kind=parser.UNARY
|
||||||
r_node.child=n.child.right
|
r_node.child=n.child.right
|
||||||
n.child.right=r_node
|
n.child.right=r_node
|
||||||
while len(right)>0:
|
while len(right)>0:
|
||||||
|
@ -107,8 +107,6 @@ class Ui_Dialog(object):
|
|||||||
|
|
||||||
self.verticalLayout_7.addWidget(self.webLink)
|
self.verticalLayout_7.addWidget(self.webLink)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
self.tabWidget.addTab(self.tab_2,"")
|
self.tabWidget.addTab(self.tab_2,"")
|
||||||
self.verticalLayout_2.addWidget(self.tabWidget)
|
self.verticalLayout_2.addWidget(self.tabWidget)
|
||||||
self.buttonBox = QtGui.QDialogButtonBox(Dialog)
|
self.buttonBox = QtGui.QDialogButtonBox(Dialog)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user