Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Franck Pommereau
/
snakes
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Franck Pommereau
2015-01-12 09:40:01 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6cac6bbb4203c8e1df4db0bc726258018d435816
6cac6bbb
1 parent
32eb0848
reomved unwanted file
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
53 deletions
cinzia.py
cinzia.py
deleted
100644 → 0
View file @
32eb084
import
snakes.nets
as
snk
from
snakes.utils.simul
import
BaseSimulator
,
BaseHTTPSimulator
class
CinziaSimulator
(
BaseSimulator
)
:
def
__init__
(
self
,
**
system
)
:
net
=
snk
.
PetriNet
(
"counter machine"
)
for
var
,
spec
in
system
.
items
()
:
init
,
expr
=
spec
.
split
(
":"
,
1
)
system
[
var
]
=
snk
.
Expression
(
expr
)
net
.
add_place
(
snk
.
Place
(
var
,
[
int
(
init
)]))
for
var
,
expr
in
system
.
items
()
:
trans
=
"update_"
+
var
net
.
add_transition
(
snk
.
Transition
(
trans
))
for
v
in
set
(
expr
.
vars
()
+
[
var
])
:
net
.
add_input
(
v
,
trans
,
snk
.
Variable
(
v
))
if
v
==
var
:
net
.
add_output
(
v
,
trans
,
expr
)
else
:
net
.
add_output
(
v
,
trans
,
snk
.
Variable
(
v
))
BaseSimulator
.
__init__
(
self
,
net
)
def
getstate
(
self
,
state
)
:
ret
=
BaseSimulator
.
getstate
(
self
,
state
)
marking
=
self
.
states
[
state
]
ret
[
"variables"
]
=
dict
((
place
,
tokens
.
items
()[
0
])
for
place
,
tokens
in
marking
.
items
())
ret
[
"groups"
]
=
[
"timed"
,
"even"
,
"odd"
]
modes
=
[]
for
i
,
(
trans
,
binding
)
in
enumerate
(
marking
.
modes
)
:
if
(
state
+
i
)
%
5
==
0
:
groups
=
[
"timed"
]
else
:
groups
=
[]
modes
.
append
(
{
"state"
:
state
,
"mode"
:
i
,
"html"
:
"
%
s (
%
s)"
%
(
trans
.
name
[
7
:],
binding
),
"groups"
:
groups
+
[
"odd"
if
(
state
%
2
)
else
"even"
]
})
ret
[
"modes"
]
=
[{
"select"
:
"#modes"
,
"items"
:
modes
}]
return
ret
class
CinziaHTTPSimulator
(
BaseHTTPSimulator
)
:
def
__init__
(
self
,
**
system
)
:
simul
=
CinziaSimulator
(
**
system
)
BaseHTTPSimulator
.
__init__
(
self
,
simulator
=
simul
)
if
__name__
==
"__main__"
:
import
sys
,
webbrowser
system
=
dict
(
a
.
split
(
"="
,
1
)
for
a
in
sys
.
argv
[
1
:])
simul
=
CinziaHTTPSimulator
(
**
system
)
simul
.
start
()
webbrowser
.
open
(
simul
.
url
)
simul
.
wait
()
Please
register
or
login
to post a comment