Pārlūkot izejas kodu

Added the dict_add_fast operation

Yentl Van Tendeloo 8 gadi atpakaļ
vecāks
revīzija
75b1815c96

+ 1 - 0
bootstrap/bootstrap.py

@@ -68,6 +68,7 @@ def bootstrap():
                     "list_delete": ["Element", "Element", "Integer"],
                     "list_len": ["Integer", "Element"],
                     "dict_add": ["Element", "Element", "Element", "Element"],
+                    "dict_add_fast": ["Element", "Element", "Element", "Element"],
                     "dict_delete": ["Element", "Element", "Element"],
                     "dict_delete_node": ["Element", "Element", "Element"],
                     "dict_read": ["Element", "Element", "Element"],

+ 1 - 0
bootstrap/primitives.alc

@@ -33,6 +33,7 @@ String function cast_a2s(a: Action) = ?primitives/cast_a2s
 String function cast_v2s(a: Element) = ?primitives/cast_v2s
 String function cast_id2s(a: Element) = ?primitives/cast_id2s
 Element function dict_add(a: Element, b: Element, c: Element) = ?primitives/dict_add
+Element function dict_add_fast(a: Element, b: Element, c: Element) = ?primitives/dict_add_fast
 Element function dict_delete(a: Element, b: Element) = ?primitives/dict_delete
 Element function dict_delete_node(a: Element, b: Element) = ?primitives/dict_delete_node
 Element function dict_read(a: Element, b: Element) = ?primitives/dict_read

+ 1 - 0
interface/HUTN/includes/primitives.alh

@@ -33,6 +33,7 @@ String function cast_a2s(a: Action)
 String function cast_v2s(a: Element) 
 String function cast_id2s(a: Element) 
 Element function dict_add(a: Element, b: Element, c: Element)
+Element function dict_add_fast(a: Element, b: Element, c: Element)
 Element function dict_delete(a: Element, b: Element)
 Element function dict_delete_node(a: Element, b: Element)
 Element function dict_read(a: Element, b: Element) 

+ 5 - 0
kernel/modelverse_kernel/primitives.py

@@ -284,6 +284,11 @@ def dict_add(a, b, c, **remainder):
     yield [("CE", [new_edge, b])]
     raise PrimitiveFinished(a)
 
+def dict_add_fast(a, b, c, **remainder):
+    v, = yield [("RV", [b])]
+    yield [("CD", [a, b, c])]
+    raise PrimitiveFinished(a)
+
 def dict_delete(a, b, **remainder):
     b_value, = yield [("RV", [b])]
     edge, = yield [("RDE", [a, b_value])]