woods.plantuml 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package "DSL Meta-Model" {
  2. class "Bear" as 00000000_0000_0000_0000_00000000046d {
  3. }
  4. abstract class "Animal" as 00000000_0000_0000_0000_000000000474 {
  5. }
  6. class "Man" as 00000000_0000_0000_0000_000000000491 {
  7. weight : Integer
  8. }
  9. 00000000_0000_0000_0000_000000000474 <|-- 00000000_0000_0000_0000_000000000491
  10. 00000000_0000_0000_0000_000000000474 <|-- 00000000_0000_0000_0000_00000000046d
  11. 00000000_0000_0000_0000_000000000491 " " --> "1 .. *" 00000000_0000_0000_0000_000000000474 : afraidOf
  12. }
  13. package "Int Meta-Model" {
  14. class "Integer" as 00000000_0000_0000_0000_000000000094 {
  15. }
  16. }
  17. package "RAMified DSL Meta-Model" {
  18. class "RAM_Bear" as 00000000_0000_0000_0000_0000000005bb {
  19. }
  20. class "RAM_Animal" as 00000000_0000_0000_0000_0000000005c5 {
  21. }
  22. class "RAM_Man" as 00000000_0000_0000_0000_0000000005cf {
  23. RAM_weight : ActionCode
  24. }
  25. 00000000_0000_0000_0000_0000000005c5 <|-- 00000000_0000_0000_0000_0000000005cf
  26. 00000000_0000_0000_0000_0000000005c5 <|-- 00000000_0000_0000_0000_0000000005bb
  27. 00000000_0000_0000_0000_0000000005cf " " --> "0 .. *" 00000000_0000_0000_0000_0000000005c5 : RAM_afraidOf
  28. }
  29. package "RAMified Int Meta-Model" {
  30. class "RAM_Integer" as 00000000_0000_0000_0000_00000000064c {
  31. }
  32. }
  33. 00000000_0000_0000_0000_0000000005bb ..> 00000000_0000_0000_0000_00000000046d #line:green;text:green : RAMifies
  34. 00000000_0000_0000_0000_0000000005c5 ..> 00000000_0000_0000_0000_000000000474 #line:green;text:green : RAMifies
  35. 00000000_0000_0000_0000_0000000005cf ..> 00000000_0000_0000_0000_000000000491 #line:green;text:green : RAMifies
  36. 00000000_0000_0000_0000_0000000005cf::RAM_weight ..> 00000000_0000_0000_0000_000000000491::weight #line:green;text:green : RAMifies
  37. 00000000_0000_0000_0000_00000000064c ..> 00000000_0000_0000_0000_000000000094 #line:green;text:green : RAMifies
  38. package "LHS" {
  39. map "scaryAnimal : RAM_Animal" as 00000000_0000_0000_0000_00000000068a {
  40. }
  41. map "man : RAM_Man" as 00000000_0000_0000_0000_00000000066d {
  42. RAM_weight => `v > 60`
  43. }
  44. 00000000_0000_0000_0000_00000000066d -> 00000000_0000_0000_0000_00000000068a : :RAM_afraidOf
  45. }
  46. 00000000_0000_0000_0000_00000000068a ..> 00000000_0000_0000_0000_0000000005c5 #line:blue;text:blue : instanceOf
  47. 00000000_0000_0000_0000_00000000066d ..> 00000000_0000_0000_0000_0000000005cf #line:blue;text:blue : instanceOf
  48. 00000000_0000_0000_0000_00000000066d::RAM_weight ..> 00000000_0000_0000_0000_0000000005cf::RAM_weight #line:blue;text:blue : instanceOf
  49. package "RHS" {
  50. map "man : RAM_Man" as 00000000_0000_0000_0000_000000000699 {
  51. RAM_weight => `v + 5`
  52. }
  53. map "bill : RAM_Man" as 00000000_0000_0000_0000_0000000006b6 {
  54. RAM_weight => `100`
  55. }
  56. 00000000_0000_0000_0000_0000000006b6 -> 00000000_0000_0000_0000_000000000699 : :RAM_afraidOf
  57. }
  58. 00000000_0000_0000_0000_000000000699 ..> 00000000_0000_0000_0000_0000000005cf #line:blue;text:blue : instanceOf
  59. 00000000_0000_0000_0000_000000000699::RAM_weight ..> 00000000_0000_0000_0000_0000000005cf::RAM_weight #line:blue;text:blue : instanceOf
  60. 00000000_0000_0000_0000_0000000006b6 ..> 00000000_0000_0000_0000_0000000005cf #line:blue;text:blue : instanceOf
  61. 00000000_0000_0000_0000_0000000006b6::RAM_weight ..> 00000000_0000_0000_0000_0000000005cf::RAM_weight #line:blue;text:blue : instanceOf
  62. package "Model (before rewrite)" {
  63. map "bear2 : Bear" as 00000000_0000_0000_0000_000000000597 {
  64. }
  65. map "bear1 : Bear" as 00000000_0000_0000_0000_000000000590 {
  66. }
  67. map "george : Man" as 00000000_0000_0000_0000_000000000573 {
  68. weight => 80
  69. }
  70. 00000000_0000_0000_0000_000000000573 -> 00000000_0000_0000_0000_000000000590 : :afraidOf
  71. 00000000_0000_0000_0000_000000000573 -> 00000000_0000_0000_0000_000000000597 : :afraidOf
  72. }
  73. 00000000_0000_0000_0000_000000000597 ..> 00000000_0000_0000_0000_00000000046d #line:blue;text:blue : instanceOf
  74. 00000000_0000_0000_0000_000000000590 ..> 00000000_0000_0000_0000_00000000046d #line:blue;text:blue : instanceOf
  75. 00000000_0000_0000_0000_000000000573 ..> 00000000_0000_0000_0000_000000000491 #line:blue;text:blue : instanceOf
  76. 00000000_0000_0000_0000_000000000573::weight ..> 00000000_0000_0000_0000_000000000491::weight #line:blue;text:blue : instanceOf
  77. 00000000_0000_0000_0000_00000000068a ..> 00000000_0000_0000_0000_000000000590 #line:red;line.dotted;text:red : matchedWith
  78. 00000000_0000_0000_0000_00000000066d ..> 00000000_0000_0000_0000_000000000573 #line:red;line.dotted;text:red : matchedWith
  79. 00000000_0000_0000_0000_00000000066d::RAM_weight ..> 00000000_0000_0000_0000_000000000573::weight #line:red;line.dotted;text:red : matchedWith
  80. package "Model (after rewrite 0)" {
  81. map "bear2 : Bear" as 00000000_0000_0000_0000_0000000006db {
  82. }
  83. map "george : Man" as 00000000_0000_0000_0000_0000000006e9 {
  84. weight => 85
  85. }
  86. map "bill0 : Man" as 00000000_0000_0000_0000_000000000723 {
  87. weight => 100
  88. }
  89. 00000000_0000_0000_0000_000000000723 -> 00000000_0000_0000_0000_0000000006e9 : :afraidOf
  90. 00000000_0000_0000_0000_0000000006e9 -> 00000000_0000_0000_0000_0000000006db : :afraidOf
  91. }
  92. 00000000_0000_0000_0000_000000000699 ..> 00000000_0000_0000_0000_0000000006e9 #line:red;line.dotted;text:red : matchedWith
  93. 00000000_0000_0000_0000_000000000699::RAM_weight ..> 00000000_0000_0000_0000_0000000006e9::weight #line:red;line.dotted;text:red : matchedWith
  94. 00000000_0000_0000_0000_0000000006b6 ..> 00000000_0000_0000_0000_000000000723 #line:red;line.dotted;text:red : matchedWith
  95. 00000000_0000_0000_0000_0000000006db ..> 00000000_0000_0000_0000_00000000046d #line:blue;text:blue : instanceOf
  96. 00000000_0000_0000_0000_0000000006e9 ..> 00000000_0000_0000_0000_000000000491 #line:blue;text:blue : instanceOf
  97. 00000000_0000_0000_0000_0000000006e9::weight ..> 00000000_0000_0000_0000_000000000491::weight #line:blue;text:blue : instanceOf
  98. 00000000_0000_0000_0000_000000000723 ..> 00000000_0000_0000_0000_000000000491 #line:blue;text:blue : instanceOf
  99. 00000000_0000_0000_0000_000000000723::weight ..> 00000000_0000_0000_0000_000000000491::weight #line:blue;text:blue : instanceOf
  100. 00000000_0000_0000_0000_00000000068a ..> 00000000_0000_0000_0000_000000000597 #line:orange;line.dotted;text:orange : matchedWith
  101. 00000000_0000_0000_0000_00000000066d ..> 00000000_0000_0000_0000_000000000573 #line:orange;line.dotted;text:orange : matchedWith
  102. 00000000_0000_0000_0000_00000000066d::RAM_weight ..> 00000000_0000_0000_0000_000000000573::weight #line:orange;line.dotted;text:orange : matchedWith
  103. package "Model (after rewrite 1)" {
  104. map "bear1 : Bear" as 00000000_0000_0000_0000_000000000747 {
  105. }
  106. map "george : Man" as 00000000_0000_0000_0000_00000000074e {
  107. weight => 85
  108. }
  109. map "bill0 : Man" as 00000000_0000_0000_0000_000000000788 {
  110. weight => 100
  111. }
  112. 00000000_0000_0000_0000_000000000788 -> 00000000_0000_0000_0000_00000000074e : :afraidOf
  113. 00000000_0000_0000_0000_00000000074e -> 00000000_0000_0000_0000_000000000747 : :afraidOf
  114. }
  115. 00000000_0000_0000_0000_000000000699 ..> 00000000_0000_0000_0000_00000000074e #line:orange;line.dotted;text:orange : matchedWith
  116. 00000000_0000_0000_0000_000000000699::RAM_weight ..> 00000000_0000_0000_0000_00000000074e::weight #line:orange;line.dotted;text:orange : matchedWith
  117. 00000000_0000_0000_0000_0000000006b6 ..> 00000000_0000_0000_0000_000000000788 #line:orange;line.dotted;text:orange : matchedWith
  118. 00000000_0000_0000_0000_000000000747 ..> 00000000_0000_0000_0000_00000000046d #line:blue;text:blue : instanceOf
  119. 00000000_0000_0000_0000_00000000074e ..> 00000000_0000_0000_0000_000000000491 #line:blue;text:blue : instanceOf
  120. 00000000_0000_0000_0000_00000000074e::weight ..> 00000000_0000_0000_0000_000000000491::weight #line:blue;text:blue : instanceOf
  121. 00000000_0000_0000_0000_000000000788 ..> 00000000_0000_0000_0000_000000000491 #line:blue;text:blue : instanceOf
  122. 00000000_0000_0000_0000_000000000788::weight ..> 00000000_0000_0000_0000_000000000491::weight #line:blue;text:blue : instanceOf