1234567891011121314151617181920212223242526 |
- ### Operational Semantics - defined by rule-based model transformation ###
- from transformation.rule import Rule, RuleMatcherRewriter, PriorityActionGenerator
- from transformation.ramify import ramify
- from util import loader
- import os
- THIS_DIR = os.path.dirname(__file__)
- get_filename = lambda rule_name, kind: f"{THIS_DIR}/rules/r_{rule_name}_{kind}.od"
- def get_action_generator(state, rt_mm):
- rt_mm_ramified = ramify(state, rt_mm)
- matcher_rewriter = RuleMatcherRewriter(state, rt_mm, rt_mm_ramified)
- rules0_dict = loader.load_rules(state, get_filename, rt_mm_ramified, ["hungry_bear_dies"])
- rules1_dict = loader.load_rules(state, get_filename, rt_mm_ramified, ["advance_time", "attack"])
- generator = PriorityActionGenerator(matcher_rewriter, [
- rules0_dict, # highest priority
- rules1_dict, # lowest priority
- ])
- return generator
|