summaryrefslogtreecommitdiffstats
path: root/src/uscxml
diff options
context:
space:
mode:
authorJens Heuschkel <heuschkel@tk.tu-darmstadt.de>2016-11-17 17:02:24 (GMT)
committerJens Heuschkel <heuschkel@tk.tu-darmstadt.de>2016-11-17 17:02:24 (GMT)
commit67677c3ba75c487bc0f06ea6c683c5c187f8da17 (patch)
treeaabc02dfaf752aad2516df4434e39d3062b6ce80 /src/uscxml
parentf56d30b7e681effeea3656791961db7481e10ad9 (diff)
parente8e1198f23aebe829eefe7d109ad7b0765c07306 (diff)
downloaduscxml-67677c3ba75c487bc0f06ea6c683c5c187f8da17.zip
uscxml-67677c3ba75c487bc0f06ea6c683c5c187f8da17.tar.gz
uscxml-67677c3ba75c487bc0f06ea6c683c5c187f8da17.tar.bz2
Merge branch 'master' of github.com:tklab-tud/uscxml
Diffstat (limited to 'src/uscxml')
-rw-r--r--src/uscxml/transform/ChartToPromela.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/uscxml/transform/ChartToPromela.cpp b/src/uscxml/transform/ChartToPromela.cpp
index 9a8b999..a6aeaa0 100644
--- a/src/uscxml/transform/ChartToPromela.cpp
+++ b/src/uscxml/transform/ChartToPromela.cpp
@@ -1500,10 +1500,10 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << " fi" << std::endl;
stream << std::endl;
- stream << " d_step { skip;" << std::endl;
-
stream << "/* ---------------------------- */" << std::endl;
stream << _prefix << "SELECT_TRANSITIONS:" << std::endl;
+ stream << "d_step {" << std::endl;
+
stream << _prefix << "STATES_CLEAR(" << _prefix << "ctx.target_set)" << std::endl;
stream << _prefix << "STATES_CLEAR(" << _prefix << "ctx.exit_set)" << std::endl;
@@ -1670,7 +1670,9 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << " }" << std::endl;
stream << " fi" << std::endl;
stream << std::endl;
+ stream << "} /* d_step */" << std::endl;
+
stream << " if" << std::endl;
stream << " :: " << _prefix << "flags[USCXML_CTX_TRANSITION_FOUND] -> {" << std::endl;
stream << " /* only process anything if we found transitions or are on initial entry */" << std::endl;
@@ -1678,6 +1680,7 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << "/* ---------------------------- */" << std::endl;
stream << "/* REMEMBER_HISTORY: */" << std::endl;
+ stream << "d_step {" << std::endl;
TRACE_EXECUTION("Save history configurations");
stream << " if" << std::endl;
@@ -1759,11 +1762,13 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << " }" << std::endl;
stream << " :: else -> skip;" << std::endl;
stream << " fi;" << std::endl;
+ stream << "} /* d_step */" << std::endl;
stream << std::endl;
stream << "/* ---------------------------- */" << std::endl;
stream << _prefix << "ESTABLISH_ENTRY_SET:" << std::endl;
+ stream << "d_step {" << std::endl;
stream << " /* calculate new entry set */" << std::endl;
stream << " " << _prefix << "STATES_COPY(" << _prefix << "ctx.entry_set, " << _prefix << "ctx.target_set)" << std::endl;
stream << std::endl;
@@ -2024,9 +2029,11 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << "printf(\"\\n\");" << std::endl;
stream << "#endif" << std::endl;
stream << std::endl;
+ stream << "} /* d_step */" << std::endl;
stream << "/* ---------------------------- */" << std::endl;
stream << "/* EXIT_STATES: */" << std::endl;
+ stream << "d_step {" << std::endl;
stream << " i = " << _prefix << "USCXML_NUMBER_STATES;" << std::endl;
stream << " do" << std::endl;
stream << " :: i > 0 -> {" << std::endl;
@@ -2060,6 +2067,7 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << " }" << std::endl;
stream << " :: else -> break;" << std::endl;
stream << " od;" << std::endl;
+// stream << "} /* d_step */" << std::endl;
stream << std::endl;
// TRACE_EXECUTION("Exited States")
@@ -2067,6 +2075,7 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << "/* ---------------------------- */" << std::endl;
stream << "/* TAKE_TRANSITIONS: */" << std::endl;
if (_transitions.size() > 0) {
+// stream << "d_step {" << std::endl;
stream << " i = 0;" << std::endl;
stream << " do" << std::endl;
stream << " :: i < " << _prefix << "USCXML_NUMBER_TRANS -> {" << std::endl;
@@ -2096,11 +2105,13 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << " }" << std::endl;
stream << " :: else -> break;" << std::endl;
stream << " od;" << std::endl;
+// stream << "} /* d_step */" << std::endl;
}
stream << std::endl;
stream << "/* ---------------------------- */" << std::endl;
stream << "/* ENTER_STATES: */" << std::endl;
+// stream << "d_step {" << std::endl;
stream << " i = 0;" << std::endl;
stream << " do" << std::endl;
stream << " :: i < " << _prefix << "USCXML_NUMBER_STATES -> {" << std::endl;
@@ -2327,15 +2338,18 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << " }" << std::endl;
stream << " :: else -> break;" << std::endl;
stream << " od;" << std::endl;
+ stream << "} /* d_step */" << std::endl;
+
stream << " }" << std::endl;
stream << " :: else -> skip;" << std::endl;
stream << " fi" << std::endl;
- stream << "} }" << std::endl;
+ stream << "}" << std::endl;
stream << ":: else -> break;" << std::endl;
stream << "od" << std::endl;
stream << std::endl;
stream << "/* ---------------------------- */" << std::endl;
stream << _prefix << "TERMINATE_MACHINE:" << std::endl;
+ stream << "skip; d_step {" << std::endl;
TRACE_EXECUTION("Machine finished");
@@ -2390,6 +2404,7 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << "}" << std::endl;
stream << ":: else -> break;" << std::endl;
stream << "od;" << std::endl;
+
stream << std::endl;
if (_machinesAll->size() > 1 && _analyzer->usesEventField("delay")) {
@@ -2430,7 +2445,8 @@ void ChartToPromela::writeFSM(std::ostream& stream) {
stream << std::endl;
}
-
+ stream << "} /* d_step */" << std::endl;
+
stream << std::endl;
TRACE_EXECUTION("Done");