Pārlūkot izejas kodu

Hand-compile read_type for performance improvements

Yentl Van Tendeloo 7 gadi atpakaļ
vecāks
revīzija
9f452c7d2a
2 mainītis faili ar 19 papildinājumiem un 1 dzēšanām
  1. 18 0
      kernel/modelverse_kernel/compiled.py
  2. 1 1
      wrappers/modelverse_SCCD.py

+ 18 - 0
kernel/modelverse_kernel/compiled.py

@@ -369,3 +369,21 @@ def set_in_node(a, b, **remainder):
     value, = yield [("RDN", [a['id'], b['id']])]
     value, = yield [("RDN", [a['id'], b['id']])]
     yield [("RETURN", [{'value': value is not None}])]
     yield [("RETURN", [{'value': value is not None}])]
 
 
+def read_type(a, b, **remainder):
+    if "value" not in b:
+        b['value'], = yield [("RV", [b['id']])]
+
+    model, type_mapping, metamodel = yield [("RD", [a['id'], 'model']), ("RD", [a['id'], 'type_mapping']), ("RD", [a['id'], 'metamodel'])]
+    metamodel, in_model, type_value = yield [("RD", [metamodel, 'model']), ("RD", [model, b['value']]), ("RD", [type_mapping, b['value']])]
+
+    if in_model is None:
+        yield [("RETURN", [{'value': ""}])]
+    elif type_value is None:
+        yield [("RETURN", [{'value': ""}])]
+    else:
+        type_value, = yield [("RV", [type_value])]
+        in_metamodel, = yield [("RD", [metamodel, type_value])]
+        if in_metamodel is None:
+            yield [("RETURN", [{'value': ""}])]
+        else:
+            yield [("RETURN", [{'value': type_value}])]

+ 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 May 23 20:08:38 2018
+Date:   Thu May 24 09:33:04 2018
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server