def getOr(x, y): global count nodeXinitial = x.getInitial() nodeXfinal = x.getFinal() nodeYinitial = y.getInitial() nodeYfinal = y.getFinal() nodeXinitial.category = 'incremental' nodeXfinal.category = 'incremental' nodeYinitial.category = 'incremental' nodeYfinal.category = 'incremental' for y in y.getNodes(): x.addNode(y) node_initial = Node(count, 'initial') count += 1 node_final = Node(count, 'final') count += 1 node_initial.addEdge(Edge(node_initial, nodeXinitial, 'ε')) node_initial.addEdge(Edge(node_initial, nodeYinitial, 'ε')) nodeXfinal.addEdge(Edge(nodeXfinal, node_final, 'ε')) nodeYfinal.addEdge(Edge(nodeYfinal, node_final, 'ε')) x.addNode(node_initial) x.addNode(node_final) return x
def getGraphLetter(letter): global count graph = Graph() node1 = Node(count, 'initial') count += 1 node2 = Node(count, 'final') count += 1 node1.addEdge(Edge(node1, node2, letter)) graph.addNode(node1) graph.addNode(node2) return getInitialFinal(graph)
def getInitialFinal(graph): global count initial = graph.getInitial() initial.category = 'incremental' final = graph.getFinal() final.category = 'incremental' node_initial = Node(count, 'initial') count += 1 node_initial.addEdge(Edge(node_initial, initial, 'ε')) node_final = Node(count, 'final') count += 1 node_final.addEdge(Edge(final, node_final, 'ε')) graph.addNode(node_initial) graph.addNode(node_final) return graph
def getCline(x): global count nodeXinitial = x.getInitial() nodeXinitial.category = 'incremental' nodeXfinal = x.getFinal() nodeXfinal.category = 'incremental' nodeXfinal.addEdge(Edge(nodeXfinal, nodeXinitial, 'ε')) node_initial = Node(count, 'initial') count += 1 node_final = Node(count, 'final') count += 1 node_initial.addEdge(Edge(node_initial, nodeXinitial, 'ε')) node_initial.addEdge(Edge(node_initial, node_final, 'ε')) nodeXfinal.addEdge(Edge(nodeXfinal, node_final, 'ε')) x.addNode(node_initial) x.addNode(node_final) return x