aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-02-02 21:36:48 +0100
committerTristan Gingold <tgingold@free.fr>2017-02-02 21:36:48 +0100
commit969230e344a54d91778badd80c3d4e35a70145a6 (patch)
treeb109b4f3b3f729738f61a317f990fe3c7943cdca /src/synth
parente7f093ccdfa452806172e12af3167bc84f571026 (diff)
downloadghdl-969230e344a54d91778badd80c3d4e35a70145a6.tar.gz
ghdl-969230e344a54d91778badd80c3d4e35a70145a6.tar.bz2
ghdl-969230e344a54d91778badd80c3d4e35a70145a6.zip
netlists-iterators: fix for gnat gpl 2014
Diffstat (limited to 'src/synth')
-rw-r--r--src/synth/netlists-iterators.ads154
1 files changed, 77 insertions, 77 deletions
diff --git a/src/synth/netlists-iterators.ads b/src/synth/netlists-iterators.ads
index 9a88ab9cf..b13bb9513 100644
--- a/src/synth/netlists-iterators.ads
+++ b/src/synth/netlists-iterators.ads
@@ -30,6 +30,18 @@ package Netlists.Iterators is
Element => Modules_Element);
function Sub_Modules (M : Module) return Modules_Iterator;
+ function Modules_First (It : Modules_Iterator) return Modules_Cursor
+ with Inline;
+ function Modules_Next (It : Modules_Iterator; Cur : Modules_Cursor)
+ return Modules_Cursor
+ with Inline;
+ function Modules_Has_Element (It : Modules_Iterator; Cur : Modules_Cursor)
+ return Boolean
+ with Inline;
+ function Modules_Element (It : Modules_Iterator; Cur : Modules_Cursor)
+ return Module
+ with Inline;
+
-- Iterate over ports desc of a module.
type Ports_Desc_Cursor is private;
type Ports_Desc_Iterator is private with
@@ -39,6 +51,15 @@ package Netlists.Iterators is
Element => Ports_Desc_Element);
function Ports_Desc (M : Module) return Ports_Desc_Iterator;
+ function Ports_Desc_First (It : Ports_Desc_Iterator)
+ return Ports_Desc_Cursor;
+ function Ports_Desc_Next (It : Ports_Desc_Iterator; Cur : Ports_Desc_Cursor)
+ return Ports_Desc_Cursor;
+ function Ports_Desc_Has_Element
+ (It : Ports_Desc_Iterator; Cur : Ports_Desc_Cursor) return Boolean;
+ function Ports_Desc_Element
+ (It : Ports_Desc_Iterator; Cur : Ports_Desc_Cursor) return Port_Desc;
+
-- Iterate over param desc of a module
type Params_Desc_Cursor is private;
type Params_Desc_Iterator is private with
@@ -48,6 +69,16 @@ package Netlists.Iterators is
Element => Params_Desc_Element);
function Params_Desc (M : Module) return Params_Desc_Iterator;
+ function Params_Desc_First (It : Params_Desc_Iterator)
+ return Params_Desc_Cursor;
+ function Params_Desc_Next
+ (It : Params_Desc_Iterator; Cur : Params_Desc_Cursor)
+ return Params_Desc_Cursor;
+ function Params_Desc_Has_Element
+ (It : Params_Desc_Iterator; Cur : Params_Desc_Cursor) return Boolean;
+ function Params_Desc_Element
+ (It : Params_Desc_Iterator; Cur : Params_Desc_Cursor) return Param_Desc;
+
-- Iterate over instances in a module, excluding the self-instance.
type Instances_Cursor is private;
type Instances_Iterator is private with
@@ -57,6 +88,14 @@ package Netlists.Iterators is
Element => Instances_Element);
function Instances (M : Module) return Instances_Iterator;
+ function Instances_First (It : Instances_Iterator) return Instances_Cursor;
+ function Instances_Next (It : Instances_Iterator; Cur : Instances_Cursor)
+ return Instances_Cursor;
+ function Instances_Has_Element
+ (It : Instances_Iterator; Cur : Instances_Cursor) return Boolean;
+ function Instances_Element
+ (It : Instances_Iterator; Cur : Instances_Cursor) return Instance;
+
-- Iterate over inputs of an instance.
type Inputs_Cursor is private;
type Inputs_Iterator is private with
@@ -66,6 +105,14 @@ package Netlists.Iterators is
Element => Inputs_Element);
function Inputs (Inst : Instance) return Inputs_Iterator;
+ function Inputs_First (It : Inputs_Iterator) return Inputs_Cursor;
+ function Inputs_Next (It : Inputs_Iterator; Cur : Inputs_Cursor)
+ return Inputs_Cursor;
+ function Inputs_Has_Element (It : Inputs_Iterator; Cur : Inputs_Cursor)
+ return Boolean;
+ function Inputs_Element (It : Inputs_Iterator; Cur : Inputs_Cursor)
+ return Input;
+
-- Iterate over outputs of an instance.
type Outputs_Cursor is private;
type Outputs_Iterator is private with
@@ -75,6 +122,14 @@ package Netlists.Iterators is
Element => Outputs_Element);
function Outputs (Inst : Instance) return Outputs_Iterator;
+ function Outputs_First (It : Outputs_Iterator) return Outputs_Cursor;
+ function Outputs_Next (It : Outputs_Iterator; Cur : Outputs_Cursor)
+ return Outputs_Cursor;
+ function Outputs_Has_Element (It : Outputs_Iterator; Cur : Outputs_Cursor)
+ return Boolean;
+ function Outputs_Element (It : Outputs_Iterator; Cur : Outputs_Cursor)
+ return Net;
+
-- Iterate over parameters of an instance.
type Params_Cursor is private;
type Params_Iterator is private with
@@ -84,6 +139,12 @@ package Netlists.Iterators is
function Params (Inst : Instance) return Params_Iterator;
function Get_Param_Idx (Cur : Params_Cursor) return Param_Idx;
+ function Params_First (It : Params_Iterator) return Params_Cursor;
+ function Params_Next (It : Params_Iterator; Cur : Params_Cursor)
+ return Params_Cursor;
+ function Params_Has_Element (It : Params_Iterator; Cur : Params_Cursor)
+ return Boolean;
+
-- Iterate over nets of a module.
type Nets_Cursor is private;
type Nets_Iterator is private with
@@ -93,6 +154,14 @@ package Netlists.Iterators is
Element => Nets_Element);
function Nets (M : Module) return Nets_Iterator;
+ function Nets_First (It : Nets_Iterator) return Nets_Cursor;
+ function Nets_Next (It : Nets_Iterator; Cur : Nets_Cursor)
+ return Nets_Cursor;
+ function Nets_Has_Element (It : Nets_Iterator; Cur : Nets_Cursor)
+ return Boolean;
+ function Nets_Element (It : Nets_Iterator; Cur : Nets_Cursor)
+ return Net;
+
-- Iterate over sinks of a net.
type Sinks_Cursor is private;
type Sinks_Iterator is private with
@@ -102,6 +171,14 @@ package Netlists.Iterators is
Element => Sinks_Element);
function Sinks (N : Net) return Sinks_Iterator;
+ function Sinks_First (It : Sinks_Iterator) return Sinks_Cursor;
+ function Sinks_Next (It : Sinks_Iterator; Cur : Sinks_Cursor)
+ return Sinks_Cursor;
+ function Sinks_Has_Element (It : Sinks_Iterator; Cur : Sinks_Cursor)
+ return Boolean;
+ function Sinks_Element (It : Sinks_Iterator; Cur : Sinks_Cursor)
+ return Input;
+
private
type Modules_Cursor is record
M : Module;
@@ -111,18 +188,6 @@ private
M : Module;
end record;
- function Modules_First (It : Modules_Iterator) return Modules_Cursor
- with Inline;
- function Modules_Next (It : Modules_Iterator; Cur : Modules_Cursor)
- return Modules_Cursor
- with Inline;
- function Modules_Has_Element (It : Modules_Iterator; Cur : Modules_Cursor)
- return Boolean
- with Inline;
- function Modules_Element (It : Modules_Iterator; Cur : Modules_Cursor)
- return Module
- with Inline;
-
type Ports_Desc_Iterator is record
M : Module;
end record;
@@ -132,15 +197,6 @@ private
Num : Port_Nbr;
end record;
- function Ports_Desc_First (It : Ports_Desc_Iterator)
- return Ports_Desc_Cursor;
- function Ports_Desc_Next (It : Ports_Desc_Iterator; Cur : Ports_Desc_Cursor)
- return Ports_Desc_Cursor;
- function Ports_Desc_Has_Element
- (It : Ports_Desc_Iterator; Cur : Ports_Desc_Cursor) return Boolean;
- function Ports_Desc_Element
- (It : Ports_Desc_Iterator; Cur : Ports_Desc_Cursor) return Port_Desc;
-
type Params_Desc_Iterator is record
M : Module;
end record;
@@ -150,16 +206,6 @@ private
Num : Param_Nbr;
end record;
- function Params_Desc_First (It : Params_Desc_Iterator)
- return Params_Desc_Cursor;
- function Params_Desc_Next
- (It : Params_Desc_Iterator; Cur : Params_Desc_Cursor)
- return Params_Desc_Cursor;
- function Params_Desc_Has_Element
- (It : Params_Desc_Iterator; Cur : Params_Desc_Cursor) return Boolean;
- function Params_Desc_Element
- (It : Params_Desc_Iterator; Cur : Params_Desc_Cursor) return Param_Desc;
-
type Instances_Iterator is record
M : Module;
end record;
@@ -168,14 +214,6 @@ private
Inst : Instance;
end record;
- function Instances_First (It : Instances_Iterator) return Instances_Cursor;
- function Instances_Next (It : Instances_Iterator; Cur : Instances_Cursor)
- return Instances_Cursor;
- function Instances_Has_Element
- (It : Instances_Iterator; Cur : Instances_Cursor) return Boolean;
- function Instances_Element
- (It : Instances_Iterator; Cur : Instances_Cursor) return Instance;
-
type Inputs_Cursor is record
Idx : Port_Idx;
Nbr : Port_Nbr;
@@ -185,14 +223,6 @@ private
Inst : Instance;
end record;
- function Inputs_First (It : Inputs_Iterator) return Inputs_Cursor;
- function Inputs_Next (It : Inputs_Iterator; Cur : Inputs_Cursor)
- return Inputs_Cursor;
- function Inputs_Has_Element (It : Inputs_Iterator; Cur : Inputs_Cursor)
- return Boolean;
- function Inputs_Element (It : Inputs_Iterator; Cur : Inputs_Cursor)
- return Input;
-
type Outputs_Cursor is record
Idx : Port_Idx;
Nbr : Port_Nbr;
@@ -202,14 +232,6 @@ private
Inst : Instance;
end record;
- function Outputs_First (It : Outputs_Iterator) return Outputs_Cursor;
- function Outputs_Next (It : Outputs_Iterator; Cur : Outputs_Cursor)
- return Outputs_Cursor;
- function Outputs_Has_Element (It : Outputs_Iterator; Cur : Outputs_Cursor)
- return Boolean;
- function Outputs_Element (It : Outputs_Iterator; Cur : Outputs_Cursor)
- return Net;
-
type Params_Cursor is record
Idx : Param_Idx;
Nbr : Param_Nbr;
@@ -219,12 +241,6 @@ private
Inst : Instance;
end record;
- function Params_First (It : Params_Iterator) return Params_Cursor;
- function Params_Next (It : Params_Iterator; Cur : Params_Cursor)
- return Params_Cursor;
- function Params_Has_Element (It : Params_Iterator; Cur : Params_Cursor)
- return Boolean;
-
type Nets_Cursor is record
Inst : Instance;
N : Net;
@@ -235,14 +251,6 @@ private
M : Module;
end record;
- function Nets_First (It : Nets_Iterator) return Nets_Cursor;
- function Nets_Next (It : Nets_Iterator; Cur : Nets_Cursor)
- return Nets_Cursor;
- function Nets_Has_Element (It : Nets_Iterator; Cur : Nets_Cursor)
- return Boolean;
- function Nets_Element (It : Nets_Iterator; Cur : Nets_Cursor)
- return Net;
-
type Sinks_Cursor is record
S : Input;
end record;
@@ -250,12 +258,4 @@ private
type Sinks_Iterator is record
N : Net;
end record;
-
- function Sinks_First (It : Sinks_Iterator) return Sinks_Cursor;
- function Sinks_Next (It : Sinks_Iterator; Cur : Sinks_Cursor)
- return Sinks_Cursor;
- function Sinks_Has_Element (It : Sinks_Iterator; Cur : Sinks_Cursor)
- return Boolean;
- function Sinks_Element (It : Sinks_Iterator; Cur : Sinks_Cursor)
- return Input;
end Netlists.Iterators;