A fully working version of the scheduling language with added examples
This commit is contained in:
parent
ec42f74960
commit
ebfd85a666
126 changed files with 7235 additions and 981 deletions
48
examples/geraniums/runner.py
Normal file
48
examples/geraniums/runner.py
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
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 = RuleSchedular(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")
|
||||
Loading…
Add table
Add a link
Reference in a new issue