瀏覽代碼

Added some additional code for faster model operations

Yentl Van Tendeloo 8 年之前
父節點
當前提交
f830d66367
共有 2 個文件被更改,包括 22 次插入6 次删除
  1. 0 6
      bootstrap/bootstrap.py
  2. 22 0
      kernel/modelverse_kernel/compiled.py

+ 0 - 6
bootstrap/bootstrap.py

@@ -154,11 +154,7 @@ def bootstrap():
     include "primitives.alc"
     include "compilation_manager.alc"
     include "constructors.alc"
-    include "object_operations.alc"
     include "library.alc"
-    include "conformance_scd.alc"
-    include "modelling.alc"
-    include "metamodels.alc"
 
     Void function __main():
     \tInteger interface
@@ -172,8 +168,6 @@ def bootstrap():
     \t\t\toutput("DONE")
     \t\telif (interface == 3):
     \t\t\tcompilation_manager()
-    \t\telif (interface == 4):
-    \t\t\tconstruct_model()
     \t\telse:
     \t\t\tlog("Unsupported interface!")
     '''

+ 22 - 0
kernel/modelverse_kernel/compiled.py

@@ -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"]