# Auto generated Python source file from Ada sources
# Call 'make' in 'src/vhdl' to regenerate:
#
from enum import IntEnum, unique
from pydecor import export
from pyGHDL.libghdl._decorator import BindToLibGHDL
from pyGHDL.libghdl import libghdl
from pyGHDL.libghdl._types import IirKind
# From nodes_meta
@export
@BindToLibGHDL("vhdl__nodes_meta__get_fields_first")
def get_fields_first(K: IirKind) -> int:
"""
Return the list of fields for node :obj:`K`.
In Ada ``Vhdl.Nodes_Meta.Get_Fields`` returns a ``Fields_Array``. To emulate
this array access, the API provides ``get_fields_first`` and :func:`get_fields_last`.
The fields are sorted: first the non nodes/list of nodes, then the
nodes/lists that aren't reference, and then the reference.
:param K: Node to get first array index from.
"""
@export
@BindToLibGHDL("vhdl__nodes_meta__get_fields_last")
def get_fields_last(K: IirKind) -> int:
"""
Return the list of fields for node :obj:`K`.
In Ada ``Vhdl.Nodes_Meta.Get_Fields`` returns a ``Fields_Array``. To emulate
this array access, the API provides :func:`get_fields_first` and ``get_fields_last``.
The fields are sorted: first the non nodes/list of nodes, then the
nodes/lists that aren't reference, and then the reference.
:param K: Node to get last array index from.
"""
@export
@BindToLibGHDL("vhdl__nodes_meta__get_field_by_index")
def get_field_by_index(K: IirKind) -> int:
""""""
@export
def get_field_type(*args):
return libghdl.vhdl__nodes_meta__get_field_type(*args)
@export
def get_field_attribute(*args):
return libghdl.vhdl__nodes_meta__get_field_attribute(*args)
@export
@unique
class types(IntEnum):
Boolean = 0
Date_State_Type = 1
Date_Type = 2
Direction_Type = 3
File_Checksum_Id = 4
Fp64 = 5
Iir = 6
Iir_All_Sensitized = 7
Iir_Constraint = 8
Iir_Delay_Mechanism = 9
Iir_Flist = 10
Iir_Force_Mode = 11
Iir_Index32 = 12
Iir_Int32 = 13
Iir_List = 14
Iir_Mode = 15
Iir_Predefined_Functions = 16
Iir_Pure_State = 17
Iir_Signal_Kind = 18
Iir_Staticness = 19
Int32 = 20
Int64 = 21
Name_Id = 22
Number_Base_Type = 23
PSL_NFA = 24
PSL_Node = 25
Scalar_Size = 26
Source_File_Entry = 27
Source_Ptr = 28
String8_Id = 29
Time_Stamp_Id = 30
Token_Type = 31
Tri_State_Type = 32
@export
@unique
class Attr(IntEnum):
ANone = 0
Chain = 1
Chain_Next = 2
Forward_Ref = 3
Maybe_Forward_Ref = 4
Maybe_Ref = 5
Of_Maybe_Ref = 6
Of_Ref = 7
Ref = 8
@export
@unique
class fields(IntEnum):
First_Design_Unit = 0
Last_Design_Unit = 1
Library_Declaration = 2
File_Checksum = 3
Analysis_Time_Stamp = 4
Design_File_Source = 5
Library = 6
File_Dependence_List = 7
Design_File_Filename = 8
Design_File_Directory = 9
Design_File = 10
Design_File_Chain = 11
Library_Directory = 12
Date = 13
Context_Items = 14
Dependence_List = 15
Analysis_Checks_List = 16
Date_State = 17
Guarded_Target_State = 18
Library_Unit = 19
Hash_Chain = 20
Design_Unit_Source_Pos = 21
Design_Unit_Source_Line = 22