SCD Pre_PetriNets { // Add AL MM Class LHS{ constraint? : Expression upper_cardinality = 1 lower_cardinality = 1 } Class NAC{} Class Pre_Element{ label : String constraint? : Expression } Association (LHS, Pre_Element) Association (NAC, Pre_Element){ target_lower_cardinality = 1 } Class Pre_Place{} Class Pre_Transition{} Class Pre_Natural{} Association Pre_P2T(Pre_Place, Pre_Transition) {} Association Pre_T2P(Pre_Transition, Pre_Place) {} Association Pre_Place_tokens(Pre_Place, Pre_Natural) { name = "Pre_tokens" target_upper_cardinality = 1 } Association Pre_P2T_weight(Pre_P2T, Pre_Natural) { name = "Pre_weight" target_upper_cardinality = 1 } Association Pre_T2P_weight(Pre_T2P, Pre_Natural) { name = "Pre_weight" target_upper_cardinality = 1 } Inheritance (Pre_Place, Pre_Element) {} Inheritance (Pre_Natural, Pre_Element) {} Inheritance (Pre_Transition, Pre_Element) {} Inheritance (Pre_P2T, Pre_Element) {} Inheritance (Pre_Place_tokens, Pre_Element) {} Inheritance (Pre_P2T_weight, Pre_Element) {} Inheritance (Pre_T2P_weight, Pre_Element) {} } SCD Post_PetriNets{ // Add AL MM Class RHS{ action : FunctionDefinition upper_cardinality = 1 lower_cardinality = 1 } Class Post_Element { label : String value? : Expression } Class Post_Place{} Class Post_Transitions{} Class Post_Natural{} Association Post_P2T(Post_Place, Post_Transition) {} Association Post_T2P(Post_Transition, Post_Place) {} Association (Post_Place, Post_Natural) { name = "Post_tokens" target_upper_cardinality = 1 } Association (Post_P2T, Post_Natural) { name = "Post_weight" target_upper_cardinality = 1 } Association (Post_T2P, Post_Natural) { name = "Post_weight" target_upper_cardinality = 1 } Inheritance (Post_Place, Post_Element) {} Inheritance (Post_Natural, Post_Element) {} Inheritance (Post_Transition, Post_Element) {} Inheritance (Post_P2T, Post_Element) {} Inheritance (Post_Place_tokens, Post_Element) {} Inheritance (Post_P2T_weight, Post_Element) {} Inheritance (Post_T2P_weight, Post_Element) {} }