minimal_SCCD.mvc 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. include "primitives.alh"
  2. Diagram my_SCCD {
  3. name = "SimpleSCCD"
  4. author = "Yentl"
  5. }
  6. Class main {
  7. name = "Main"
  8. default = True
  9. }
  10. Attribute attr_a {
  11. name = "a"
  12. }
  13. Attribute attr_b {
  14. name = "b"
  15. }
  16. class_attributes (main, attr_a) {}
  17. class_attributes (main, attr_b) {}
  18. CompositeState main_statechart {
  19. name = "root"
  20. isInitial = True
  21. {composite_children} BasicState init {
  22. name = "initial"
  23. isInitial = True
  24. }
  25. {composite_children} ParallelState main_parallel {
  26. name = "parallel"
  27. isInitial = False
  28. {parallel_children} CompositeState parallel_x {
  29. {composite_children} BasicState x_a {
  30. name = "xa"
  31. isInitial = True
  32. }
  33. {composite_children} BasicState x_b {
  34. name = "xb"
  35. isInitial = False
  36. }
  37. {composite_children} BasicState x_c {
  38. name = "xc"
  39. isInitial = False
  40. }
  41. }
  42. {parallel_children} CompositeState parallel_y {
  43. {composite_children} BasicState y_a {
  44. name = "ya"
  45. isInitial = True
  46. }
  47. {composite_children} BasicState y_b {
  48. name = "yb"
  49. isInitial = False
  50. }
  51. }
  52. }
  53. }
  54. transition (x_a, x_b) {
  55. name = "X"
  56. event = "X"
  57. script = $
  58. Void function script(attributes : Element):
  59. log("In script")
  60. dict_overwrite(attributes, "a", 1)
  61. dict_overwrite(attributes, "b", 2)
  62. return!
  63. $
  64. }
  65. transition (x_b, x_c) {
  66. name = "Z"
  67. cond = $
  68. Boolean function cond(attributes : Element):
  69. log("In condition")
  70. return integer_lt(attributes["a"], attributes["b"])!
  71. $
  72. }
  73. transition (y_a, y_b) {
  74. name = "Y"
  75. event = "Y"
  76. }
  77. transition (init, main_parallel) {
  78. name = "init"
  79. event = "init"
  80. }
  81. diagram_classes (my_SCCD, main) {}
  82. behaviour (main, main_statechart) {}