浏览代码

Include AL MM in the ramify phase as well

Yentl Van Tendeloo 8 年之前
父节点
当前提交
f0715d01c2
共有 2 个文件被更改,包括 24 次插入26 次删除
  1. 20 19
      bootstrap/metamodels.alc
  2. 4 7
      bootstrap/ramify.alc

+ 20 - 19
bootstrap/metamodels.alc

@@ -195,6 +195,26 @@ Element function initialize_SCD(location : String):
 	// Add in the Action Language metamodel
 	add_AL_to_MM(scd)
 
+	// Now still allow for constraints on classes
+	instantiate_link(scd, "Association", "constraint", "Class", "funcdef")
+	instantiate_attribute(scd, "constraint", "name", "constraint")
+
+	// Add constraints to all primitive classes
+	//add_constraint(scd, "if", constraint_if)
+	//add_constraint(scd, "while", constraint_while)
+	//add_constraint(scd, "break", constraint_break)
+	//add_constraint(scd, "continue", constraint_continue)
+	//add_constraint(scd, "assign", constraint_assign)
+	//add_constraint(scd, "return", constraint_return)
+	//add_constraint(scd, "output", constraint_output)
+	//add_constraint(scd, "input", constraint_input)
+	//add_constraint(scd, "declare", constraint_declare)
+	//add_constraint(scd, "global", constraint_global)
+	//add_constraint(scd, "access", constraint_access)
+	//add_constraint(scd, "constant", constraint_constant)
+	//add_constraint(scd, "resolve", constraint_resolve)
+	//add_constraint(scd, "call", constraint_call)
+
 	// And add some, to enforce correct physical types
 	add_constraint(scd, "Natural", constraint_natural)
 	add_constraint(scd, "String", constraint_string)
@@ -407,23 +427,4 @@ Void function add_AL_to_MM(model : Element):
 	instantiate_attribute(model, "call_params", "target_upper_cardinality", 1)
 	instantiate_attribute(model, "call_last_param", "target_upper_cardinality", 1)
 
-	// Now still allow for constraints on classes
-	instantiate_link(model, "Association", "constraint", "Class", "funcdef")
-	instantiate_attribute(model, "constraint", "name", "constraint")
-
-	// Add constraints to all primitive classes
-	//add_constraint(model, "if", constraint_if)
-	//add_constraint(model, "while", constraint_while)
-	//add_constraint(model, "break", constraint_break)
-	//add_constraint(model, "continue", constraint_continue)
-	//add_constraint(model, "assign", constraint_assign)
-	//add_constraint(model, "return", constraint_return)
-	//add_constraint(model, "output", constraint_output)
-	//add_constraint(model, "input", constraint_input)
-	//add_constraint(model, "declare", constraint_declare)
-	//add_constraint(model, "global", constraint_global)
-	//add_constraint(model, "access", constraint_access)
-	//add_constraint(model, "constant", constraint_constant)
-	//add_constraint(model, "resolve", constraint_resolve)
-	//add_constraint(model, "call", constraint_call)
 	return !

+ 4 - 7
bootstrap/ramify.alc

@@ -24,16 +24,13 @@ Element function ramify_func(model : Element, prepost : String):
 	Boolean is_pre
 	is_pre = (prepost == "pre")
 
-	// Add in Natural and String
+	// Add in some primitives
 	instantiate_node(new_model, "Class", "Natural")
 	instantiate_node(new_model, "Class", "String")
+	instantiate_node(new_model, "Class", "Any")
 
 	// Add in the complete AL metamodel
-	//TODO this is broken right now because of the use of Any in the AL MM
-	//add_AL_to_MM(new_model)
-	//TODO temporarily add them like this
-	instantiate_node(new_model, "Class", "Expression")
-	instantiate_node(new_model, "Class", "FuncDef")
+	add_AL_to_MM(new_model)
 
 	// Add some default elements
 	if (is_pre):
@@ -93,7 +90,7 @@ Element function ramify_func(model : Element, prepost : String):
 		instantiate_node(new_model, "Class", "RHS")
 		instantiate_attribute(new_model, "RHS", "lower_cardinality", 1)
 		instantiate_attribute(new_model, "RHS", "upper_cardinality", 1)
-		instantiate_link(new_model, "Association", "RHS_action", "RHS", "FuncDef")
+		instantiate_link(new_model, "Association", "RHS_action", "RHS", "funcdef")
 		instantiate_attribute(new_model, "RHS_action", "name", "action")
 		instantiate_attribute(new_model, "RHS_action", "target_upper_cardinality", 1)