|
@@ -275,18 +275,12 @@ Void function instantiate_attribute_ref(model : Element, element : String, attri
|
|
|
|
|
|
return!
|
|
|
|
|
|
-Void function add_code_model(model : Element, export_name : String, code_model : Element):
|
|
|
- Element code_model
|
|
|
- export_node(export_name, code_model)
|
|
|
-
|
|
|
- return !
|
|
|
-
|
|
|
Void function instantiate_attribute_code(model : Element, element : String, attribute_name : String, code : Element):
|
|
|
// First create a new model for the AL part
|
|
|
String location
|
|
|
location = "code/" + cast_id(code)
|
|
|
|
|
|
- add_code_model(import_node("models/ActionLanguage"), location, code)
|
|
|
+ export_node(location, code)
|
|
|
|
|
|
// Now link it with a complex attribute
|
|
|
instantiate_attribute(model, element, attribute_name, location)
|
|
@@ -469,7 +463,6 @@ Element function get_func_AL_model(al_model : Element):
|
|
|
Element initial_function
|
|
|
|
|
|
// Find the initial function
|
|
|
- log("Fetching initial function...")
|
|
|
initial_function = allInstances(al_model, "Initial")
|
|
|
|
|
|
if (set_len(initial_function) == 0):
|
|
@@ -479,36 +472,7 @@ Element function get_func_AL_model(al_model : Element):
|
|
|
log("Too many functions to execute in this model!")
|
|
|
return read_root()!
|
|
|
else:
|
|
|
- initial_function = set_pop(initial_function)
|
|
|
- log("Initial function that is left: " + cast_value(initial_function))
|
|
|
- log(" ID: " + cast_id(al_model["model"][initial_function]))
|
|
|
- log("Funcdef: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]))
|
|
|
- log(" ID: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]))
|
|
|
- log("Body: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]))
|
|
|
- log("Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"])))
|
|
|
- log(" ID: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]))
|
|
|
- log("Next1: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]))
|
|
|
- log(" Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"])))
|
|
|
- log(" ID1: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]))
|
|
|
- log("Next2: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]))
|
|
|
- log(" Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"])))
|
|
|
- log(" ID2: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]))
|
|
|
- log("Next3: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]))
|
|
|
- log(" Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"])))
|
|
|
- log(" ID3: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]))
|
|
|
- log("Next4: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]))
|
|
|
- log(" Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"])))
|
|
|
- log(" ID4: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]))
|
|
|
- log("Next5: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]))
|
|
|
- log(" Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"])))
|
|
|
- log(" ID5: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]))
|
|
|
- log("Next6: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]["next"]))
|
|
|
- log(" Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]["next"])))
|
|
|
- log(" ID6: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]["next"]))
|
|
|
- log("Next7: " + cast_value(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]["next"]["next"]))
|
|
|
- log(" Name: " + cast_value(reverseKeyLookup(al_model["model"], al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]["next"]["next"])))
|
|
|
- log(" ID7: " + cast_id(al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]["body"]["next"]["next"]["next"]["next"]["next"]["next"]["next"]))
|
|
|
- return al_model["model"][set_pop(allAssociationDestinations(al_model, initial_function, "initial_funcdef"))]!
|
|
|
+ return al_model["model"][set_pop(allAssociationDestinations(al_model, set_pop(initial_function), "initial_funcdef"))]!
|
|
|
|
|
|
Element function trim_AL_constructors(list : Element):
|
|
|
Integer length
|
|
@@ -546,11 +510,13 @@ Element function construct_model_list(model : Element, list : Element):
|
|
|
elif (command == "instantiate_attribute_ref"):
|
|
|
instantiate_attribute_ref(model, list_pop_final(list), list_pop_final(list), list_pop_final(list))
|
|
|
elif (command == "instantiate_attribute_code"):
|
|
|
+ log("Add code attribute")
|
|
|
instantiate_attribute_code(model, list_pop_final(list), list_pop_final(list), construct_function_list(trim_AL_constructors(list)))
|
|
|
elif (command == "instantiate_link"):
|
|
|
instantiate_link(model, list_pop_final(list), list_pop_final(list), list_pop_final(list), list_pop_final(list))
|
|
|
elif (command == "add_code_model"):
|
|
|
- add_code_model(model, list_pop_final(list), construct_function_list(trim_AL_constructors(list)))
|
|
|
+ log("Add code model")
|
|
|
+ export_node(list_pop_final(list), construct_function_list(trim_AL_constructors(list)))
|
|
|
else:
|
|
|
log("Modelling error: did not understand command " + command)
|
|
|
|