test_recursion.xml 833 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?xml version="1.0" ?>
  2. <test>
  3. <statechart>
  4. <datamodel><![CDATA[
  5. factorial = func(i:int) {
  6. return 0;
  7. };
  8. factorial = func(i:int) {
  9. if (i <= 0) return 1;
  10. return i*factorial(i-1);
  11. };
  12. ok = factorial(14) == 87178291200;
  13. ]]></datamodel>
  14. <inport name="in">
  15. <event name="start"/>
  16. </inport>
  17. <outport name="out">
  18. <event name="ok"/>
  19. </outport>
  20. <root initial="ready">
  21. <state id="ready">
  22. <transition cond="ok" target="../final">
  23. <raise port="out" event="ok"/>
  24. </transition>
  25. </state>
  26. <state id="final"/>
  27. </root>
  28. </statechart>
  29. <input>
  30. <event port="in" name="start" time="0 d"/>
  31. </input>
  32. <output>
  33. <big_step>
  34. <event port="out" name="ok"/>
  35. </big_step>
  36. </output>
  37. </test>