48 lines
No EOL
1.5 KiB
Python
48 lines
No EOL
1.5 KiB
Python
from examples.geraniums.renderer import render_geraniums_dot
|
|
from transformation.ramify import ramify
|
|
|
|
from models.eval_context import eval_context
|
|
|
|
from transformation.schedule.rule_scheduler import *
|
|
|
|
if __name__ == "__main__":
|
|
import os
|
|
THIS_DIR = os.path.dirname(__file__)
|
|
|
|
# get file contents as string
|
|
def read_file(filename):
|
|
with open(THIS_DIR+'/'+filename) as file:
|
|
return file.read()
|
|
|
|
|
|
state = DevState()
|
|
scd_mmm = bootstrap_scd(state)
|
|
|
|
mm_cs = read_file('metamodels/mm.od')
|
|
m_cs = read_file('models/example2.od')
|
|
|
|
mm = parser_cd.parse_cd(
|
|
state,
|
|
m_text=mm_cs,
|
|
)
|
|
m = parser_od.parse_od(
|
|
state, m_text=m_cs, mm=mm
|
|
)
|
|
conf_err = Conformance(
|
|
state, m, mm
|
|
).check_nominal()
|
|
print(render_conformance_check_result(conf_err))
|
|
mm_ramified = ramify(state, mm)
|
|
|
|
action_generator = RuleScheduler(state, mm, mm_ramified, verbose=True, directory="examples/geraniums", eval_context=eval_context)
|
|
od = ODAPI(state, m, mm)
|
|
render_geraniums_dot(od, f"{THIS_DIR}/geraniums.dot")
|
|
|
|
# if action_generator.load_schedule(f"petrinet.od"):
|
|
# if action_generator.load_schedule("schedules/combinatory.drawio"):
|
|
if action_generator.load_schedule("schedules/schedule.drawio"):
|
|
|
|
action_generator.generate_dot("../dot.dot")
|
|
code, message = action_generator.run(od)
|
|
print(f"{code}: {message}")
|
|
render_geraniums_dot(od, f"{THIS_DIR}/geraniums_final.dot") |