environment_to_EPN.mvc 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. include "primitives.alh"
  2. A B {
  3. Composite schedule {
  4. {Contains} Success success {}
  5. {Contains} Failure failure {}
  6. {Contains} ForAll create_ports {
  7. LHS {
  8. Pre_Environment_PW/Event {
  9. label = "1"
  10. }
  11. }
  12. RHS {
  13. Post_Environment_PW/Event {
  14. label = "1"
  15. }
  16. Post_Encapsulated_PetriNet/Place cp_place {
  17. label = "2"
  18. value_name = $
  19. String function value(model : Element, name : String, mapping : Element):
  20. return read_attribute(model, mapping["0"], "name")!
  21. $
  22. }
  23. Post_Encapsulated_PetriNet/Port cp_port {
  24. label = "3"
  25. value_name = $
  26. String function value(model : Element, name : String, mapping : Element):
  27. return read_attribute(model, mapping["0"], "name")!
  28. $
  29. }
  30. Post_ENV2EPN_link (cp_evt, cp_place) {
  31. label = "4"
  32. }
  33. Post_Encapsulated_PetriNet/PortPlace (cp_port, cp_place) {
  34. label = "5"
  35. value_tokens = $
  36. Integer value(model : Element, name : String, mapping : Element):
  37. return 0!
  38. $
  39. }
  40. }
  41. }
  42. {Contains} ForAll create_switches {
  43. LHS {
  44. Pre_Environment_PW/Group pre_grp {
  45. label = "1"
  46. }
  47. Pre_Environment_PW/Event pre_evt_a {
  48. label = "2"
  49. }
  50. Pre_Environment_PW/Event pre_evt_b {
  51. label = "3"
  52. }
  53. Pre_Environment_PW/Contains (pre_grp, pre_evt_a) {
  54. label = "4"
  55. }
  56. Pre_Environment_PW/Contains (pre_grp, pre_evt_b) {
  57. label = "5"
  58. }
  59. Pre_ENV2EPN_link (pre_evt_a, pre_place_a) {
  60. label = "6"
  61. }
  62. Pre_ENV2EPN_link (pre_evt_b, pre_place_b) {
  63. label = "7"
  64. }
  65. Pre_Encapsulated_PetriNet/Place pre_place_a {
  66. label = "8"
  67. }
  68. Pre_Encapsulated_PetriNet/Place pre_place_b {
  69. label = "9"
  70. }
  71. }
  72. RHS {
  73. Post_Environment_PW/Group post_grp {
  74. label = "1"
  75. }
  76. Post_Environment_PW/Event post_evt_a {
  77. label = "2"
  78. }
  79. Post_Environment_PW/Event post_evt_b {
  80. label = "3"
  81. }
  82. Post_Environment_PW/Contains (post_grp, post_evt_a) {
  83. label = "4"
  84. }
  85. Post_Environment_PW/Contains (post_grp, post_evt_b) {
  86. label = "5"
  87. }
  88. Post_ENV2EPN_link (post_evt_a, post_place_a) {
  89. label = "6"
  90. }
  91. Post_ENV2EPN_link (post_evt_b, post_place_b) {
  92. label = "7"
  93. }
  94. Post_Encapsulated_PetriNet/Place post_place_a {
  95. label = "8"
  96. }
  97. Post_Encapsulated_PetriNet/Place post_place_b {
  98. label = "9"
  99. }
  100. Post_Encapsulated_PetriNet/P2T (post_place_a, post_transition) {
  101. label = "10"
  102. }
  103. Post_Encapsulated_PetriNet/T2P (post_transition, post_place_b) {
  104. label = "11"
  105. }
  106. Post_Encapsulated_PetriNet/Transition post_transition {
  107. label = "12"
  108. }
  109. }
  110. }
  111. }
  112. Initial (schedule, create_ports) {}
  113. OnSuccess (create_ports, create_switches) {}
  114. OnSuccess (create_switches, success) {}
  115. OnFailure (create_ports, failure) {}
  116. OnFailure (create_switches, failure) {}
  117. }