Browse Source

Updated SCCD_execute as well

Yentl Van Tendeloo 8 years ago
parent
commit
77e736f9b0
1 changed files with 30 additions and 30 deletions
  1. 30 30
      models/SCCD_execute.alc

+ 30 - 30
models/SCCD_execute.alc

@@ -37,7 +37,7 @@ Element function filter(model : Element, set : Element, attribute_name : String,
 	String key
 	Element result
 
-	result = create_node()
+	result = set_create()
 	while (set_len(set) > 0):
 		key = set_pop(set)
 		if (value_eq(read_attribute(model, key, attribute_name), attribute_value)):
@@ -50,7 +50,7 @@ Element function filter_exists(model : Element, set : Element, attribute_name :
 	String key
 	Element result
 
-	result = create_node()
+	result = set_create()
 	while (set_len(set) > 0):
 		key = set_pop(set)
 		if (element_neq(read_attribute(model, key, attribute_name), read_root())):
@@ -62,7 +62,7 @@ Element function expand_current_state(model : Element, state : String, data : El
 	// Find the hierarchy of all current states, and select those that contain the currently selected state
 	Element result
 	Element current_states
-	result = create_node()
+	result = set_create()
 	current_states = set_copy(data["current_class_handle"]["states"])
 
 	Element hierarchy
@@ -94,7 +94,7 @@ Element function expand_initial_state(model : Element, state : String, data : El
 	else:
 		// Probably just an atomic, so return this one only
 		Element result
-		result = create_node()
+		result = set_create()
 		set_add(result, state)
 		return result!
 
@@ -115,7 +115,7 @@ Element function expand_parallel_state(model : Element, parallel_state : String,
 	Element expanded_children
 
 	children = allAssociationDestinations(model, parallel_state, "SCCD/parallel_children")
-	result = create_node()
+	result = set_create()
 
 	while (set_len(children) > 0):
 		set_merge(result, expand_initial_state(model, set_pop(children), data))
@@ -131,12 +131,12 @@ Void function start_class(model : Element, data : Element, class : String, ident
 
 	// Create the data structure for a running class
 	Element class_handle
-	class_handle = create_node()
+	class_handle = dict_create()
 	dict_add(class_handle, "type", class)
 	dict_add(class_handle, "ID", identifier)
-	dict_add(class_handle, "events", create_node())
-	dict_add(class_handle, "new_events", create_node())
-	dict_add(class_handle, "timers", create_node())
+	dict_add(class_handle, "events", set_create())
+	dict_add(class_handle, "new_events", set_create())
+	dict_add(class_handle, "timers", dict_create())
 	dict_add(data["classes"], class_handle["ID"], class_handle)
 
 	String prev_class
@@ -155,7 +155,7 @@ Void function start_class(model : Element, data : Element, class : String, ident
 	Element cstates
 	String cstate
 
-	history = create_node()
+	history = dict_create()
 	dict_add(class_handle, "history", history)
 	cstates = allInstances(model, "SCCD/CompositeState")
 	while (set_len(cstates) > 0):
@@ -164,7 +164,7 @@ Void function start_class(model : Element, data : Element, class : String, ident
 
 	// Add all attributes
 	Element attributes
-	attributes = create_node()
+	attributes = dict_create()
 	Element attrs
 	attrs = allAssociationDestinations(model, class, "SCCD/class_attributes")
 	while (set_len(attrs) > 0):
@@ -181,7 +181,7 @@ Void function start_class(model : Element, data : Element, class : String, ident
 
 	// Execute all entry actions
 	Element init
-	init = create_node()
+	init = set_create()
 	set_add(init, "")
 	// Initial state before initialization is the set with an empty hierarchy
 	// Empty set would not find any difference between the source and target
@@ -206,11 +206,11 @@ Element function get_enabled_transitions(model : Element, state : String, data :
 	Element event_names
 	Element event_parameters
 
-	result = create_node()
+	result = set_create()
 	to_filter = allOutgoingAssociationInstances(model, state, "SCCD/transition")
 
-	event_names = create_node()
-	event_parameters = create_node()
+	event_names = set_create()
+	event_parameters = set_create()
 	events = set_copy(data["current_class_handle"]["events"])
 	while (set_len(events) > 0):
 		evt = set_pop(events)
@@ -219,7 +219,7 @@ Element function get_enabled_transitions(model : Element, state : String, data :
 		if (bool_not(set_in(event_names, evt_name))):
 			// Not yet registered the event
 			set_add(event_names, evt_name)
-			dict_add(event_parameters, evt_name, create_node())
+			dict_add(event_parameters, evt_name, set_create())
 		// Add event parameters
 		set_add(event_parameters[evt_name], list_read(evt, 1))
 
@@ -382,7 +382,7 @@ Boolean function step_class(model : Element, data : Element, class : String):
 	dict_overwrite(data, "current_class_handle", data["classes"][class])
 
 	states = set_copy(data["current_class_handle"]["states"])
-	new_states = create_node()
+	new_states = set_create()
 	transitioned = False
 
 	while (set_len(states) > 0):
@@ -434,7 +434,7 @@ Element function find_hierarchy(model : Element, state : String, data : Element)
 	if (bool_not(dict_in(data["cache_hierarchy"], state))):
 		Element result
 		if (state == ""):
-			result = create_node()
+			result = list_create()
 		else:
 			String parent
 			parent = get_parent(model, state)
@@ -447,8 +447,8 @@ Element function find_hierarchy(model : Element, state : String, data : Element)
 Void function execute_actions(model : Element, source_states : Element, target_states : Element, data : Element, transition_source : String):
 	Element exit
 	Element entry
-	exit = create_node()
-	entry = create_node()
+	exit = list_create()
+	entry = list_create()
 
 	source_states = set_copy(source_states)
 	target_states = set_copy(target_states)
@@ -461,11 +461,11 @@ Void function execute_actions(model : Element, source_states : Element, target_s
 	Element hierarchy_targets
 	Element all_hierarchies
 
-	hierarchy_sources = create_node()
+	hierarchy_sources = set_create()
 	while (set_len(source_states) > 0):
 		set_add(hierarchy_sources, find_hierarchy(model, set_pop(source_states), data))
 
-	hierarchy_targets = create_node()
+	hierarchy_targets = set_create()
 	while (set_len(target_states) > 0):
 		set_add(hierarchy_targets, find_hierarchy(model, set_pop(target_states), data))
 
@@ -540,7 +540,7 @@ Void function execute_actions(model : Element, source_states : Element, target_s
 	Element spliced_hierarchy
 	Element hierarchy_source
 	Element hierarchy_target
-	visited = create_node()
+	visited = set_create()
 	while (set_len(hierarchy_sources) > 0):
 		// Get one of these hierarchies
 		hierarchy_source = set_pop(hierarchy_sources)
@@ -560,7 +560,7 @@ Void function execute_actions(model : Element, source_states : Element, target_s
 
 	// Add hierarchy_targets actions
 	// Clear visited, just to be safe, though it should not matter
-	visited = create_node()
+	visited = set_create()
 	while (set_len(hierarchy_targets) > 0):
 		// Get one of these hierarchies
 		hierarchy_target = set_pop(hierarchy_targets)
@@ -692,10 +692,10 @@ Float function step(model : Element, data : Element):
 Boolean function main(model : Element):
 	// Executes the provided SCCD model
 	Element data
-	data = create_node()
-	dict_add(data, "classes", create_node())
-	dict_add(data, "cache_operations", create_node())
-	dict_add(data, "cache_hierarchy", create_node())
+	data = dict_create()
+	dict_add(data, "classes", dict_create())
+	dict_add(data, "cache_operations", dict_create())
+	dict_add(data, "cache_hierarchy", dict_create())
 	dict_add(data, "current_class", "")
 	
 	Float time_0
@@ -732,14 +732,14 @@ Boolean function main(model : Element):
 			// Update the simulated time to the time of interrupt
 			time_sim = time() - time_0
 
-		dict_overwrite(data, "new_events", create_node())
+		dict_overwrite(data, "new_events", set_create())
 		Element classes
 		classes = dict_keys(data["classes"])
 		while(set_len(classes) > 0):
 			String class
 			class = set_pop(classes)
 			dict_overwrite(data["classes"][class], "events", data["classes"][class]["new_events"])
-			dict_overwrite(data["classes"][class], "new_events", create_node())
+			dict_overwrite(data["classes"][class], "new_events", set_create())
 
 			if (element_neq(interrupt, read_root())):
 				// Got interrupt, so append it already