Sfoglia il codice sorgente

Hand-compile read_type for performance improvements

Yentl Van Tendeloo 7 anni fa
parent
commit
9f452c7d2a
2 ha cambiato i file con 19 aggiunte e 1 eliminazioni
  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']])]
     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)
 
-Date:   Wed May 23 20:08:38 2018
+Date:   Thu May 24 09:33:04 2018
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server