Преглед изворни кода

transfered metamodel from old syntax to new syntax

tpinna пре 10 година
родитељ
комит
774eaa76c3
1 измењених фајлова са 76 додато и 1 уклоњено
  1. 76 1
      integration/code/pn_interface.alc

+ 76 - 1
integration/code/pn_interface.alc

@@ -7,6 +7,76 @@ include "io.alh"
 include "metamodels.alh"
 include "modelling.alh"
 
+Element function petrinet_transformation(root: Element):
+	// Create A transformation model for petrinets (useful for testing)
+
+	//////////////////////////////////
+	//initialise an empty transformation model for petrinet
+	Element my_model
+	my_model = instantiate_model(root["PetriNets_MTransformation"])
+	define_inheritance(my_model, "l3")
+	dict_add(root, "transf_petrinet_fire", my_model)
+
+	////////////////////////////
+	// root node
+	instantiate_node(my_model, "Transformation", "PetrinetFire")
+	instantiate_attribute(my_model, "PetrinetFire", "name", "PetriNetFire")
+
+	////////////////////////////
+	// rule: find transitions
+
+	//rule: find_transitions
+	log("find_transitions")
+	instantiate_node(my_model, "Rule", "find_transitions")
+	instantiate_attribute(my_model, "find_transitions", "name", "find_transitions")
+	instantiate_attribute(my_model, "find_transitions", "precedence", 1)
+	//connect to transformation
+	instantiate_link(my_model, "transformation_to_rule", "", "PetrinetFire", "find_transitions")
+
+	//precondition: lhs_precondition
+	log("lhs_precondition")
+	instantiate_node(my_model, "Precondition","lhs_precondition")
+	//connect to rule
+	instantiate_link(my_model, "lhs", "", "find_transitions", "lhs_precondition")
+
+	//Transition_LHS: lhs_find_all
+	log("lhs_find_all")
+	instantiate_node(my_model, "Transition_LHS","lhs_find_all")
+	instantiate_attribute(my_model, "lhs_find_all", "plabel", 1)
+	//connect to rule
+	instantiate_link(my_model, "pre2ram", "", "lhs_precondition", "lhs_find_all")
+
+	//precondition: nac_precondition
+	log("nac_precondition")
+	instantiate_node(my_model, "Precondition","nac_precondition")
+	//connect to rule
+	instantiate_link(my_model, "nac", "", "find_transitions", "nac_precondition")
+
+	//Transition_LHS: nac_transition_place_before
+	log("nac_transition_place_before")
+	instantiate_node(my_model, "Transition_LHS","nac_transition_place_before")
+	instantiate_attribute(my_model, "nac_transition_place_before", "plabel", 1)
+	//connect to rule
+	instantiate_link(my_model, "pre2ram", "", "nac_precondition", "nac_transition_place_before")
+
+	//Place_LHS: nac_place_before
+	log("nac_place_before")
+	instantiate_node(my_model, "Place_LHS","nac_place_before")
+	instantiate_attribute(my_model, "nac_place_before", "plabel", 2)
+	instantiate_attribute(my_model, "nac_place_before", "tokens", "lambda x: sum([1 for i in x.out if i.weight<x.tokens]) == len(x.transition)")
+	//connect to rule
+	instantiate_link(my_model, "pre2ram", "", "nac_precondition", "nac_place_before")
+
+	//P2T_LHS: nac_ft_p2t
+	log("nac_transition_place_before")
+	instantiate_link(my_model, "P2T_LHS", "nac_p2tlhs_before", "nac_place_before", "nac_transition_place_before")
+	instantiate_attribute(my_model, "nac_p2tlhs_before", "plabel", 3)
+	instantiate_attribute(my_model, "nac_p2tlhs_before", "weight", "lambda x: True")
+	//connect to rule
+	instantiate_link(my_model, "pre2ram", "", "nac_precondition", "nac_p2tlhs_before")
+
+	return my_model
+
 Element function pn_operations():
 	Element ops
 	ops = create_node()
@@ -434,4 +504,9 @@ Element function initial_prompt():
 			output("Command not recognized, use 'help' for a list of possible commands")
 
 Void function main():
-	initial_prompt()
+	//initial_prompt()
+	Element root
+	root = create_metamodels()
+	petrinet_transformation(root)
+	log("done")
+	return