Browse Source

Make set_in and set_in_node a compiled function

Yentl Van Tendeloo 7 years ago
parent
commit
97754087fe
2 changed files with 15 additions and 2 deletions
  1. 14 1
      kernel/modelverse_kernel/compiled.py
  2. 1 1
      wrappers/modelverse_SCCD.py

+ 14 - 1
kernel/modelverse_kernel/compiled.py

@@ -248,7 +248,6 @@ def set_pop(a, **remainder):
         yield [("RETURN", [{'id': edge[1]}])]
     else:
         raise Exception("POP from empty set")
-        print("Pop from empty set!")
         yield [("RETURN", [{'id': remainder["root"]}])]
 
 def set_create(**remainder):
@@ -356,3 +355,17 @@ def set_len(a, **remainder):
     else:
         outgoing, = yield [("RO", [a['id']])]
         yield [("RETURN", [{'value': len(outgoing)}])]
+
+def set_in(a, b, **remainder):
+    if "value" not in b:
+        b['value'], = yield [("RV", [b['id']])]
+    value, = yield [("RD", [a['id'], b['value']])]
+    yield [("RETURN", [{'value': value is not None}])]
+
+def set_in_node(a, b, **remainder):
+    if "id" not in b:
+        # Not even allocated the node, so it is certain not to be in the dictionary
+        yield [("RETURN", [{'value': False}])]
+    value, = yield [("RDN", [a['id'], b['id']])]
+    yield [("RETURN", [{'value': value is not None}])]
+

+ 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 14:43:46 2018
+Date:   Wed May 23 19:22:08 2018
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server