blob: 3ee1e686ab3001a5681a49da03de3a63d6ade9a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
-- Back-end specialization
-- 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 Back_End is
-- Return the name of the library file for LIBRARY.
-- The library file describe the contents of LIBRARY.
function Default_Library_To_File_Name (Library : Iir_Library_Declaration)
return String;
type Library_To_File_Name_Acc is
access function (Library : Iir_Library_Declaration) return String;
Library_To_File_Name : Library_To_File_Name_Acc :=
Default_Library_To_File_Name'Access;
-- Back-end options.
type Parse_Option_Acc is access function (Opt : String) return Boolean;
Parse_Option : Parse_Option_Acc := null;
-- Disp back-end option help.
type Disp_Option_Acc is access procedure;
Disp_Option : Disp_Option_Acc := null;
-- UNIT is a design unit from parse.
-- According to the current back-end, do what is necessary.
--
-- If MAIN is true, then UNIT is a wanted to be analysed design unit, and
-- dump/list options can applied.
-- This avoid to dump/list units fetched (through a selected name or a
-- use clause) indirectly by the main unit.
type Finish_Compilation_Acc is access
procedure (Unit : Iir_Design_Unit; Main : Boolean := False);
Finish_Compilation : Finish_Compilation_Acc := null;
-- DECL is an architecture (library unit) or a subprogram (specification)
-- decorated with a FOREIGN attribute. Do back-end checks.
-- May be NULL for no additionnal checks.
type Sem_Foreign_Acc is access procedure (Decl : Iir);
Sem_Foreign : Sem_Foreign_Acc := null;
end Back_End;
|