42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
from state.devstate import DevState
|
|
from bootstrap.scd import bootstrap_scd
|
|
from framework.conformance import Conformance, render_conformance_check_result
|
|
from concrete_syntax.textual_od import parser, renderer
|
|
from concrete_syntax.plantuml import renderer as plantuml
|
|
from api.od import ODAPI
|
|
|
|
from examples.semantics.operational.simulator import Simulator, RandomDecisionMaker, InteractiveDecisionMaker
|
|
from examples.woods import models, opsem_python, opsem_rulebased
|
|
from examples.woods.common import termination_condition, render_woods
|
|
|
|
from util import loader
|
|
|
|
state = DevState()
|
|
scd_mmm = bootstrap_scd(state) # Load meta-meta-model
|
|
|
|
### Load (meta-)models ###
|
|
|
|
woods_mm = loader.parse_and_check(state, models.woods_mm_cs, scd_mmm, "MM")
|
|
woods_rt_mm = loader.parse_and_check(state, models.woods_rt_mm_cs, scd_mmm, "RT-MM")
|
|
woods_m = loader.parse_and_check(state, models.woods_m_cs, woods_mm, "M")
|
|
woods_rt_m = loader.parse_and_check(state, models.woods_rt_initial_m_cs, woods_rt_mm, "RT-M")
|
|
|
|
print()
|
|
|
|
rulebased_action_generator = opsem_rulebased.get_action_generator(state, woods_rt_mm)
|
|
|
|
sim = Simulator(
|
|
# action_generator=opsem_python.get_valid_actions,
|
|
# action_generator=opsem_python.get_all_actions,
|
|
action_generator=rulebased_action_generator,
|
|
# decision_maker=RandomDecisionMaker(seed=3),
|
|
decision_maker=InteractiveDecisionMaker(),
|
|
termination_condition=termination_condition,
|
|
check_conformance=True,
|
|
verbose=True,
|
|
renderer=render_woods,
|
|
)
|
|
|
|
od = ODAPI(state, woods_rt_m, woods_rt_mm)
|
|
|
|
sim.run(od)
|