Browse Source

Fixed "instruction pointer not found" error

Yentl Van Tendeloo 7 years ago
parent
commit
9c8799e980

+ 8 - 6
bootstrap/constructors.alc

@@ -46,7 +46,7 @@ Element function construct_function_list(list : Element):
 
 
 		continue = list_pop_final(list)
 		continue = list_pop_final(list)
 		if (element_neq(prev_element, read_root())):
 		if (element_neq(prev_element, read_root())):
-			dict_add_fast(prev_element, "next", result["start"])
+			create_al_link(model, "Statement_next", prev_element, result["start"], "next")
 		else:
 		else:
 			first_element = result["start"]
 			first_element = result["start"]
 
 
@@ -67,16 +67,19 @@ Element function construct_function_list(list : Element):
 		return read_root()!
 		return read_root()!
 
 
 	// Overwrite the main function with our declaration function
 	// Overwrite the main function with our declaration function
+	log("Initial operation: " + reverseKeyLookup(model["model"], model["model"][main_function]["body"]))
 	prev_element = set_pop(allAssociationDestinations(model, main_function, "funcdef_body"))
 	prev_element = set_pop(allAssociationDestinations(model, main_function, "funcdef_body"))
-	log("Got main function: " + main_function)
-	log("Got main function: " + set_to_string(dict_keys(model["model"][main_function])))
-	log("Parameters stored in " + cast_string(reverseKeyLookup(model["model"], model["model"][main_function]["params"])))
-	log("Got parameters for main function: " + set_to_string(dict_keys(model["model"][main_function]["params"])))
+	log("Prev element: " + cast_string(prev_element))
+	log("First element: " + cast_string(first_element))
+	log("Function: " + cast_string(main_function))
 	model_delete_element(model, set_pop(allOutgoingAssociationInstances(model, main_function, "funcdef_body")))
 	model_delete_element(model, set_pop(allOutgoingAssociationInstances(model, main_function, "funcdef_body")))
 	create_al_link(model, "funcdef_body", main_function, first_element, "body")
 	create_al_link(model, "funcdef_body", main_function, first_element, "body")
 	create_al_link(model, "Statement_next", result["end"], prev_element, "next")
 	create_al_link(model, "Statement_next", result["end"], prev_element, "next")
+	log("Result end: " + cast_value(result["end"]))
 	instantiate_link(model, "initial_funcdef", "", instantiate_node(model, "Initial", ""), main_function)
 	instantiate_link(model, "initial_funcdef", "", instantiate_node(model, "Initial", ""), main_function)
 	log("Got body of main: " + cast_value(model["model"][main_function]["body"]))
 	log("Got body of main: " + cast_value(model["model"][main_function]["body"]))
+	log("      ID of main: " + cast_id(model["model"][main_function]["body"]))
+	log("internal ID of main: " + cast_string(reverseKeyLookup(model["model"], model["model"][main_function]["body"])))
 	
 	
 	log("Created model!")
 	log("Created model!")
 	return model!
 	return model!
@@ -376,7 +379,6 @@ String function construct_declare(model : Element, list : Element):
 			acc = instantiate_value(model, "access", "", create_value(!access))
 			acc = instantiate_value(model, "access", "", create_value(!access))
 			create_al_link(model, "call_func", value, acc, "func")
 			create_al_link(model, "call_func", value, acc, "func")
 			create_al_link(model, "access_var", acc, res, "var")
 			create_al_link(model, "access_var", acc, res, "var")
-			dict_add_fast(res, "var", "create_node")
 			create_al_link(model, "resolve_var", res, instantiate_value(model, "String", "", "create_node"), "var")
 			create_al_link(model, "resolve_var", res, instantiate_value(model, "String", "", "create_node"), "var")
 		elif (op == "const"):
 		elif (op == "const"):
 			value = instantiate_value(model, "constant", "", create_value(!constant))
 			value = instantiate_value(model, "constant", "", create_value(!constant))

+ 28 - 0
bootstrap/modelling.alc

