-- Semantic analysis. -- Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold -- -- GHDL is free software; you can redistribute it and/or modify it under -- the terms of the GNU General Public License as published by the Free -- Software Foundation; either version 2, or (at your option) any later -- version. -- -- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY -- WARRANTY; without even the implied warranty of MERCHANTABILITY or -- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- for more details. -- -- You should have received a copy of the GNU General Public License -- along with GHDL; see the file COPYING. If not, write to the Free -- Software Foundation, 59 Temple Place - Suite 330, Boston, MA -- 02111-1307, USA. with Iirs; use Iirs; with Tokens; package Sem_Specs is function Get_Entity_Class_Kind (Decl : Iir) return Tokens.Token_Type; procedure Sem_Attribute_Specification (Spec : Iir_Attribute_Specification; Scope : Iir); -- Check declarations following an ALL/OTHERS attribute specification. -- ATTR_SPEC_CHAIN is the linked list of all attribute specifications whith -- the entity name list ALL or OTHERS until the current declaration DECL. -- So no specification in the chain must match the declaration. procedure Check_Post_Attribute_Specification (Attr_Spec_Chain : Iir; Decl : Iir); procedure Sem_Disconnect_Specification (Dis : Iir_Disconnection_Specification); procedure Sem_Configuration_Specification (Parent_Stmts : Iir; Conf : Iir_Configuration_Specification); procedure Sem_Binding_Indication (Bind : Iir_Binding_Indication; Comp : Iir_Component_Declaration; Parent : Iir; Primary_Entity_Aspect : Iir); -- Semantize entity aspect ASPECT and return the entity declaration. -- Return NULL_IIR if not found. function Sem_Entity_Aspect (Aspect : Iir) return Iir; -- Semantize component_configuration or configuration_specification SPEC. -- STMTS is the concurrent statement list related to SPEC. procedure Sem_Component_Specification (Parent_Stmts : Iir; Spec : Iir; Primary_Entity_Aspect : out Iir); -- Create a default binding indication for component COMP which will be -- bound with entity ENTITY_UNIT. -- If ENTITY_UNIT is NULL_IIR, the component is not bound. -- If FORCE is True, a binding indication will be created even if the -- component is not bound (this is an open binding indication). -- PARENT is used to report error. function Sem_Create_Default_Binding_Indication (Comp : Iir_Component_Declaration; Entity_Unit : Iir_Design_Unit; Parent : Iir; Force : Boolean) return Iir_Binding_Indication; -- Create a default generic or port map aspect that associates all elements -- of ENTITY (if any) to elements of COMP with the same name or to -- an open association. -- If KIND is GENERIC_MAP, apply this on generics, if KIND is PORT_MAP, -- apply this on ports. -- PARENT is used to report errors. type Map_Kind_Type is (Map_Generic, Map_Port); function Create_Default_Map_Aspect (Comp : Iir; Entity : Iir; Kind : Map_Kind_Type; Parent : Iir) return Iir; -- Explain why there is no default binding for COMP. procedure Explain_No_Visible_Entity (Comp: Iir_Component_Declaration); function Get_Visible_Entity_Declaration (Comp: Iir_Component_Declaration) return Iir_Design_Unit; procedure Sem_Specification_Chain (Decls_Parent : Iir; Parent_Stmts: Iir); end Sem_Specs;