Example #1
0
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
Example #2
0
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)
Example #3
0
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
Example #4
0
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