summaryrefslogtreecommitdiffstats
path: root/examples/calc/calc.scxml
diff options
context:
space:
mode:
authorNoam Rosenthal <nrosenth@nokia.com>2009-06-08 12:28:41 -0700
committerNoam Rosenthal <nrosenth@nokia.com>2009-06-08 12:28:41 -0700
commit7a41ce5b7a595c67c16ae5ef1711927623602b6a (patch)
tree5a6917940daa31c04f21bbb67417504674b6418a /examples/calc/calc.scxml
parentd0441f605434a89b53735427e4e81182c65debbd (diff)
some missing files
Diffstat (limited to 'examples/calc/calc.scxml')
-rw-r--r--examples/calc/calc.scxml215
1 files changed, 106 insertions, 109 deletions
diff --git a/examples/calc/calc.scxml b/examples/calc/calc.scxml
index 35a9b9e..ec732c7 100644
--- a/examples/calc/calc.scxml
+++ b/examples/calc/calc.scxml
@@ -1,6 +1,3 @@
-<!-- http://www.state-machine.com/devzone/Recipe_DesigningHSM.pdf -->
-<!-- events: OPER.PLUS OPER.MINUS OPER.MULTIPLY OPER.DIVIDE DIGIT.0 DIGIT.1_9 EQUALS CE C POINT -
--->
<scxml
initial="on" profile="ecma" name="calc">
<script>
@@ -70,26 +67,26 @@
<datamodel>
<data id="long_expr" />
<data id="res" >0</data>
- </datamodel>
+ </datamodel>
<onentry>
- <script>
+ <script>
var short_expr = 0;
_data.res = 0;
_data.long_expr = "";
updateDisplay();
- </script>
- </onentry>
- <state id="ready" initial="begin">
- <state id="begin">
- <transition event="OPER.MINUS" target="negated1" />
- <onentry>
- <script>
- updateDisplay ();
- </script>
- </onentry>
- </state>
- <state id="result">
- </state>
+ </script>
+ </onentry>
+ <state id="ready" initial="begin">
+ <state id="begin">
+ <transition event="OPER.MINUS" target="negated1" />
+ <onentry>
+ <script>
+ updateDisplay ();
+ </script>
+ </onentry>
+ </state>
+ <state id="result">
+ </state>
<transition event="OPER" target="opEntered" />
<transition event="DIGIT.0" target="zero1">
<script>
@@ -107,107 +104,107 @@
</script>
</transition>
</state>
- <state id="negated1">
- <onentry>
- <script>
- negate ();
- </script>
- </onentry>
- <transition event="DIGIT.0" target="zero1" />
+ <state id="negated1">
+ <onentry>
+ <script>
+ negate ();
+ </script>
+ </onentry>
+ <transition event="DIGIT.0" target="zero1" />
<transition event="DIGIT" target="int1" />
- <transition event="POINT" target="frac1" />
- </state>
- <state id="operand1">
- <state id="zero1">
+ <transition event="POINT" target="frac1" />
+ </state>
+ <state id="operand1">
+ <state id="zero1">
<transition event="DIGIT" cond="_event.name != 'DIGIT.0'" target="int1" />
- <transition event="POINT" target="frac1" />
- </state>
- <state id="int1">
- <transition event="POINT" target="frac1" />
+ <transition event="POINT" target="frac1" />
+ </state>
+ <state id="int1">
+ <transition event="POINT" target="frac1" />
<transition event="DIGIT">
- <script>
- insertDigit ();
- </script>
- </transition>
- <onentry>
- <script>
- insertDigit ();
- </script>
- </onentry>
- </state>
- <state id="frac1">
- <onentry>
- <script>
- insert ('.');
- </script>
- </onentry>
+ <script>
+ insertDigit ();
+ </script>
+ </transition>
+ <onentry>
+ <script>
+ insertDigit ();
+ </script>
+ </onentry>
+ </state>
+ <state id="frac1">
+ <onentry>
+ <script>
+ insert ('.');
+ </script>
+ </onentry>
<transition event="DIGIT">
- <script>
- insertDigit ();
- </script>
- </transition>
- </state>
- <transition event="CE" target="ready" />
+ <script>
+ insertDigit ();
+ </script>
+ </transition>
+ </state>
+ <transition event="CE" target="ready" />
<transition event="OPER" target="opEntered" />
- </state>
- <state id="error" />
- <state id="opEntered">
- <transition event="OPER.MINUS" target="negated2" />
- <transition event="POINT" target="frac2" />
- <transition event="DIGIT.0" target="zero2" />
+ </state>
+ <state id="error" />
+ <state id="opEntered">
+ <transition event="OPER.MINUS" target="negated2" />
+ <transition event="POINT" target="frac2" />
+ <transition event="DIGIT.0" target="zero2" />
<transition event="DIGIT" target="int2" />
- <onentry>
- <script>
- insertOp ();
- </script>
- </onentry>
- </state>
- <state id="negated2">
- <onentry>
- <script>
- negate ();
- </script>
- </onentry>
- <transition event="CE" target="opEntered" />
- <transition event="DIGIT.0" target="zero2" />
+ <onentry>
+ <script>
+ insertOp ();
+ </script>
+ </onentry>
+ </state>
+ <state id="negated2">
+ <onentry>
+ <script>
+ negate ();
+ </script>
+ </onentry>
+ <transition event="CE" target="opEntered" />
+ <transition event="DIGIT.0" target="zero2" />
<transition event="DIGIT" target="int2" />
- <transition event="POINT" target="frac2" />
- </state>
- <state id="operand2">
- <state id="zero2">
+ <transition event="POINT" target="frac2" />
+ </state>
+ <state id="operand2">
+ <state id="zero2">
<transition event="DIGIT" cond="_event.name != 'DIGIT.0'" target="int2" />
- <transition event="POINT" target="frac2" />
- </state>
- <state id="int2">
+ <transition event="POINT" target="frac2" />
+ </state>
+ <state id="int2">
<transition event="DIGIT">
- <script>
- insertDigit ();
- </script>
- </transition>
- <onentry>
- <script>
- insertDigit ();
- </script>
- </onentry>
- <transition event="POINT" target="frac2" />
- </state>
- <state id="frac2">
- <onentry>
- <script>
- insert ('.');
- </script>
- </onentry>
+ <script>
+ insertDigit ();
+ </script>
+ </transition>
+ <onentry>
+ <script>
+ insertDigit ();
+ </script>
+ </onentry>
+ <transition event="POINT" target="frac2" />
+ </state>
+ <state id="frac2">
+ <onentry>
+ <script>
+ insert ('.');
+ </script>
+ </onentry>
<transition event="DIGIT">
- <script>
- insertDigit ();
- </script>
- </transition>
- </state>
+ <script>
+ insertDigit ();
+ </script>
+ </transition>
+ </state>
<transition event="OPER" cond="!insertOp()" target="error" />
<transition event="OPER" target="opEntered" />
- <transition event="EQUALS" cond="!calc()" target="error" />
- <transition event="EQUALS" target="result" />
- </state>
- <transition event="C" target="on" />
- </state>
+ <transition event="EQUALS" cond="!calc()" target="error" />
+ <transition event="EQUALS" target="result" />
+ </state>
+ <transition event="C" target="on" />
+ </state>
</scxml>