57 lines
1.0 KiB
Python
57 lines
1.0 KiB
Python
from block import *
|
|
|
|
def tp(sth):
|
|
try:
|
|
a = float(sth)
|
|
return 2
|
|
except:
|
|
if sth[0] == '_':
|
|
return 0
|
|
return 1
|
|
|
|
class DAGNode:
|
|
cnt = 1
|
|
def __init__(self,tag,l=None,r=None,op=None):
|
|
self.cnt = DAGNode.cnt
|
|
DAGNode.cnt += 1
|
|
self.parents = []
|
|
self.lc = l
|
|
self.rc = r
|
|
self.op = op
|
|
self.main_tag = tag
|
|
self.other_tag = set(tag)
|
|
|
|
|
|
class Optimizer:
|
|
def __init__(self):
|
|
self.DAGNodes = set()
|
|
def optimize(self, lst):
|
|
# print(lst)
|
|
self.build(lst)
|
|
return [1]
|
|
def insert(self,a,b):
|
|
pass
|
|
|
|
def build(self, lst):
|
|
for i in lst:
|
|
op = i.a
|
|
l = i.b
|
|
r = i.c
|
|
ans = i.d
|
|
if op == '=':
|
|
pass
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
divider = BlockDivider(l)
|
|
optimizer = Optimizer()
|
|
ls = divider.run()
|
|
|
|
for l in ls:
|
|
# print(l)
|
|
ans = optimizer.optimize(l)
|
|
for _ in ans:
|
|
print(_)
|
|
print()
|