aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL/libghdl/vhdl/lists.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyGHDL/libghdl/vhdl/lists.py')
-rw-r--r--pyGHDL/libghdl/vhdl/lists.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/pyGHDL/libghdl/vhdl/lists.py b/pyGHDL/libghdl/vhdl/lists.py
new file mode 100644
index 000000000..bcaecb89b
--- /dev/null
+++ b/pyGHDL/libghdl/vhdl/lists.py
@@ -0,0 +1,33 @@
+from libghdl import libghdl
+from ctypes import c_int32, c_bool, POINTER, Structure
+
+List_Type = c_int32
+
+
+class Iterator(Structure):
+ _fields_ = [("chunk", c_int32), ("chunk_idx", c_int32), ("remain", c_int32)]
+
+
+Iterate = libghdl.vhdl__lists__iterate
+Iterate.argstype = [List_Type]
+Iterate.restype = Iterator
+
+Is_Valid = libghdl.vhdl__lists__is_valid
+Is_Valid.argstype = [POINTER(Iterator)]
+Is_Valid.restype = c_bool
+
+Next = libghdl.vhdl__lists__next
+Next.argstype = [POINTER(Iterator)]
+Next.restype = None
+
+Get_Element = libghdl.vhdl__lists__get_element
+Get_Element.argstype = [POINTER(Iterator)]
+Get_Element.restype = c_int32
+
+Get_Nbr_Elements = libghdl.vhdl__lists__get_nbr_elements
+Get_Nbr_Elements.argtype = [List_Type]
+Get_Nbr_Elements.restype = c_int32
+
+Create_Iir_List = libghdl.vhdl__lists__create_list
+
+Destroy_Iir_List = libghdl.vhdl__lists__destroy_list