aboutsummaryrefslogtreecommitdiffstats
path: root/sem_specs.ads
diff options
context:
space:
mode:
authorgingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2005-09-24 05:10:24 +0000
committergingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2005-09-24 05:10:24 +0000
commit977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849 (patch)
tree7bcf8e7aff40a8b54d4af83e90cccd73568e77bb /sem_specs.ads
downloadghdl-977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849.tar.gz
ghdl-977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849.tar.bz2
ghdl-977ff5e02c6d2f9bfdabcf8b4e98b81e2d83e849.zip
First import from sources
Diffstat (limited to 'sem_specs.ads')
-rw-r--r--sem_specs.ads82
1 files changed, 82 insertions, 0 deletions
diff --git a/sem_specs.ads b/sem_specs.ads
new file mode 100644
index 000000000..ab02fb2c4
--- /dev/null
+++ b/sem_specs.ads
@@ -0,0 +1,82 @@
+-- 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 GCC; 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.
+ 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;