|
|
- // This file is under GNU General Public License 3.0
- // see LICENSE.txt
-
- include yslt.yml2
-
- tstylesheet {
- template "protocol/fsm" document "{@filename}.dot", "text"
- ||
- digraph finite_state_machine {
- rankdir=LR;
- node [shape = doublecircle];
- `apply "state[@end='1']" mode=end`;
- node [shape = circle];
-
- `` apply "state" mode=do
- }
- ||
-
- template "state", mode=end > «@name»
- template "state", mode=do apply "event", 0 with "state", "@name";
-
- template "event" {
- param "state";
- const "transitions", "transition|descendant::condition/transition|descendant::alternative/transition";
- choose {
- when "count($transitions) > 0"
- apply "$transitions", 0
- with "state", "$state", with "event", "@name";
- otherwise
- if "@name != 'Init'"
- | «$state» -> «$state» [ label="«@name»" ];
- }
- }
-
- template "transition" {
- param "state";
- param "event";
-
- | «$state» -> «@target» [ label ="«$event»" ];
- }
- }
-
|