فهرست منبع

Added the dict_add_fast operation

Yentl Van Tendeloo 8 سال پیش
والد
کامیت
75b1815c96
4فایلهای تغییر یافته به همراه8 افزوده شده و 0 حذف شده
  1. 1 0
      bootstrap/bootstrap.py
  2. 1 0
      bootstrap/primitives.alc
  3. 1 0
      interface/HUTN/includes/primitives.alh
  4. 5 0
      kernel/modelverse_kernel/primitives.py

+ 1 - 0
bootstrap/bootstrap.py

@@ -68,6 +68,7 @@ def bootstrap():
                     "list_delete": ["Element", "Element", "Integer"],
                     "list_delete": ["Element", "Element", "Integer"],
                     "list_len": ["Integer", "Element"],
                     "list_len": ["Integer", "Element"],
                     "dict_add": ["Element", "Element", "Element", "Element"],
                     "dict_add": ["Element", "Element", "Element", "Element"],
+                    "dict_add_fast": ["Element", "Element", "Element", "Element"],
                     "dict_delete": ["Element", "Element", "Element"],
                     "dict_delete": ["Element", "Element", "Element"],
                     "dict_delete_node": ["Element", "Element", "Element"],
                     "dict_delete_node": ["Element", "Element", "Element"],
                     "dict_read": ["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_v2s(a: Element) = ?primitives/cast_v2s
 String function cast_id2s(a: Element) = ?primitives/cast_id2s
 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(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(a: Element, b: Element) = ?primitives/dict_delete
 Element function dict_delete_node(a: Element, b: Element) = ?primitives/dict_delete_node
 Element function dict_delete_node(a: Element, b: Element) = ?primitives/dict_delete_node
 Element function dict_read(a: Element, b: Element) = ?primitives/dict_read
 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_v2s(a: Element) 
 String function cast_id2s(a: Element) 
 String function cast_id2s(a: Element) 
 Element function dict_add(a: Element, b: Element, c: 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(a: Element, b: Element)
 Element function dict_delete_node(a: Element, b: Element)
 Element function dict_delete_node(a: Element, b: Element)
 Element function dict_read(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])]
     yield [("CE", [new_edge, b])]
     raise PrimitiveFinished(a)
     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):
 def dict_delete(a, b, **remainder):
     b_value, = yield [("RV", [b])]
     b_value, = yield [("RV", [b])]
     edge, = yield [("RDE", [a, b_value])]
     edge, = yield [("RDE", [a, b_value])]