Revision control

++ <?xml version="1.0" encoding="UTF-8"?>
++ <!--
++ Copyright 2011-2012 Jacob Beard, INFICON, and other SCION contributors
++
++ Licensed under the Apache License, Version 2.0 (the "License");
++ you may not use this file except in compliance with the License.
++ You may obtain a copy of the License at
++
++
++ Unless required by applicable law or agreed to in writing, software
++ distributed under the License is distributed on an "AS IS" BASIS,
++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ See the License for the specific language governing permissions and
++ limitations under the License.
++ -->
++ <scxml
++ datamodel="ecmascript"
++ version="1.0">
++
++ <datamodel>
++ <data id="x"/>
++ </datamodel>
++
++ <state id="a">
++ <onentry>
++ <!-- first -1 will be assigned to the datamodel. then, in the same small-step, this will be overridden by the 99 -->
++ <assign location="x" expr="-1"/>
++ <assign location="x" expr="99"/>
++ </onentry>
++
++ <!-- in order for this transition to be taken, a must be updated immediately, in the same small-step -->
++ <transition event="t" target="b" cond="x === 99">
++ <assign location="x" expr="x + 1"/>
++ </transition>
++ </state>
++
++ <state id="b">
++ <!-- use regular assignment syntax, assuming datamodel variables are in script scope -->
++ <onentry>
++ <script>
++ x *= 2;
++ </script>
++ </onentry>
++
++ <transition target="c" cond="x === 200"/>
++ <transition target="f"/>
++ </state>
++
++ <state id="c"/>
++
++ <state id="f"/>
++
++
++ </scxml>