include "primitives.alh" include "modelling.alh" include "object_operations.alh" Boolean function pn_print(model : Element): Element all_places String place String name Integer tokens String t Element all_t log("Places:") all_places = allInstances(model, "PetriNet/Place") while (set_len(all_places) > 0): place = set_pop(all_places) name = read_attribute(model, place, "name") tokens = read_attribute(model, place, "tokens") log(" " + name + ": " + cast_string(tokens)) log("Transitions:") all_places = allInstances(model, "PetriNet/Transition") while (set_len(all_places) > 0): place = set_pop(all_places) name = read_attribute(model, place, "name") log(" " + name) all_t = allIncomingAssociationInstances(model, place, "PetriNet/P2T") while (set_len(all_t) > 0): t = set_pop(all_t) log(" <-- " + cast_value(read_attribute(model, readAssociationSource(model, t), "name"))) all_t = allOutgoingAssociationInstances(model, place, "PetriNet/T2P") while (set_len(all_t) > 0): t = set_pop(all_t) log(" --> " + cast_value(read_attribute(model, readAssociationDestination(model, t), "name"))) return True!