From fd3ed6c4ed94aa69ac435962aa0edc6ba4894076 Mon Sep 17 00:00:00 2001 From: deadsmond <01.lewicki@gmail.com> Date: Mon, 25 Nov 2019 19:43:20 +0100 Subject: [PATCH] 'hm' --- TaskB01/run | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/TaskB01/run b/TaskB01/run index 72bf857..40efef8 100644 --- a/TaskB01/run +++ b/TaskB01/run @@ -7,7 +7,7 @@ class automata: # class variables init def __init__(self): # dictionary of connections between nodes - self.storage = {} + self.graph = {} # list of accepting states self.accepting_states = [] # list of current states @@ -15,18 +15,18 @@ class automata: # print for debug purposes def __repr__(self): - return('%s\n\n%s\n\n%s\n\n' % (self.storage, self.accepting_states, self.state)) + return('%s\n\n%s\n\n%s\n\n' % (self.graph, self.accepting_states, self.state)) # add node in open fst format def add_node(self, line): node = line.replace('\n', '').split(' ') if len(node) == 3: - if node[0] in self.storage: + if node[0] in self.graph: # add value to existing node - self.storage[node[0]].append({node[2]: node[1]}) + self.graph[node[0]].append({node[2]: node[1]}) else: # create new node - self.storage[node[0]] = [{node[2]: node[1]}] + self.graph[node[0]] = [{node[2]: node[1]}] elif len(node) == 1: # add accepting state self.accepting_states.append(node[0]) @@ -50,7 +50,18 @@ class automata: return not set(self.state).isdisjoint(self.accepting_states) def get_node_transition(self, q, i): - return [] if not self.storage[q][i] else self.storage[q][i] + result = [] + # if the node exists + if self.graph[q]: + # search through all its connections to find value + for transition in self.graph[q]: + print(transition) + # if value is like searched for + if transition[0] == i: + # append next node + result.append(transition[1]) + # return list of next nodes + return result auto = automata()