|
@@ -435,6 +435,28 @@ def construct_const(**remainder):
|
|
|
|
|
|
raise PrimitiveFinished(v)
|
|
|
|
|
|
+def instantiated_name(a, b, **remainder):
|
|
|
+ name_value, = yield [("RV", [b])]
|
|
|
+ if name_value == "":
|
|
|
+ b, = yield [("CNV", ["__" + str(a)])]
|
|
|
+ raise PrimitiveFinished(b)
|
|
|
+
|
|
|
+def retype(a, b, c, **remainder):
|
|
|
+ tm, = yield [("RD", [a, "type_mapping"])]
|
|
|
+ m, = yield [("RD", [a, "model"])]
|
|
|
+ mm, = yield [("RD", [a, "metamodel"])]
|
|
|
+ mm_dict, = yield [("RD", [mm, "model"])]
|
|
|
+ c_val, = yield [("RV", [c])]
|
|
|
+ mm_ref, = yield [("RD", [mm_dict, c_val])]
|
|
|
+ b_val, = yield [("RV", [b])]
|
|
|
+ m_ref, = yield [("RD", [m, b_val])]
|
|
|
+ prev_edge, = yield [("RDNE", [tm, m_ref])]
|
|
|
+ if prev_edge is not None:
|
|
|
+ yield [("DE", [prev_edge])]
|
|
|
+ t, = yield [("CE", [tm, mm_ref])]
|
|
|
+ yield [("CE", [t, m_ref])]
|
|
|
+ raise PrimitiveFinished(None)
|
|
|
+
|
|
|
def __get_input(parameters):
|
|
|
mvk = parameters["mvk"]
|
|
|
user_root = parameters["user_root"]
|