.. # This page is generated by doc/ASTReference.py when Sphinx starts. Do not edit it. Interface Declaration ##################### The diagrams below draw one box per node kind, with one port per field. The edge colours say how a link is held; they are listed in full on the :ref:`INT:AST:Fields` page. .. graphviz:: digraph { rankdir="LR" nodesep=0.1 node [shape=point width=0.06 color="#888a85"] edge [fontname="monospace" fontsize=10 minlen=3] l0a -> l0b [label="owned" color="#000000"] l1a -> l1b [label="ref" color="#3465a4" style=dashed] l2a -> l2b [label="maybe ref" color="#3465a4" style=dotted] l3a -> l3b [label="of ref" color="#3465a4" style=dashed] l4a -> l4b [label="of maybe ref" color="#3465a4" style=dotted] l5a -> l5b [label="forward ref" color="#f57900" style=dashed] l6a -> l6b [label="maybe forward ref" color="#f57900" style=dotted] l7a -> l7b [label="chain" color="#4e9a06"] l8a -> l8b [label="chain next" color="#4e9a06" style=bold] } .. _INT:AST:Interface_Terminal_Declaration: Iir_Kind_Interface_Terminal_Declaration ======================================= Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Identifier ` - ``Field3`` - ``Name_Id`` - owned - Get/Set the identifier of a declaration. Can also be used instead of get/set_label. * - :ref:`Subnature_Indication ` - ``Field5`` - ``Iir`` - owned - — * - :ref:`Nature ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Has_Identifier_List ` - ``Flag3`` - ``Boolean`` - owned - Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on 'signal A, B, C : Bit', the flag is set on A and B (but not C). * - :ref:`Visible_Flag ` - ``Flag4`` - ``Boolean`` - owned - Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. * - :ref:`Use_Flag ` - ``Flag6`` - ``Boolean`` - owned - For a declaration: true if the declaration is used somewhere. * - :ref:`Has_Mode ` - ``Flag10`` - ``Boolean`` - owned - Layout flag for object declaration. If True, the mode is present. * - :ref:`Has_Class ` - ``Flag11`` - ``Boolean`` - owned - Layout flag for object declaration. If True, the object class is present. * - :ref:`Has_Semicolon ` - ``Flag16`` - ``Boolean`` - owned - Layout flag for interface declaration. If True, ';' is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List. * - :ref:`Is_Ref ` - ``Flag12`` - ``Boolean`` - owned - Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. * - :ref:`Name_Staticness ` - ``State2`` - ``Iir_Staticness`` - owned - Staticness of a name, according to rules of LRM 6.1 .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Interface_Terminal_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Terminal_Declaration|{ Parent| Chain| Identifier| Subnature_Indication| Nature| Has_Identifier_List| Visible_Flag| Use_Flag| Has_Mode| Has_Class| Has_Semicolon| Is_Ref| Name_Staticness}}"] "Interface_Terminal_Declaration__Parent" [shape=box label="Iir"] "Interface_Terminal_Declaration":Parent -> "Interface_Terminal_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Terminal_Declaration__Chain" [shape=box label="Iir"] "Interface_Terminal_Declaration":Chain -> "Interface_Terminal_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Terminal_Declaration__Subnature_Indication" [shape=box label="Iir"] "Interface_Terminal_Declaration":Subnature_Indication -> "Interface_Terminal_Declaration__Subnature_Indication" [color="#000000"] "Interface_Terminal_Declaration__Nature" [shape=box label="Iir"] "Interface_Terminal_Declaration":Nature -> "Interface_Terminal_Declaration__Nature" [color="#3465a4" style=dashed] } .. _INT:AST:Interface_Type_Declaration: Iir_Kind_Interface_Type_Declaration =================================== Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Interface_Type_Definition ` - ``Field5`` - ``Iir`` - owned - Owner of the interface type definition. * - :ref:`Type ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Identifier ` - ``Field3`` - ``Name_Id`` - owned - Get/Set the identifier of a declaration. Can also be used instead of get/set_label. * - :ref:`Interface_Type_Subprograms ` - ``Field4`` - ``Iir`` - chain - Chain of extra interfaces for = and /=. * - :ref:`Has_Identifier_List ` - ``Flag3`` - ``Boolean`` - owned - Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on 'signal A, B, C : Bit', the flag is set on A and B (but not C). * - :ref:`Visible_Flag ` - ``Flag4`` - ``Boolean`` - owned - Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. * - :ref:`Use_Flag ` - ``Flag6`` - ``Boolean`` - owned - For a declaration: true if the declaration is used somewhere. * - :ref:`Is_Ref ` - ``Flag12`` - ``Boolean`` - owned - Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present. * - :ref:`Open_Flag ` - ``Flag7`` - ``Boolean`` - owned - This flag is set for a very short time during the check that no in port is unconnected. * - :ref:`Has_Semicolon ` - ``Flag16`` - ``Boolean`` - owned - Layout flag for interface declaration. If True, ';' is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List. * - :ref:`Name_Staticness ` - ``State2`` - ``Iir_Staticness`` - owned - Staticness of a name, according to rules of LRM 6.1 .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Interface_Type_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Type_Declaration|{ Parent| Interface_Type_Definition| Type| Chain| Identifier| Interface_Type_Subprograms| Has_Identifier_List| Visible_Flag| Use_Flag| Is_Ref| Open_Flag| Has_Semicolon| Name_Staticness}}"] "Interface_Type_Declaration__Parent" [shape=box label="Iir"] "Interface_Type_Declaration":Parent -> "Interface_Type_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Type_Declaration__Interface_Type_Definition" [shape=box label="Iir"] "Interface_Type_Declaration":Interface_Type_Definition -> "Interface_Type_Declaration__Interface_Type_Definition" [color="#000000"] "Interface_Type_Declaration__Type" [shape=box label="Iir"] "Interface_Type_Declaration":Type -> "Interface_Type_Declaration__Type" [color="#3465a4" style=dashed] "Interface_Type_Declaration__Chain" [shape=box label="Iir"] "Interface_Type_Declaration":Chain -> "Interface_Type_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Type_Declaration__Interface_Type_Subprograms" [shape=box label="Iir"] "Interface_Type_Declaration":Interface_Type_Subprograms -> "Interface_Type_Declaration__Interface_Type_Subprograms" [color="#4e9a06"] } .. _INT:AST:Interface_Package_Declaration: Iir_Kind_Interface_Package_Declaration ====================================== LRM08 6.5.5 Interface package declarations :: interface_package_declaration ::= PACKAGE identifier IS NEW /uninstantiated_package/_name interface_package_generic_map_aspect :: interface_package_generic_map_aspect ::= generic_map_aspect | GENERIC MAP ( <> ) -- Represented by Null_Iir | GENERIC MAP ( DEFAULT ) -- Not yet implemented Format: ``Medium`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Identifier ` - ``Field3`` - ``Name_Id`` - owned - Get/Set the identifier of a declaration. Can also be used instead of get/set_label. * - :ref:`Uninstantiated_Package_Name ` - ``Field7`` - ``Iir`` - owned - Those fields are set only for the interface package in uninstantiated units. * - :ref:`Uninstantiated_Package_Decl ` - ``Field9`` - ``Iir`` - ref - — * - :ref:`Instance_Source_File ` - ``Field10`` - ``Source_File_Entry`` - owned - The created pseudo-file for relocating the instantiated nodes (generics and declarations). * - :ref:`Generic_Chain ` - ``Field6`` - ``Iir`` - chain - — * - :ref:`Generic_Map_Aspect_Chain ` - ``Field8`` - ``Iir`` - chain - Generic map aspect list. * - :ref:`Declaration_Chain ` - ``Field1`` - ``Iir`` - chain - — * - :ref:`Attribute_Value_Chain ` - ``Field5`` - ``Iir`` - ref - Chain of attribute values for declared items. To be used with Get/Set_Value_Chain. There is no order, therefore, a new attribute value may be always prepended. * - :ref:`Associated_Package ` - ``Field4`` - ``Iir`` - ref - This field is set only for interface package that has been associated. * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Visible_Flag ` - ``Flag4`` - ``Boolean`` - owned - Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. * - :ref:`Is_Within_Flag ` - ``Flag5`` - ``Boolean`` - owned - This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule. * - :ref:`Open_Flag ` - ``Flag7`` - ``Boolean`` - owned - This flag is set for a very short time during the check that no in port is unconnected. * - :ref:`Has_Semicolon ` - ``Flag16`` - ``Boolean`` - owned - Layout flag for interface declaration. If True, ';' is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Interface_Package_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Package_Declaration|{ Parent| Identifier| Uninstantiated_Package_Name| Uninstantiated_Package_Decl| Instance_Source_File| Generic_Chain| Generic_Map_Aspect_Chain| Declaration_Chain| Attribute_Value_Chain| Associated_Package| Chain| Visible_Flag| Is_Within_Flag| Open_Flag| Has_Semicolon}}"] "Interface_Package_Declaration__Parent" [shape=box label="Iir"] "Interface_Package_Declaration":Parent -> "Interface_Package_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Package_Declaration__Uninstantiated_Package_Name" [shape=box label="Iir"] "Interface_Package_Declaration":Uninstantiated_Package_Name -> "Interface_Package_Declaration__Uninstantiated_Package_Name" [color="#000000"] "Interface_Package_Declaration__Uninstantiated_Package_Decl" [shape=box label="Iir"] "Interface_Package_Declaration":Uninstantiated_Package_Decl -> "Interface_Package_Declaration__Uninstantiated_Package_Decl" [color="#3465a4" style=dashed] "Interface_Package_Declaration__Generic_Chain" [shape=box label="Iir"] "Interface_Package_Declaration":Generic_Chain -> "Interface_Package_Declaration__Generic_Chain" [color="#4e9a06"] "Interface_Package_Declaration__Generic_Map_Aspect_Chain" [shape=box label="Iir"] "Interface_Package_Declaration":Generic_Map_Aspect_Chain -> "Interface_Package_Declaration__Generic_Map_Aspect_Chain" [color="#4e9a06"] "Interface_Package_Declaration__Declaration_Chain" [shape=box label="Iir"] "Interface_Package_Declaration":Declaration_Chain -> "Interface_Package_Declaration__Declaration_Chain" [color="#4e9a06"] "Interface_Package_Declaration__Attribute_Value_Chain" [shape=box label="Iir"] "Interface_Package_Declaration":Attribute_Value_Chain -> "Interface_Package_Declaration__Attribute_Value_Chain" [color="#3465a4" style=dashed] "Interface_Package_Declaration__Associated_Package" [shape=box label="Iir"] "Interface_Package_Declaration":Associated_Package -> "Interface_Package_Declaration__Associated_Package" [color="#3465a4" style=dashed] "Interface_Package_Declaration__Chain" [shape=box label="Iir"] "Interface_Package_Declaration":Chain -> "Interface_Package_Declaration__Chain" [color="#4e9a06" style=bold] } .. _INT:AST:Interface_Function_Declaration: Iir_Kind_Interface_Function_Declaration ======================================= LRM08 6.5.4 Interface subprogram declarations :: interface_subprogram_declaration ::= interface_subprogram_specification [ IS interface_subprogram_default ] :: interface_subprogram_specification ::= interface_procedure_specification | interface_function_specification :: interface_procedure_specification ::= PROCEDURE designator [ [ PARAMETER ] ( formal_parameter_list ) ] :: interface_function_specification ::= [ PURE | IMPURE ] FUNCTION designator [ [ PARAMETER ] ( formal_parameter_list ) ] RETURN type_mark Format: ``Medium`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Return_Type ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Identifier ` - ``Field3`` - ``Name_Id`` - owned - For string, the identifier is the corresponding reserved word. * - :ref:`Subprogram_Hash ` - ``Field4`` - ``Iir_Int32`` - owned - Hash of a subprogram profile. This is used to speed up subprogram profile comparison, which is very often used by overload. * - :ref:`Interface_Declaration_Chain ` - ``Field5`` - ``Iir`` - chain - — * - :ref:`Return_Type_Mark ` - ``Field8`` - ``Iir`` - owned - — * - :ref:`Default_Subprogram ` - ``Field9`` - ``Iir`` - owned - A Reference_Name for <>. * - :ref:`Subprogram_Depth ` - ``Field10`` - ``Iir_Int32`` - owned - Depth of a subprogram. For a subprogram declared immediately within an entity, architecture, package, process, block, generate, the depth is 0. For a subprogram declared immediately within a subprogram of level N, the depth is N + 1. Depth is used with depth of impure objects to check purity rules. * - :ref:`Associated_Subprogram ` - ``Field6`` - ``Iir`` - ref - — * - :ref:`Seen_Flag ` - ``Flag1`` - ``Boolean`` - owned - Get/Set the seen flag. Used when the graph of callees is walked, to avoid infinite loops, since the graph is not a DAG (there may be cycles). * - :ref:`Pure_Flag ` - ``Flag14`` - ``Boolean`` - owned - Get/Set the pure flag of a function. TRUE if the function is declared pure. FALSE if the function is declared impure. * - :ref:`Foreign_Flag ` - ``Flag3`` - ``Boolean`` - owned - Get/Set the foreign flag of a declaration. TRUE if the declaration was decorated with the std.foreign attribute. * - :ref:`Visible_Flag ` - ``Flag4`` - ``Boolean`` - owned - Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. * - :ref:`Use_Flag ` - ``Flag6`` - ``Boolean`` - owned - For a declaration: true if the declaration is used somewhere. * - :ref:`Resolution_Function_Flag ` - ``Flag13`` - ``Boolean`` - owned - True if the function is used as a resolution function. * - :ref:`Has_Pure ` - ``Flag8`` - ``Boolean`` - owned - Layout flag: true if 'pure' or 'impure' is present. * - :ref:`Has_Parameter ` - ``Flag10`` - ``Boolean`` - owned - Layout flag: true if 'parameter' reserved identifier is present. * - :ref:`All_Sensitized_State ` - ``State3`` - ``Iir_All_Sensitized`` - owned - Get/Set whether the subprogram may be called by a sensitized process whose sensitivity list is ALL. FALSE if declared in a package unit and reads a signal that is not one of its interface, or if it calls such a subprogram. TRUE if it doesn't call a subprogram whose state is False and either doesn't read a signal or declared within an entity or architecture. UNKNOWN if the status is not yet known. * - :ref:`Open_Flag ` - ``Flag7`` - ``Boolean`` - owned - This flag is set for a very short time during the check that no in port is unconnected. * - :ref:`Has_Semicolon ` - ``Flag16`` - ``Boolean`` - owned - Layout flag for interface declaration. If True, ';' is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Interface_Function_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Function_Declaration|{ Parent| Return_Type| Chain| Identifier| Subprogram_Hash| Interface_Declaration_Chain| Return_Type_Mark| Default_Subprogram| Subprogram_Depth| Associated_Subprogram| Seen_Flag| Pure_Flag| Foreign_Flag| Visible_Flag| Use_Flag| Resolution_Function_Flag| Has_Pure| Has_Parameter| All_Sensitized_State| Open_Flag| Has_Semicolon}}"] "Interface_Function_Declaration__Parent" [shape=box label="Iir"] "Interface_Function_Declaration":Parent -> "Interface_Function_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Function_Declaration__Return_Type" [shape=box label="Iir"] "Interface_Function_Declaration":Return_Type -> "Interface_Function_Declaration__Return_Type" [color="#3465a4" style=dashed] "Interface_Function_Declaration__Chain" [shape=box label="Iir"] "Interface_Function_Declaration":Chain -> "Interface_Function_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Function_Declaration__Interface_Declaration_Chain" [shape=box label="Iir"] "Interface_Function_Declaration":Interface_Declaration_Chain -> "Interface_Function_Declaration__Interface_Declaration_Chain" [color="#4e9a06"] "Interface_Function_Declaration__Return_Type_Mark" [shape=box label="Iir"] "Interface_Function_Declaration":Return_Type_Mark -> "Interface_Function_Declaration__Return_Type_Mark" [color="#000000"] "Interface_Function_Declaration__Default_Subprogram" [shape=box label="Iir"] "Interface_Function_Declaration":Default_Subprogram -> "Interface_Function_Declaration__Default_Subprogram" [color="#000000"] "Interface_Function_Declaration__Associated_Subprogram" [shape=box label="Iir"] "Interface_Function_Declaration":Associated_Subprogram -> "Interface_Function_Declaration__Associated_Subprogram" [color="#3465a4" style=dashed] } .. _INT:AST:Interface_Procedure_Declaration: Iir_Kind_Interface_Procedure_Declaration ======================================== LRM08 6.5.4 Interface subprogram declarations :: interface_subprogram_declaration ::= interface_subprogram_specification [ IS interface_subprogram_default ] :: interface_subprogram_specification ::= interface_procedure_specification | interface_function_specification :: interface_procedure_specification ::= PROCEDURE designator [ [ PARAMETER ] ( formal_parameter_list ) ] :: interface_function_specification ::= [ PURE | IMPURE ] FUNCTION designator [ [ PARAMETER ] ( formal_parameter_list ) ] RETURN type_mark Format: ``Medium`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Identifier ` - ``Field3`` - ``Name_Id`` - owned - For string, the identifier is the corresponding reserved word. * - :ref:`Subprogram_Hash ` - ``Field4`` - ``Iir_Int32`` - owned - Hash of a subprogram profile. This is used to speed up subprogram profile comparison, which is very often used by overload. * - :ref:`Interface_Declaration_Chain ` - ``Field5`` - ``Iir`` - chain - — * - :ref:`Return_Type_Mark ` - ``Field8`` - ``Iir`` - owned - — * - :ref:`Default_Subprogram ` - ``Field9`` - ``Iir`` - owned - A Reference_Name for <>. * - :ref:`Subprogram_Depth ` - ``Field10`` - ``Iir_Int32`` - owned - Depth of a subprogram. For a subprogram declared immediately within an entity, architecture, package, process, block, generate, the depth is 0. For a subprogram declared immediately within a subprogram of level N, the depth is N + 1. Depth is used with depth of impure objects to check purity rules. * - :ref:`Associated_Subprogram ` - ``Field6`` - ``Iir`` - ref - — * - :ref:`Seen_Flag ` - ``Flag1`` - ``Boolean`` - owned - Get/Set the seen flag. Used when the graph of callees is walked, to avoid infinite loops, since the graph is not a DAG (there may be cycles). * - :ref:`Foreign_Flag ` - ``Flag3`` - ``Boolean`` - owned - Get/Set the foreign flag of a declaration. TRUE if the declaration was decorated with the std.foreign attribute. * - :ref:`Visible_Flag ` - ``Flag4`` - ``Boolean`` - owned - Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished. * - :ref:`Use_Flag ` - ``Flag6`` - ``Boolean`` - owned - For a declaration: true if the declaration is used somewhere. * - :ref:`Has_Parameter ` - ``Flag10`` - ``Boolean`` - owned - Layout flag: true if 'parameter' reserved identifier is present. * - :ref:`Suspend_Flag ` - ``Flag11`` - ``Boolean`` - owned - Set on wait, procedure call and composite statements when there is a sub-statement that can suspend a procedure or a process. Also set on procedure declaration. Note that the flag is conservative: it must be true if the node contains directly or indirectly a wait statement, but need not to be false otherwise. * - :ref:`All_Sensitized_State ` - ``State3`` - ``Iir_All_Sensitized`` - owned - Get/Set whether the subprogram may be called by a sensitized process whose sensitivity list is ALL. FALSE if declared in a package unit and reads a signal that is not one of its interface, or if it calls such a subprogram. TRUE if it doesn't call a subprogram whose state is False and either doesn't read a signal or declared within an entity or architecture. UNKNOWN if the status is not yet known. * - :ref:`Open_Flag ` - ``Flag7`` - ``Boolean`` - owned - This flag is set for a very short time during the check that no in port is unconnected. * - :ref:`Has_Semicolon ` - ``Flag16`` - ``Boolean`` - owned - Layout flag for interface declaration. If True, ';' is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Interface_Procedure_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Procedure_Declaration|{ Parent| Chain| Identifier| Subprogram_Hash| Interface_Declaration_Chain| Return_Type_Mark| Default_Subprogram| Subprogram_Depth| Associated_Subprogram| Seen_Flag| Foreign_Flag| Visible_Flag| Use_Flag| Has_Parameter| Suspend_Flag| All_Sensitized_State| Open_Flag| Has_Semicolon}}"] "Interface_Procedure_Declaration__Parent" [shape=box label="Iir"] "Interface_Procedure_Declaration":Parent -> "Interface_Procedure_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Procedure_Declaration__Chain" [shape=box label="Iir"] "Interface_Procedure_Declaration":Chain -> "Interface_Procedure_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Procedure_Declaration__Interface_Declaration_Chain" [shape=box label="Iir"] "Interface_Procedure_Declaration":Interface_Declaration_Chain -> "Interface_Procedure_Declaration__Interface_Declaration_Chain" [color="#4e9a06"] "Interface_Procedure_Declaration__Return_Type_Mark" [shape=box label="Iir"] "Interface_Procedure_Declaration":Return_Type_Mark -> "Interface_Procedure_Declaration__Return_Type_Mark" [color="#000000"] "Interface_Procedure_Declaration__Default_Subprogram" [shape=box label="Iir"] "Interface_Procedure_Declaration":Default_Subprogram -> "Interface_Procedure_Declaration__Default_Subprogram" [color="#000000"] "Interface_Procedure_Declaration__Associated_Subprogram" [shape=box label="Iir"] "Interface_Procedure_Declaration":Associated_Subprogram -> "Interface_Procedure_Declaration__Associated_Subprogram" [color="#3465a4" style=dashed] }