diff --git a/comsdk/__pycache__/graph.cpython-37.pyc b/comsdk/__pycache__/graph.cpython-37.pyc index ee35c5361249e8d176a15c155606667af2115fe6..2c9df5b0aaa0a49d87b08214dfddeeb39d3aa825 100644 Binary files a/comsdk/__pycache__/graph.cpython-37.pyc and b/comsdk/__pycache__/graph.cpython-37.pyc differ diff --git a/comsdk/__pycache__/parser.cpython-37.pyc b/comsdk/__pycache__/parser.cpython-37.pyc index 630d7496c57cadfd6057133cef92de7f866efb81..3496a145b6aaf537c10d9393d44c32e513bed959 100644 Binary files a/comsdk/__pycache__/parser.cpython-37.pyc and b/comsdk/__pycache__/parser.cpython-37.pyc differ diff --git a/comsdk/graph.py b/comsdk/graph.py index e9fcd2f2034fcbc519bc67fcdcfc8170e701b6f1..db293a0554f20e6bc26d528b17df152765a38f36 100644 --- a/comsdk/graph.py +++ b/comsdk/graph.py @@ -37,10 +37,10 @@ class Selector(Func): class Transfer: - def __init__(self, edge, output_state, index=None): + def __init__(self, edge, output_state, order=0): self.edge = edge self.output_state = output_state - self.index = index + self.order = order def transfer(self, data, dynamic_keys_mapping={}): #print(dynamic_keys_mapping) @@ -149,7 +149,7 @@ class State: self.transfers.sort(key = __sort_by_order) print(self.name) for t in self.transfers: - print("\t", t.edge.morph_name) + print("\t", t.edge.pred_name, t.edge.morph_name) if self._proxy_state is not None: return self._proxy_state.idle_run(idle_run_type, branching_states_history) if idle_run_type == IdleRunType.INIT: @@ -180,7 +180,7 @@ class State: next_state = transfer.output_state next_state.idle_run(idle_run_type, branching_states_history + [next_state.name]) - def connect_to(self, term_state, edge): + def connect_to(self, term_state, edge=None): self.transfers.append(Transfer(edge, term_state)) # edge.set_output_state(term_state) # self.output_edges.append(edge) diff --git a/comsdk/parser.py b/comsdk/parser.py index 2990e5a82fe479f37998a7de7880018a0f05b44d..4be8318ebc1bd03f6cbc16c5bde312fa554c22f8 100644 --- a/comsdk/parser.py +++ b/comsdk/parser.py @@ -209,7 +209,7 @@ class Parser(): self.fact.add_state(right[0]) if len(spl)==4: pr =self._param_from_props(spl[3]) - self.fact.add_connection(left[0], right[0], pr.morphism) + self.fact.add_connection(left[0], right[0], pr.morphism, ordr=pr.order if pr.order is not None else 0) elif len(spl)==3: self.fact.add_connection(left[0], right[0], None) diff --git a/test.adot b/test.adot index 87e5eb19bd8729be2e61ecd2c700b22502384374..d12305a343fd20c0bf16635f0f8f0d1df550c3cf 100644 --- a/test.adot +++ b/test.adot @@ -37,6 +37,6 @@ digraph CODEOBJECT_GENERATOR CONTENT_SUBSTITUTED -> RESULT_SAVED [morphism=EDGE_5,comment="test comment to cpp"] // В зависимости от результата вычисления функции-SELECTOR осуществляется переход по //первому или второму ребру - RESULT_SAVED, DUMP_CREATED -> __END__ [morphism=(EDGE_8, EDGE_9)] + RESULT_SAVED -> __END__ [morphism=EDGE_8, order=(40)] RESULT_SAVED -> INPUT_READY,FAKE,__END__ [selector=SELECTOR, morphism=(EDGE_6,EDGE_1,EDGE_7), order=(30,20,10)] }