Exemple #1
0
def get_or(x, y):
    global count
    node_xinitial = x.get_initial()
    node_xfinal = x.get_final()

    node_yinitial = y.get_initial()
    node_yfinal = y.get_final()

    node_xinitial.category = 'incremental'
    node_xfinal.category = 'incremental'
    node_yinitial.category = 'incremental'
    node_yfinal.category = 'incremental'

    for y in y.nodes:
        x.add_node(y)

    node_initial = Node(count, 'initial')
    count += 1
    node_final = Node(count, 'final')
    count += 1

    node_initial.add_edge(Edge(node_initial, node_xinitial, EMPTY_STATE))
    node_initial.add_edge(Edge(node_initial, node_yinitial, EMPTY_STATE))

    node_xfinal.add_edge(Edge(node_xfinal, node_final, EMPTY_STATE))
    node_yfinal.add_edge(Edge(node_yfinal, node_final, EMPTY_STATE))

    x.add_node(node_initial)
    x.add_node(node_final)

    return x
Exemple #2
0
def get_graph_letter(letter):
    global count
    graph = Graph()

    node1 = Node(count, 'initial')
    count += 1
    node2 = Node(count, 'final')
    count += 1

    node1.add_edge(Edge(node1, node2, letter))

    graph.add_node(node1)
    graph.add_node(node2)

    return get_initial_final(graph)
Exemple #3
0
def get_initial_final(graph):
    global count

    initial = graph.get_initial()
    initial.category = 'incremental'

    final = graph.get_final()
    final.category = 'incremental'

    node_initial = Node(count, 'initial')
    count += 1
    node_initial.add_edge(Edge(node_initial, initial, EMPTY_STATE))
    node_final = Node(count, 'final')
    count += 1
    final.add_edge(Edge(final, node_final, EMPTY_STATE))

    graph.add_node(node_initial)
    graph.add_node(node_final)

    return graph
Exemple #4
0
def get_cline(x):
    global count
    node_xinitial = x.get_initial()
    node_xinitial.category = 'incremental'
    node_xfinal = x.get_final()
    node_xfinal.category = 'incremental'

    node_xfinal.add_edge(Edge(node_xfinal, node_xinitial, EMPTY_STATE))

    node_initial = Node(count, 'initial')
    count += 1
    node_final = Node(count, 'final')
    count += 1

    node_initial.add_edge(Edge(node_initial, node_xinitial, EMPTY_STATE))
    node_initial.add_edge(Edge(node_initial, node_final, EMPTY_STATE))
    node_xfinal.add_edge(Edge(node_xfinal, node_final, EMPTY_STATE))

    x.add_node(node_initial)
    x.add_node(node_final)

    return x