summaryrefslogtreecommitdiff
path: root/src/vhdl/sem_assocs.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/sem_assocs.ads')
-rw-r--r--src/vhdl/sem_assocs.ads60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/vhdl/sem_assocs.ads b/src/vhdl/sem_assocs.ads
new file mode 100644
index 0000000..ec460e0
--- /dev/null
+++ b/src/vhdl/sem_assocs.ads
@@ -0,0 +1,60 @@
+-- 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;
+
+package Sem_Assocs is
+ -- Change the kind of association corresponding to non-object interfaces.
+ -- Such an association mustn't be handled an like association for object.
+ function Extract_Non_Object_Association
+ (Assoc_Chain : Iir; Inter_Chain : Iir) return Iir;
+
+ -- Semantize actuals of ASSOC_CHAIN.
+ -- Check all named associations are after positionnal one.
+ -- Return TRUE if no error.
+ function Sem_Actual_Of_Association_Chain (Assoc_Chain : Iir) return Boolean;
+
+ -- Semantize association chain ASSOC_CHAIN with interfaces from
+ -- INTERFACE_CHAIN.
+ -- Return the level of compatibility between the two chains in LEVEL.
+ -- If FINISH is true, then ASSOC_CHAIN may be modifies (individual assoc
+ -- added), and error messages (if any) are displayed.
+ -- MISSING control unassociated interfaces.
+ -- LOC is the association.
+ -- Sem_Actual_Of_Association_Chain must have been called before.
+ type Missing_Type is (Missing_Parameter, Missing_Port, Missing_Generic,
+ Missing_Allowed);
+ procedure Sem_Association_Chain
+ (Interface_Chain : Iir;
+ Assoc_Chain: in out Iir;
+ Finish: Boolean;
+ Missing : Missing_Type;
+ Loc : Iir;
+ Match : out Boolean);
+
+ -- Do port Sem_Association_Chain checks for subprograms.
+ procedure Check_Subprogram_Associations
+ (Inter_Chain : Iir; Assoc_Chain : Iir);
+
+ -- Check for restrictions in §1.1.1.2
+ -- Return FALSE in case of error.
+ function Check_Port_Association_Restriction
+ (Formal : Iir_Interface_Signal_Declaration;
+ Actual : Iir_Interface_Signal_Declaration;
+ Assoc : Iir)
+ return Boolean;
+end Sem_Assocs;