Просмотр исходного кода

Make set_in and set_in_node a compiled function

Yentl Van Tendeloo 7 лет назад
Родитель
Сommit
97754087fe
2 измененных файлов с 15 добавлено и 2 удалено
  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]}])]
         yield [("RETURN", [{'id': edge[1]}])]
     else:
     else:
         raise Exception("POP from empty set")
         raise Exception("POP from empty set")
-        print("Pop from empty set!")
         yield [("RETURN", [{'id': remainder["root"]}])]
         yield [("RETURN", [{'id': remainder["root"]}])]
 
 
 def set_create(**remainder):
 def set_create(**remainder):
@@ -356,3 +355,17 @@ def set_len(a, **remainder):
     else:
     else:
         outgoing, = yield [("RO", [a['id']])]
         outgoing, = yield [("RO", [a['id']])]
         yield [("RETURN", [{'value': len(outgoing)}])]
         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)
 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 author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server