00_source_parent.xml 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?xml version="1.0" ?>
  2. <diagram
  3. xmlns="msdl.uantwerpen.be/sccd"
  4. author="Joeri Exelmans"
  5. name="source_parent">
  6. <description>
  7. 'Source Parent' priority-semantics: If 2 transitions are enabled, and the source state of the first is an ancestor of the second, only the first is executed.
  8. </description>
  9. <inport name="in"/>
  10. <outport name="out"/>
  11. <class name="c" default="true">
  12. <scxml initial="parent" priority="source_parent">
  13. <state id="parent" initial="a">
  14. <onentry>
  15. <raise event="entered_parent" port="out"/>
  16. </onentry>
  17. <state id="a">
  18. <onentry>
  19. <raise event="entered_a" port="out"/>
  20. </onentry>
  21. <transition target="../b"/>
  22. </state>
  23. <state id="b">
  24. <onentry>
  25. <raise event="entered_b" port="out"/>
  26. </onentry>
  27. </state>
  28. <transition target="/c"/>
  29. </state>
  30. <state id="c">
  31. <onentry>
  32. <raise event="entered_c" port="out"/>
  33. </onentry>
  34. </state>
  35. </scxml>
  36. </class>
  37. <test>
  38. <expected>
  39. <slot>
  40. <!-- initialization -->
  41. <event name="entered_parent" port="out"/>
  42. <event name="entered_a" port="out"/>
  43. </slot>
  44. <slot>
  45. <!-- big step -->
  46. <event name="entered_c" port="out"/>
  47. </slot>
  48. </expected>
  49. </test>
  50. </diagram>