diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-08-07 07:10:49 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-08-07 10:00:11 +0200 |
commit | 5c8b50f69d70f4e2d0a9910a7914245d0796b758 (patch) | |
tree | 91959a573b77b22e0af7bc72f1eaa54a835abf24 /pyGHDL/libghdl/vhdl | |
parent | 23b3cadc1c6b96928f3d0829f8b0c5b7337fcc9c (diff) | |
download | ghdl-5c8b50f69d70f4e2d0a9910a7914245d0796b758.tar.gz ghdl-5c8b50f69d70f4e2d0a9910a7914245d0796b758.tar.bz2 ghdl-5c8b50f69d70f4e2d0a9910a7914245d0796b758.zip |
vhdl: add support for default in interface subprogram. Fix #2163
Diffstat (limited to 'pyGHDL/libghdl/vhdl')
-rw-r--r-- | pyGHDL/libghdl/vhdl/nodes.py | 26 | ||||
-rw-r--r-- | pyGHDL/libghdl/vhdl/nodes_meta.py | 668 |
2 files changed, 367 insertions, 327 deletions
diff --git a/pyGHDL/libghdl/vhdl/nodes.py b/pyGHDL/libghdl/vhdl/nodes.py index e36675608..a0120e8f4 100644 --- a/pyGHDL/libghdl/vhdl/nodes.py +++ b/pyGHDL/libghdl/vhdl/nodes.py @@ -2637,6 +2637,19 @@ def Set_Actual(obj: Iir, value: Iir) -> None: @export +@BindToLibGHDL("vhdl__nodes__get_open_actual") +def Get_Open_Actual(obj: Iir) -> Iir: + """""" + return 0 + + +@export +@BindToLibGHDL("vhdl__nodes__set_open_actual") +def Set_Open_Actual(obj: Iir, value: Iir) -> None: + """""" + + +@export @BindToLibGHDL("vhdl__nodes__get_actual_conversion") def Get_Actual_Conversion(obj: Iir) -> Iir: """""" @@ -3378,6 +3391,19 @@ def Set_Interface_Declaration_Chain(obj: Iir, value: Iir) -> None: @export +@BindToLibGHDL("vhdl__nodes__get_default_subprogram") +def Get_Default_Subprogram(obj: Iir) -> Iir: + """""" + return 0 + + +@export +@BindToLibGHDL("vhdl__nodes__set_default_subprogram") +def Set_Default_Subprogram(obj: Iir, value: Iir) -> None: + """""" + + +@export @BindToLibGHDL("vhdl__nodes__get_subprogram_specification") def Get_Subprogram_Specification(obj: Iir) -> Iir: """""" diff --git a/pyGHDL/libghdl/vhdl/nodes_meta.py b/pyGHDL/libghdl/vhdl/nodes_meta.py index dd38969a8..b2cf84c88 100644 --- a/pyGHDL/libghdl/vhdl/nodes_meta.py +++ b/pyGHDL/libghdl/vhdl/nodes_meta.py @@ -168,333 +168,335 @@ class fields(IntEnum): Designated_Entity = 48 Formal = 49 Actual = 50 - Actual_Conversion = 51 - Formal_Conversion = 52 - Whole_Association_Flag = 53 - Collapse_Signal_Flag = 54 - Artificial_Flag = 55 - Open_Flag = 56 - After_Drivers_Flag = 57 - We_Value = 58 - Time = 59 - Associated_Expr = 60 - Associated_Block = 61 - Associated_Chain = 62 - Choice_Name = 63 - Choice_Expression = 64 - Choice_Range = 65 - Same_Alternative_Flag = 66 - Element_Type_Flag = 67 - Architecture = 68 - Block_Specification = 69 - Prev_Block_Configuration = 70 - Configuration_Item_Chain = 71 - Attribute_Value_Chain = 72 - Spec_Chain = 73 - Value_Chain = 74 - Attribute_Value_Spec_Chain = 75 - Entity_Name = 76 - Package = 77 - Package_Body = 78 - Instance_Package_Body = 79 - Need_Body = 80 - Macro_Expanded_Flag = 81 - Need_Instance_Bodies = 82 - Hierarchical_Name = 83 - Vunit_Item_Chain = 84 - Bound_Vunit_Chain = 85 - Verification_Block_Configuration = 86 - Block_Configuration = 87 - Concurrent_Statement_Chain = 88 - Chain = 89 - Port_Chain = 90 - Generic_Chain = 91 - Type = 92 - Subtype_Indication = 93 - Discrete_Range = 94 - Type_Definition = 95 - Subtype_Definition = 96 - Incomplete_Type_Declaration = 97 - Interface_Type_Subprograms = 98 - Nature_Definition = 99 - Nature = 100 - Subnature_Indication = 101 - Reference_Terminal_Flag = 102 - Mode = 103 - Guarded_Signal_Flag = 104 - Signal_Kind = 105 - Base_Name = 106 - Interface_Declaration_Chain = 107 - Subprogram_Specification = 108 - Sequential_Statement_Chain = 109 - Simultaneous_Statement_Chain = 110 - Subprogram_Body = 111 - Overload_Number = 112 - Subprogram_Depth = 113 - Subprogram_Hash = 114 - Impure_Depth = 115 - Return_Type = 116 - Implicit_Definition = 117 - Uninstantiated_Subprogram_Name = 118 - Default_Value = 119 - Deferred_Declaration = 120 - Deferred_Declaration_Flag = 121 - Shared_Flag = 122 - Design_Unit = 123 - Block_Statement = 124 - Signal_Driver = 125 - Declaration_Chain = 126 - File_Logical_Name = 127 - File_Open_Kind = 128 - Element_Position = 129 - Use_Clause_Chain = 130 - Context_Reference_Chain = 131 - Inherit_Spec_Chain = 132 - Selected_Name = 133 - Type_Declarator = 134 - Complete_Type_Definition = 135 - Incomplete_Type_Ref_Chain = 136 - Associated_Type = 137 - Enumeration_Literal_List = 138 - Entity_Class_Entry_Chain = 139 - Group_Constituent_List = 140 - Unit_Chain = 141 - Primary_Unit = 142 - Identifier = 143 - Label = 144 - Return_Identifier = 145 - Visible_Flag = 146 - Range_Constraint = 147 - Direction = 148 - Left_Limit = 149 - Right_Limit = 150 - Left_Limit_Expr = 151 - Right_Limit_Expr = 152 - Parent_Type = 153 - Simple_Nature = 154 - Base_Nature = 155 - Resolution_Indication = 156 - Record_Element_Resolution_Chain = 157 - Tolerance = 158 - Plus_Terminal_Name = 159 - Minus_Terminal_Name = 160 - Plus_Terminal = 161 - Minus_Terminal = 162 - Magnitude_Expression = 163 - Phase_Expression = 164 - Power_Expression = 165 - Simultaneous_Left = 166 - Simultaneous_Right = 167 - Text_File_Flag = 168 - Only_Characters_Flag = 169 - Is_Character_Type = 170 - Nature_Staticness = 171 - Type_Staticness = 172 - Constraint_State = 173 - Index_Subtype_List = 174 - Index_Subtype_Definition_List = 175 - Element_Subtype_Indication = 176 - Element_Subtype = 177 - Element_Subnature_Indication = 178 - Element_Subnature = 179 - Index_Constraint_List = 180 - Array_Element_Constraint = 181 - Has_Array_Constraint_Flag = 182 - Has_Element_Constraint_Flag = 183 - Elements_Declaration_List = 184 - Owned_Elements_Chain = 185 - Designated_Type = 186 - Designated_Subtype_Indication = 187 - Index_List = 188 - Reference = 189 - Nature_Declarator = 190 - Across_Type_Mark = 191 - Through_Type_Mark = 192 - Across_Type_Definition = 193 - Through_Type_Definition = 194 - Across_Type = 195 - Through_Type = 196 - Target = 197 - Waveform_Chain = 198 - Guard = 199 - Delay_Mechanism = 200 - Reject_Time_Expression = 201 - Force_Mode = 202 - Has_Force_Mode = 203 - Sensitivity_List = 204 - Process_Origin = 205 - Package_Origin = 206 - Condition_Clause = 207 - Break_Element = 208 - Selector_Quantity = 209 - Break_Quantity = 210 - Timeout_Clause = 211 - Postponed_Flag = 212 - Callees_List = 213 - Passive_Flag = 214 - Resolution_Function_Flag = 215 - Wait_State = 216 - All_Sensitized_State = 217 - Seen_Flag = 218 - Pure_Flag = 219 - Foreign_Flag = 220 - Resolved_Flag = 221 - Signal_Type_Flag = 222 - Has_Signal_Flag = 223 - Purity_State = 224 - Elab_Flag = 225 - Vendor_Library_Flag = 226 - Configuration_Mark_Flag = 227 - Configuration_Done_Flag = 228 - Index_Constraint_Flag = 229 - Hide_Implicit_Flag = 230 - Assertion_Condition = 231 - Report_Expression = 232 - Severity_Expression = 233 - Instantiated_Unit = 234 - Generic_Map_Aspect_Chain = 235 - Port_Map_Aspect_Chain = 236 - Configuration_Name = 237 - Component_Configuration = 238 - Configuration_Specification = 239 - Default_Binding_Indication = 240 - Default_Configuration_Declaration = 241 - Expression = 242 - Conditional_Expression_Chain = 243 - Allocator_Designated_Type = 244 - Selected_Waveform_Chain = 245 - Conditional_Waveform_Chain = 246 - Guard_Expression = 247 - Guard_Decl = 248 - Guard_Sensitivity_List = 249 - Attribute_Implicit_Chain = 250 - Block_Block_Configuration = 251 - Package_Header = 252 - Block_Header = 253 - Uninstantiated_Package_Name = 254 - Uninstantiated_Package_Decl = 255 - Instance_Source_File = 256 - Generate_Block_Configuration = 257 - Generate_Statement_Body = 258 - Alternative_Label = 259 - Generate_Else_Clause = 260 - Condition = 261 - Else_Clause = 262 - Parameter_Specification = 263 - Parent = 264 - Loop_Label = 265 - Exit_Flag = 266 - Next_Flag = 267 - Component_Name = 268 - Instantiation_List = 269 - Entity_Aspect = 270 - Default_Entity_Aspect = 271 - Binding_Indication = 272 - Named_Entity = 273 - Referenced_Name = 274 - Expr_Staticness = 275 - Scalar_Size = 276 - Error_Origin = 277 - Operand = 278 - Left = 279 - Right = 280 - Unit_Name = 281 - Name = 282 - Group_Template_Name = 283 - Name_Staticness = 284 - Prefix = 285 - Signature_Prefix = 286 - External_Pathname = 287 - Pathname_Suffix = 288 - Pathname_Expression = 289 - In_Formal_Flag = 290 - Inertial_Flag = 291 - Slice_Subtype = 292 - Suffix = 293 - Index_Subtype = 294 - Parameter = 295 - Parameter_2 = 296 - Parameter_3 = 297 - Parameter_4 = 298 - Attr_Chain = 299 - Attribute_Implicit_Declaration = 300 - Actual_Type = 301 - Actual_Type_Definition = 302 - Association_Chain = 303 - Individual_Association_Chain = 304 - Subprogram_Association_Chain = 305 - Aggregate_Info = 306 - Sub_Aggregate_Info = 307 - Aggr_Dynamic_Flag = 308 - Aggr_Min_Length = 309 - Aggr_Low_Limit = 310 - Aggr_High_Limit = 311 - Aggr_Others_Flag = 312 - Aggr_Named_Flag = 313 - Aggregate_Expand_Flag = 314 - Association_Choices_Chain = 315 - Case_Statement_Alternative_Chain = 316 - Matching_Flag = 317 - Choice_Staticness = 318 - Procedure_Call = 319 - Implementation = 320 - Parameter_Association_Chain = 321 - Method_Object = 322 - Subtype_Type_Mark = 323 - Subnature_Nature_Mark = 324 - Type_Conversion_Subtype = 325 - Type_Mark = 326 - File_Type_Mark = 327 - Return_Type_Mark = 328 - Has_Disconnect_Flag = 329 - Has_Active_Flag = 330 - Is_Within_Flag = 331 - Type_Marks_List = 332 - Implicit_Alias_Flag = 333 - Alias_Signature = 334 - Attribute_Signature = 335 - Overload_List = 336 - Simple_Name_Identifier = 337 - Simple_Name_Subtype = 338 - Protected_Type_Body = 339 - Protected_Type_Declaration = 340 - Use_Flag = 341 - End_Has_Reserved_Id = 342 - End_Has_Identifier = 343 - End_Has_Postponed = 344 - Has_Label = 345 - Has_Begin = 346 - Has_End = 347 - Has_Is = 348 - Has_Pure = 349 - Has_Body = 350 - Has_Parameter = 351 - Has_Component = 352 - Has_Identifier_List = 353 - Has_Mode = 354 - Has_Class = 355 - Has_Delay_Mechanism = 356 - Suspend_Flag = 357 - Stop_Flag = 358 - Is_Ref = 359 - Is_Forward_Ref = 360 - Psl_Property = 361 - Psl_Sequence = 362 - Psl_Declaration = 363 - Psl_Expression = 364 - Psl_Boolean = 365 - PSL_Clock = 366 - PSL_NFA = 367 - PSL_Nbr_States = 368 - PSL_Clock_Sensitivity = 369 - PSL_EOS_Flag = 370 - PSL_Abort_Flag = 371 - Count_Expression = 372 - Clock_Expression = 373 - Default_Clock = 374 - Foreign_Node = 375 - Suspend_State_Index = 376 - Suspend_State_Chain = 377 + Open_Actual = 51 + Actual_Conversion = 52 + Formal_Conversion = 53 + Whole_Association_Flag = 54 + Collapse_Signal_Flag = 55 + Artificial_Flag = 56 + Open_Flag = 57 + After_Drivers_Flag = 58 + We_Value = 59 + Time = 60 + Associated_Expr = 61 + Associated_Block = 62 + Associated_Chain = 63 + Choice_Name = 64 + Choice_Expression = 65 + Choice_Range = 66 + Same_Alternative_Flag = 67 + Element_Type_Flag = 68 + Architecture = 69 + Block_Specification = 70 + Prev_Block_Configuration = 71 + Configuration_Item_Chain = 72 + Attribute_Value_Chain = 73 + Spec_Chain = 74 + Value_Chain = 75 + Attribute_Value_Spec_Chain = 76 + Entity_Name = 77 + Package = 78 + Package_Body = 79 + Instance_Package_Body = 80 + Need_Body = 81 + Macro_Expanded_Flag = 82 + Need_Instance_Bodies = 83 + Hierarchical_Name = 84 + Vunit_Item_Chain = 85 + Bound_Vunit_Chain = 86 + Verification_Block_Configuration = 87 + Block_Configuration = 88 + Concurrent_Statement_Chain = 89 + Chain = 90 + Port_Chain = 91 + Generic_Chain = 92 + Type = 93 + Subtype_Indication = 94 + Discrete_Range = 95 + Type_Definition = 96 + Subtype_Definition = 97 + Incomplete_Type_Declaration = 98 + Interface_Type_Subprograms = 99 + Nature_Definition = 100 + Nature = 101 + Subnature_Indication = 102 + Reference_Terminal_Flag = 103 + Mode = 104 + Guarded_Signal_Flag = 105 + Signal_Kind = 106 + Base_Name = 107 + Interface_Declaration_Chain = 108 + Default_Subprogram = 109 + Subprogram_Specification = 110 + Sequential_Statement_Chain = 111 + Simultaneous_Statement_Chain = 112 + Subprogram_Body = 113 + Overload_Number = 114 + Subprogram_Depth = 115 + Subprogram_Hash = 116 + Impure_Depth = 117 + Return_Type = 118 + Implicit_Definition = 119 + Uninstantiated_Subprogram_Name = 120 + Default_Value = 121 + Deferred_Declaration = 122 + Deferred_Declaration_Flag = 123 + Shared_Flag = 124 + Design_Unit = 125 + Block_Statement = 126 + Signal_Driver = 127 + Declaration_Chain = 128 + File_Logical_Name = 129 + File_Open_Kind = 130 + Element_Position = 131 + Use_Clause_Chain = 132 + Context_Reference_Chain = 133 + Inherit_Spec_Chain = 134 + Selected_Name = 135 + Type_Declarator = 136 + Complete_Type_Definition = 137 + Incomplete_Type_Ref_Chain = 138 + Associated_Type = 139 + Enumeration_Literal_List = 140 + Entity_Class_Entry_Chain = 141 + Group_Constituent_List = 142 + Unit_Chain = 143 + Primary_Unit = 144 + Identifier = 145 + Label = 146 + Return_Identifier = 147 + Visible_Flag = 148 + Range_Constraint = 149 + Direction = 150 + Left_Limit = 151 + Right_Limit = 152 + Left_Limit_Expr = 153 + Right_Limit_Expr = 154 + Parent_Type = 155 + Simple_Nature = 156 + Base_Nature = 157 + Resolution_Indication = 158 + Record_Element_Resolution_Chain = 159 + Tolerance = 160 + Plus_Terminal_Name = 161 + Minus_Terminal_Name = 162 + Plus_Terminal = 163 + Minus_Terminal = 164 + Magnitude_Expression = 165 + Phase_Expression = 166 + Power_Expression = 167 + Simultaneous_Left = 168 + Simultaneous_Right = 169 + Text_File_Flag = 170 + Only_Characters_Flag = 171 + Is_Character_Type = 172 + Nature_Staticness = 173 + Type_Staticness = 174 + Constraint_State = 175 + Index_Subtype_List = 176 + Index_Subtype_Definition_List = 177 + Element_Subtype_Indication = 178 + Element_Subtype = 179 + Element_Subnature_Indication = 180 + Element_Subnature = 181 + Index_Constraint_List = 182 + Array_Element_Constraint = 183 + Has_Array_Constraint_Flag = 184 + Has_Element_Constraint_Flag = 185 + Elements_Declaration_List = 186 + Owned_Elements_Chain = 187 + Designated_Type = 188 + Designated_Subtype_Indication = 189 + Index_List = 190 + Reference = 191 + Nature_Declarator = 192 + Across_Type_Mark = 193 + Through_Type_Mark = 194 + Across_Type_Definition = 195 + Through_Type_Definition = 196 + Across_Type = 197 + Through_Type = 198 + Target = 199 + Waveform_Chain = 200 + Guard = 201 + Delay_Mechanism = 202 + Reject_Time_Expression = 203 + Force_Mode = 204 + Has_Force_Mode = 205 + Sensitivity_List = 206 + Process_Origin = 207 + Package_Origin = 208 + Condition_Clause = 209 + Break_Element = 210 + Selector_Quantity = 211 + Break_Quantity = 212 + Timeout_Clause = 213 + Postponed_Flag = 214 + Callees_List = 215 + Passive_Flag = 216 + Resolution_Function_Flag = 217 + Wait_State = 218 + All_Sensitized_State = 219 + Seen_Flag = 220 + Pure_Flag = 221 + Foreign_Flag = 222 + Resolved_Flag = 223 + Signal_Type_Flag = 224 + Has_Signal_Flag = 225 + Purity_State = 226 + Elab_Flag = 227 + Vendor_Library_Flag = 228 + Configuration_Mark_Flag = 229 + Configuration_Done_Flag = 230 + Index_Constraint_Flag = 231 + Hide_Implicit_Flag = 232 + Assertion_Condition = 233 + Report_Expression = 234 + Severity_Expression = 235 + Instantiated_Unit = 236 + Generic_Map_Aspect_Chain = 237 + Port_Map_Aspect_Chain = 238 + Configuration_Name = 239 + Component_Configuration = 240 + Configuration_Specification = 241 + Default_Binding_Indication = 242 + Default_Configuration_Declaration = 243 + Expression = 244 + Conditional_Expression_Chain = 245 + Allocator_Designated_Type = 246 + Selected_Waveform_Chain = 247 + Conditional_Waveform_Chain = 248 + Guard_Expression = 249 + Guard_Decl = 250 + Guard_Sensitivity_List = 251 + Attribute_Implicit_Chain = 252 + Block_Block_Configuration = 253 + Package_Header = 254 + Block_Header = 255 + Uninstantiated_Package_Name = 256 + Uninstantiated_Package_Decl = 257 + Instance_Source_File = 258 + Generate_Block_Configuration = 259 + Generate_Statement_Body = 260 + Alternative_Label = 261 + Generate_Else_Clause = 262 + Condition = 263 + Else_Clause = 264 + Parameter_Specification = 265 + Parent = 266 + Loop_Label = 267 + Exit_Flag = 268 + Next_Flag = 269 + Component_Name = 270 + Instantiation_List = 271 + Entity_Aspect = 272 + Default_Entity_Aspect = 273 + Binding_Indication = 274 + Named_Entity = 275 + Referenced_Name = 276 + Expr_Staticness = 277 + Scalar_Size = 278 + Error_Origin = 279 + Operand = 280 + Left = 281 + Right = 282 + Unit_Name = 283 + Name = 284 + Group_Template_Name = 285 + Name_Staticness = 286 + Prefix = 287 + Signature_Prefix = 288 + External_Pathname = 289 + Pathname_Suffix = 290 + Pathname_Expression = 291 + In_Formal_Flag = 292 + Inertial_Flag = 293 + Slice_Subtype = 294 + Suffix = 295 + Index_Subtype = 296 + Parameter = 297 + Parameter_2 = 298 + Parameter_3 = 299 + Parameter_4 = 300 + Attr_Chain = 301 + Attribute_Implicit_Declaration = 302 + Actual_Type = 303 + Actual_Type_Definition = 304 + Association_Chain = 305 + Individual_Association_Chain = 306 + Subprogram_Association_Chain = 307 + Aggregate_Info = 308 + Sub_Aggregate_Info = 309 + Aggr_Dynamic_Flag = 310 + Aggr_Min_Length = 311 + Aggr_Low_Limit = 312 + Aggr_High_Limit = 313 + Aggr_Others_Flag = 314 + Aggr_Named_Flag = 315 + Aggregate_Expand_Flag = 316 + Association_Choices_Chain = 317 + Case_Statement_Alternative_Chain = 318 + Matching_Flag = 319 + Choice_Staticness = 320 + Procedure_Call = 321 + Implementation = 322 + Parameter_Association_Chain = 323 + Method_Object = 324 + Subtype_Type_Mark = 325 + Subnature_Nature_Mark = 326 + Type_Conversion_Subtype = 327 + Type_Mark = 328 + File_Type_Mark = 329 + Return_Type_Mark = 330 + Has_Disconnect_Flag = 331 + Has_Active_Flag = 332 + Is_Within_Flag = 333 + Type_Marks_List = 334 + Implicit_Alias_Flag = 335 + Alias_Signature = 336 + Attribute_Signature = 337 + Overload_List = 338 + Simple_Name_Identifier = 339 + Simple_Name_Subtype = 340 + Protected_Type_Body = 341 + Protected_Type_Declaration = 342 + Use_Flag = 343 + End_Has_Reserved_Id = 344 + End_Has_Identifier = 345 + End_Has_Postponed = 346 + Has_Label = 347 + Has_Begin = 348 + Has_End = 349 + Has_Is = 350 + Has_Pure = 351 + Has_Body = 352 + Has_Parameter = 353 + Has_Component = 354 + Has_Identifier_List = 355 + Has_Mode = 356 + Has_Class = 357 + Has_Delay_Mechanism = 358 + Suspend_Flag = 359 + Stop_Flag = 360 + Is_Ref = 361 + Is_Forward_Ref = 362 + Psl_Property = 363 + Psl_Sequence = 364 + Psl_Declaration = 365 + Psl_Expression = 366 + Psl_Boolean = 367 + PSL_Clock = 368 + PSL_NFA = 369 + PSL_Nbr_States = 370 + PSL_Clock_Sensitivity = 371 + PSL_EOS_Flag = 372 + PSL_Abort_Flag = 373 + Count_Expression = 374 + Clock_Expression = 375 + Default_Clock = 376 + Foreign_Node = 377 + Suspend_State_Index = 378 + Suspend_State_Chain = 379 def Get_Boolean(node, field): @@ -936,6 +938,12 @@ def Has_Actual(kind: IirKind) -> bool: @export +@BindToLibGHDL("vhdl__nodes_meta__has_open_actual") +def Has_Open_Actual(kind: IirKind) -> bool: + """""" + + +@export @BindToLibGHDL("vhdl__nodes_meta__has_actual_conversion") def Has_Actual_Conversion(kind: IirKind) -> bool: """""" @@ -1278,6 +1286,12 @@ def Has_Interface_Declaration_Chain(kind: IirKind) -> bool: @export +@BindToLibGHDL("vhdl__nodes_meta__has_default_subprogram") +def Has_Default_Subprogram(kind: IirKind) -> bool: + """""" + + +@export @BindToLibGHDL("vhdl__nodes_meta__has_subprogram_specification") def Has_Subprogram_Specification(kind: IirKind) -> bool: """""" |