@@ -480,6 +480,34 @@ Element function get_func_AL_model(al_model : Element):
 		return read_root()!
 		return read_root()!
 	else:
 	else:
 		initial_function = set_pop(initial_function)
 		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, initial_function, "initial_funcdef"))]!
 
 
 Element function trim_AL_constructors(list : Element):
 Element function trim_AL_constructors(list : Element):

+ 0 - 4
hybrid_server/classes/task.xml

@@ -36,10 +36,6 @@
                     commands = mvk.execute_yields(taskname, operation, params, reply)
                     commands = mvk.execute_yields(taskname, operation, params, reply)
                     if commands is None:
                     if commands is None:
                         break
                         break
-                    for x in commands:
-                        if x[0] == "CD" and x[1][2] is None:
-                            print("WRITE NONE")
-                            print("Commands: " + str(commands))
                     reply = [mvs_operations[command[0]](*(command[1])) for command in commands]
                     reply = [mvs_operations[command[0]](*(command[1])) for command in commands]
                 return (0.0, False)
                 return (0.0, False)
             except SleepKernel as e:
             except SleepKernel as e:

+ 1 - 4
state/modelverse_state/main.py

@@ -175,9 +175,6 @@ class ModelverseState(object):
         return self.free_id - 1
         return self.free_id - 1
 
 
     def create_dict(self, source, data, destination):
     def create_dict(self, source, data, destination):
-        if destination is None:
-            print("Assign None for " + str(locals()))
-            print("Previous value: " + str(self.values.get(self.cache.get(source, {}).get(data, None), None)))
         if source not in self.nodes and source not in self.edges:
         if source not in self.nodes and source not in self.edges:
             return None
             return None
         elif destination not in self.nodes and destination not in self.edges:
         elif destination not in self.nodes and destination not in self.edges:
@@ -231,9 +228,9 @@ class ModelverseState(object):
             del self.cache[node][value]
             del self.cache[node][value]
         except KeyError:
         except KeyError:
             # Didn't exist
             # Didn't exist
+            #print("No such entry: " + str(locals()))
             pass
             pass
         except:
         except:
-            print(locals())
             raise
             raise
         return None
         return None
 
 

+ 7 - 7
test_printer.py

@@ -6,12 +6,12 @@ init()
 login("admin", "admin")
 login("admin", "admin")
 
 
 model_add("formalisms/String", "formalisms/SimpleClassDiagrams", open("models/String.mvc", 'r').read())
 model_add("formalisms/String", "formalisms/SimpleClassDiagrams", open("models/String.mvc", 'r').read())
-transformation_add_AL({"AL": "formalisms/ActionLanguage"}, {"String": "formalisms/String"}, "models/AL_to_Py", open("models/AL_to_py.alc", 'r').read())
-print("VERIFY")
-print(verify("models/AL_to_Py", "formalisms/ActionLanguage"))
-print("VERIFY END")
 transformation_add_AL({}, {}, "models/test", open("models/test.alc", 'r').read())
 transformation_add_AL({}, {}, "models/test", open("models/test.alc", 'r').read())
-print("VERIFY2")
-print(verify("models/test", "formalisms/ActionLanguage"))
-print("VERIFY2 END")
+transformation_add_AL({"AL": "formalisms/ActionLanguage"}, {"String": "formalisms/String"}, "models/AL_to_Py", open("models/AL_to_py.alc", 'r').read())
+#print("VERIFY")
+#print(verify("models/AL_to_Py", "formalisms/ActionLanguage"))
+#print("VERIFY END")
+#print("VERIFY2")
+#print(verify("models/test", "formalisms/ActionLanguage"))
+#print("VERIFY2 END")
 transformation_execute_AL("models/AL_to_Py", {"AL": "models/test"}, {"String": "models/printed_string"})
 transformation_execute_AL("models/AL_to_Py", {"AL": "models/test"}, {"String": "models/printed_string"})

+ 1 - 1
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Wed Apr  4 08:53:21 2018
+Date:   Wed Apr  4 10:50:09 2018
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server