runner_export_tapaal.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from state.devstate import DevState
  2. from bootstrap.scd import bootstrap_scd
  3. from util import loader
  4. from examples.petrinet.translational_semantics.tapaal.exporter import export_tapaal
  5. if __name__ == "__main__":
  6. import os
  7. THIS_DIR = os.path.dirname(__file__)
  8. # get file contents as string
  9. def read_file(filename):
  10. with open(THIS_DIR+'/'+filename) as file:
  11. return file.read()
  12. state = DevState()
  13. scd_mmm = bootstrap_scd(state)
  14. # Read models from their files
  15. mm_cs = read_file('metamodels/mm_design.od')
  16. mm_rt_cs = mm_cs + read_file('metamodels/mm_runtime.od')
  17. # m_cs = read_file('models/m_example_simple.od')
  18. # m_rt_initial_cs = m_cs + read_file('models/m_example_simple_rt_initial.od')
  19. m_cs = read_file('models/m_example_mutex.od')
  20. m_rt_initial_cs = m_cs + read_file('models/m_example_mutex_rt_initial.od')
  21. # m_cs = read_file('models/m_example_inharc.od')
  22. # m_rt_initial_cs = m_cs + read_file('models/m_example_inharc_rt_initial.od')
  23. # Parse them
  24. mm = loader.parse_and_check(state, mm_cs, scd_mmm, "Petri-Net Design meta-model")
  25. mm_rt = loader.parse_and_check(state, mm_rt_cs, scd_mmm, "Petri-Net Runtime meta-model")
  26. m = loader.parse_and_check(state, m_cs, mm, "Example model")
  27. m_rt_initial = loader.parse_and_check(state, m_rt_initial_cs, mm_rt, "Example model initial state")
  28. with open('exported.tapn', 'w') as f:
  29. f.write(export_tapaal(state, m=m_rt_initial, mm=mm_rt))