include "primitives.alh" include "modelling.alh" include "object_operations.alh" include "conformance_scd.alh" include "io.alh" include "metamodels.alh" include "mini_modify.alh" Boolean function main(model : Element): String input_value Float start_time String current_state Element transitions String transition start_time = time() while (True): if (has_input()): input_value = input() if (input_value == "__EXIT__"): break! transitions = allOutgoingAssociationInstances(model, current_state) while (set_len(transitions) > 0): transition = set_pop(transitions) if (read_attribute(model, transition, "trigger") == input_value): if (element_neq(read_attribute(model, transition, "raise"), read_root())): output(cast_value(time() - start_time) + " ! " + cast_value(read_attribute(model, transition, "raise"))) instantiate_attribute(model, current_state, "current", False) current_state = readAssociationDestination(model, transition) instantiate_attribute(model, current_state, "current", True) break! output(cast_value(time() - start_time) + " : " + cast_value(read_attribute(model, current_state, "name"))) sleep(0.2) output("CLOSE") return True!