Ejemplo n.º 1
0
def p_graph(p):
    '''expression : ID '=' ID '.' GRAPH LPAREN ID RPAREN SEMI
                            | ID '=' ID '.' GRAPH LPAREN M0 RPAREN SEMI
                            | ID '=' ID '.' GRAPH LPAREN Hmark RPAREN SEMI'''
    global net
    print 'parser: graph'
    com=list()
    if isinstance(p[7], set): #caso Hmark
        for i in p[7]:
            com.append(net[p[3]].place[i].index)
        
    elif p[7]=='M0': #caso M0
        print net[p[3]].mark.keys()
        for i in net[p[3]].mark['M0']:
            com.append(net[p[3]].place[i].index)
            
    elif p[7] in net[p[3]].mark: #caso marcatura esistente
        for i in net[p[3]].mark[p[7]]:
            com.append(net[p[3]].place[i].index)
    else: 
        print "SYNTAX ERROR: la marca"+p[7]+"non esiste"
    print com
    var[p[1]]=PetriNet.createCaseGraph(net[p[3]].net, com)
a2 = Arc()
a3 = Arc()
a4 = Arc()
a5 = Arc()
a6 = Arc()
a7 = Arc()
a8 = Arc()
a9 = Arc()
a10 = Arc()
a11 = Arc()
a12 = Arc()
t1 = Transition("t1", [a1, a2], [a3])
t2 = Transition("t2", [a4], [a5])
t3 = Transition("t3", [a6], [a7, a8])
t4 = Transition("t4", [a9], [a10])
t5 = Transition("t5", [a11], [a12])
a1.assign_start_end(p2, t1)
a2.assign_start_end(p3, t1)
a3.assign_start_end(t1, p1)
a4.assign_start_end(p1, t2)
a5.assign_start_end(t2, p2)
a6.assign_start_end(p1, t3)
a7.assign_start_end(t3, p2)
a8.assign_start_end(t3, p4)
a9.assign_start_end(p3, t4)
a10.assign_start_end(t4, p4)
a11.assign_start_end(p4, t5)
a12.assign_start_end(t5, p3)

petri = PetriNet([t1, t2, t3, t4, t5])
Ejemplo n.º 3
0
from PetriNet import *

p1 = Place("p1", 0)
p2 = Place("p2", 1)
p3 = Place("p3", 0)
a1 = Arc(3)
a2 = Arc(2)
a3 = Arc()
a4 = Arc()
a5 = Arc()
a6 = Arc()
a7 = Arc()
a8 = Arc()
a9 = Arc()
t1 = Transition("t1", [a2], [a3])
t2 = Transition("t2", [a4], [a5])
t3 = Transition("t3", [a6], [a7])
t4 = Transition("t4", [a8, a9], [a1])
a1.assign_start_end(t4, p1)
a2.assign_start_end(p1, t1)
a3.assign_start_end(t1, p2)
a4.assign_start_end(p2, t2)
a5.assign_start_end(t2, p3)
a6.assign_start_end(p3, t3)
a7.assign_start_end(t3, p2)
a8.assign_start_end(p3, t4)
a9.assign_start_end(p1, t4)

petri = PetriNet([t1, t2, t3, t4])
Ejemplo n.º 4
0
Archivo: test.py Proyecto: dmr/PetriNet
a = Place('a')
b = Place('b')
c = Place('c',5)
d = Place('b')

t1 = Transition('t1')
t2 = Transition('t2')

l1 = Link(a,t1)
l2 = Link(t1,b)

l3 = Link(a,t2)
l4 = Link(t2,d)
l5 = Link(c,t2,5)

m = PetriNet('m')
m.add(a)
m.add(b)
m.add(t1)
m.add(l1)
m.add(l2)
#m.add(Place('m.a'))
n = PetriNet('n')
#n.add(a)
n.add(c)
n.add(d)
n.add(t2)
#n.add(l3)
n.add(l4)
n.add(l5)
#print n