Franck Pommereau

reomved unwanted file

Showing 1 changed file with 0 additions and 53 deletions
1 -import snakes.nets as snk
2 -from snakes.utils.simul import BaseSimulator, BaseHTTPSimulator
3 -
4 -class CinziaSimulator (BaseSimulator) :
5 - def __init__ (self, **system) :
6 - net = snk.PetriNet("counter machine")
7 - for var, spec in system.items() :
8 - init, expr = spec.split(":", 1)
9 - system[var] = snk.Expression(expr)
10 - net.add_place(snk.Place(var, [int(init)]))
11 - for var, expr in system.items() :
12 - trans = "update_" + var
13 - net.add_transition(snk.Transition(trans))
14 - for v in set(expr.vars() + [var]) :
15 - net.add_input(v, trans, snk.Variable(v))
16 - if v == var :
17 - net.add_output(v, trans, expr)
18 - else :
19 - net.add_output(v, trans, snk.Variable(v))
20 - BaseSimulator.__init__(self, net)
21 - def getstate (self, state) :
22 - ret = BaseSimulator.getstate(self, state)
23 - marking = self.states[state]
24 - ret["variables"] = dict((place, tokens.items()[0])
25 - for place, tokens in marking.items())
26 - ret["groups"] = ["timed", "even", "odd"]
27 - modes = []
28 - for i, (trans, binding) in enumerate(marking.modes) :
29 - if (state + i) % 5 == 0 :
30 - groups = ["timed"]
31 - else :
32 - groups = []
33 - modes.append(
34 - {"state" : state,
35 - "mode" : i,
36 - "html" : "%s (%s)" % (trans.name[7:], binding),
37 - "groups" : groups + ["odd" if (state % 2) else "even"]
38 - })
39 - ret["modes"] = [{"select": "#modes", "items": modes}]
40 - return ret
41 -
42 -class CinziaHTTPSimulator (BaseHTTPSimulator) :
43 - def __init__ (self, **system) :
44 - simul = CinziaSimulator(**system)
45 - BaseHTTPSimulator.__init__(self, simulator=simul)
46 -
47 -if __name__ == "__main__" :
48 - import sys, webbrowser
49 - system = dict(a.split("=", 1) for a in sys.argv[1:])
50 - simul = CinziaHTTPSimulator(**system)
51 - simul.start()
52 - webbrowser.open(simul.url)
53 - simul.wait()