فهرست منبع

Updated AL print code

Yentl Van Tendeloo 7 سال پیش
والد
کامیت
d31956bc74
2فایلهای تغییر یافته به همراه26 افزوده شده و 4 حذف شده
  1. 17 3
      models/AL_to_py.alc
  2. 9 1
      models/test.alc

+ 17 - 3
models/AL_to_py.alc

@@ -190,23 +190,37 @@ Boolean function main(model : Element):
 	String initial_function
 	String al_node
 	Element initial_function_element
+	String code
 
 	initial_function = set_pop(allInstances(model, "AL/Initial"))
 	initial_function = set_pop(allAssociationDestinations(model, initial_function, "AL/initial_funcdef"))
 	log("Starting at function " + initial_function)
 	log("Got keys: " + set_to_string(dict_keys(model["model"][initial_function])))
+	log("Parameters:")
+	Element params
+	String param
+	params = dict_keys(model["model"][initial_function]["params"])
+	code = "def main("
+	while (set_len(params) > 0):
+		param = set_pop(params)
+		log("  " + param + " --> " + cast_id(model["model"][initial_function]["params"][param]))
+		code = code + "var_" + cast_id(model["model"][initial_function]["params"][param])
+		if (set_len(params) > 0):
+			code = code + ", "
+	code = code + "):\n"
+		
 	initial_function_element = model["model"][initial_function]["body"]
 	al_node = cast_value(initial_function_element)
 	while (cast_value(initial_function_element) == "global"):
 		log("Assigning to " + cast_value(initial_function_element["next"]["var"]["var"]))
-		log("  the element: " + cast_value(initial_function_element["next"]["value"]["node"]))
+		log("  the element: " + cast_id(initial_function_element["next"]["value"]["node"]))
 		log("  keys: " + set_to_string(dict_keys(initial_function_element["next"]["value"]["node"])))
 		log("Function is element: " + cast_id(initial_function_element["next"]["value"]["node"]))
 		initial_function_element = initial_function_element["next"]["next"]
 	log("Started execution at " + cast_value(initial_function_element))
 	log("Started REAL execution at " + cast_value(initial_function_element))
-	String code
-	code = code_print(initial_function_element, 1)
+	
+	code = code + code_print(initial_function_element, 1)
 	log("Generated code:")
 	log(code)
 	return True!

+ 9 - 1
models/test.alc

@@ -1,7 +1,15 @@
 include "primitives.alh"
 
-Boolean function main(model : Element):
+Boolean function other(a : Boolean, b : Boolean, c : Integer, d : String, e : Integer):
+	a = 6
+	return False!
+
+Boolean function main(model : Element, c : Element):
 	log("Test")
 	Integer a
 	a = 1
+	a = 2
+	a = 3
+	log("Model: " + cast_id(model))
+	log("Model2: " + cast_id(c))
 	return True!