multi_conformance.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import sys
  2. sys.path.append("wrappers")
  3. from modelverse import *
  4. init()
  5. login("admin", "admin")
  6. mm = \
  7. """
  8. include "primitives.alh"
  9. SimpleAttribute integer {
  10. constraint = $
  11. Boolean function constraint(value : Element):
  12. return is_physical_int(value)!
  13. $
  14. }
  15. SimpleAttribute string {
  16. constraint = $
  17. Boolean function constraint(value : Element):
  18. return is_physical_string(value)!
  19. $
  20. }
  21. Class A {
  22. d : integer
  23. }
  24. Class B {
  25. d : string
  26. }
  27. Class C {}
  28. Inheritance (C, A) {}
  29. Inheritance (C, B) {}
  30. """
  31. model_string = \
  32. """
  33. C {
  34. d = "a"
  35. }
  36. """
  37. model_integer = \
  38. """
  39. C {
  40. d = 1
  41. }
  42. """
  43. model_add("formalisms/simple_mm", "formalisms/SimpleClassDiagrams", mm)
  44. model_add("models/model_string", "formalisms/simple_mm", model_string)
  45. model_add("models/model_integer", "formalisms/simple_mm", model_integer)
  46. transformation_add_AL({"model": "formalisms/simple_mm", "metamodel": "formalisms/SimpleClassDiagrams", "type_mapping": "formalisms/TypeMapping"}, {}, "models/conformance_AToMPM", open("models/Conformance/AToMPM.alc", 'r').read())
  47. #transformation_add_AL({"model": "formalisms/simple_mm", "metamodel": "formalisms/SimpleClassDiagrams", "type_mapping": "formalisms/TypeMapping"}, {}, "models/conformance_MetaDepth", open("models/Conformance/MetaDepth.alc", 'r').read())
  48. print(model_types("models/model_string"))
  49. #print(verify("models/model_string", "formalisms/simple_mm", "models/conformance_AToMPM"))
  50. transformation_execute_AL("models/conformance_AToMPM", {"model": "models/model_integer", "metamodel": "formalisms/simple_mm", "type_mapping": model_types("models/model_integer").pop()[1]}, {})
  51. #print(verify("models/model_integer", "formalisms/simple_mm", "models/conformance_AToMPM"))
  52. #print(verify("models/model_string", "formalisms/simple_mm", "models/conformance_MetaDepth"))
  53. #print(verify("models/model_integer", "formalisms/simple_mm", "models/conformance_MetaDepth"))