Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
Ocarina
Commits
14e2d66a
Commit
14e2d66a
authored
Sep 09, 2017
by
yoogx
Browse files
* Factor out visit of subcomponents
For openaadl/ocarina#111
parent
b359958f
Changes
8
Hide whitespace changes
Inline
Side-by-side
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-activity.adb
View file @
14e2d66a
...
...
@@ -389,6 +389,7 @@ package body Ocarina.Backends.PO_HI_Ada.Activity is
procedure
Visit_Process_Instance
(
E
:
Node_Id
);
procedure
Visit_Thread_Instance
(
E
:
Node_Id
);
procedure
Visit_Device_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
procedure
Cyclic_Task_Instantiation_Formals
(
E
:
Node_Id
;
...
...
@@ -1188,22 +1189,12 @@ package body Ocarina.Backends.PO_HI_Ada.Activity is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AINU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
@@ -1532,6 +1523,7 @@ package body Ocarina.Backends.PO_HI_Ada.Activity is
procedure
Visit_Process_Instance
(
E
:
Node_Id
);
procedure
Visit_Thread_Instance
(
E
:
Node_Id
);
procedure
Visit_Device_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Task_Job_Body
(
E
:
Node_Id
)
return
Node_Id
;
-- Creates the parameterless subprogram body that does the
...
...
@@ -4306,16 +4298,15 @@ package body Ocarina.Backends.PO_HI_Ada.Activity is
procedure
Visit_Device_Instance
(
E
:
Node_Id
)
is
Implementation
:
constant
Node_Id
:=
Get_Implementation
(
E
);
S
:
Node_Id
;
begin
if
Implementation
/=
No_Node
then
if
not
AAU
.
Is_Empty
(
AAN
.
Subcomponents
(
Implementation
))
then
S
:=
First_Node
(
Subcomponents
(
Implementation
));
while
Present
(
S
)
loop
Visit_Component_Instance
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
-- A device may be "implemented" using an abstract
-- component, representing its driver. We iterate on its
-- subcomponents to attach specific threads associated.
Visit_Subcomponents_Of
(
Implementation
);
end
if
;
end
Visit_Device_Instance
;
...
...
@@ -4478,22 +4469,12 @@ package body Ocarina.Backends.PO_HI_Ada.Activity is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AINU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-deployment.adb
View file @
14e2d66a
...
...
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
5
ESA & ISAE. --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
7
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -68,6 +68,7 @@ package body Ocarina.Backends.PO_HI_Ada.Deployment is
------------------
package
body
Package_Spec
is
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
procedure
Visit_Architecture_Instance
(
E
:
Node_Id
);
procedure
Visit_Component_Instance
(
E
:
Node_Id
);
...
...
@@ -1410,22 +1411,11 @@ package body Ocarina.Backends.PO_HI_Ada.Deployment is
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
A
:
constant
Node_Id
:=
Map_Distributed_Application
(
E
);
S
:
Node_Id
;
begin
Push_Entity
(
A
);
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- A
end
Visit_System_Instance
;
...
...
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-main.adb
View file @
14e2d66a
...
...
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
5
ESA & ISAE. --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
7
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -72,6 +72,8 @@ package body Ocarina.Backends.PO_HI_Ada.Main is
procedure
Visit_Thread_Instance
(
E
:
Node_Id
);
procedure
Visit_Device_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
Has_Hybrid_Threads
:
Boolean
:=
False
;
-----------
...
...
@@ -203,7 +205,6 @@ package body Ocarina.Backends.PO_HI_Ada.Main is
(
ADN
.
Deployment_Node
(
Backend_Node
(
Identifier
(
E
))));
P
:
constant
Node_Id
:=
ADN
.
Entity
(
U
);
N
:
Node_Id
;
S
:
Node_Id
;
Transport_API
:
constant
Supported_Transport_APIs
:=
Fetch_Transport_API
(
E
);
The_System
:
constant
Node_Id
:=
...
...
@@ -232,16 +233,7 @@ package body Ocarina.Backends.PO_HI_Ada.Main is
-- Visit all the subcomponents of the process
if
not
AINU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
if
Has_Hybrid_Threads
then
-- Unblock the hybrid task driver
...
...
@@ -321,22 +313,10 @@ package body Ocarina.Backends.PO_HI_Ada.Main is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AINU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-marshallers.adb
View file @
14e2d66a
...
...
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
5
ESA & ISAE. --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
7
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -107,6 +107,7 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
procedure
Visit_Thread_Instance
(
E
:
Node_Id
);
procedure
Visit_Subprogram_Instance
(
E
:
Node_Id
);
procedure
Visit_Data_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Marshall_Spec
(
E
:
Node_Id
)
return
Node_Id
;
-- Creates a spec for a Marshall procedure for a data type
...
...
@@ -324,7 +325,6 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
ADN
.
Distributed_Application_Unit
(
ADN
.
Deployment_Node
(
Backend_Node
(
Identifier
(
E
))));
P
:
constant
Node_Id
:=
ADN
.
Entity
(
U
);
S
:
Node_Id
;
begin
Push_Entity
(
P
);
Push_Entity
(
U
);
...
...
@@ -337,16 +337,7 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
-- Visit all the subcomponents of the process
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
-- Unmark all the marked types
...
...
@@ -390,22 +381,12 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
@@ -502,6 +483,7 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
procedure
Visit_Thread_Instance
(
E
:
Node_Id
);
procedure
Visit_Subprogram_Instance
(
E
:
Node_Id
);
procedure
Visit_Data_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Marshall_Implementation
(
E
:
Node_Id
)
return
Node_Id
;
-- Creates an implementation for a Marshall procedure
...
...
@@ -1005,7 +987,6 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
ADN
.
Distributed_Application_Unit
(
ADN
.
Deployment_Node
(
Backend_Node
(
Identifier
(
E
))));
P
:
constant
Node_Id
:=
ADN
.
Entity
(
U
);
S
:
Node_Id
;
begin
Push_Entity
(
P
);
Push_Entity
(
U
);
...
...
@@ -1018,16 +999,7 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
-- Visit all the subcomponents of the process
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
-- Unmark all the marked types
...
...
@@ -1071,23 +1043,12 @@ package body Ocarina.Backends.PO_HI_Ada.Marshallers is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-naming.adb
View file @
14e2d66a
...
...
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
5
ESA & ISAE. --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
7
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -77,6 +77,7 @@ package body Ocarina.Backends.PO_HI_Ada.Naming is
procedure
Visit_Component_Instance
(
E
:
Node_Id
);
procedure
Visit_System_Instance
(
E
:
Node_Id
);
procedure
Visit_Process_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Added_Internal_Name
(
P
:
Node_Id
;
...
...
@@ -573,7 +574,6 @@ package body Ocarina.Backends.PO_HI_Ada.Naming is
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
C
:
Node_Id
;
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
...
...
@@ -591,16 +591,7 @@ package body Ocarina.Backends.PO_HI_Ada.Naming is
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-subprograms.adb
View file @
14e2d66a
...
...
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
5
ESA & ISAE. --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
7
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -72,6 +72,7 @@ package body Ocarina.Backends.PO_HI_Ada.Subprograms is
procedure
Visit_Subprogram_Instance
(
E
:
Node_Id
);
procedure
Visit_Data_Instance
(
E
:
Node_Id
);
procedure
Visit_Device_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Put_Value_Spec
(
E
:
Node_Id
)
return
Node_Id
;
function
Get_Value_Spec
(
E
:
Node_Id
)
return
Node_Id
;
...
...
@@ -336,16 +337,7 @@ package body Ocarina.Backends.PO_HI_Ada.Subprograms is
-- Visit all the subcomponents of the process
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
-- Visit all devices attached to the parent system that
-- share the same processor as process E.
...
...
@@ -517,22 +509,12 @@ package body Ocarina.Backends.PO_HI_Ada.Subprograms is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
@@ -585,6 +567,7 @@ package body Ocarina.Backends.PO_HI_Ada.Subprograms is
procedure
Visit_Subprogram_Instance
(
E
:
Node_Id
);
procedure
Visit_Data_Instance
(
E
:
Node_Id
);
procedure
Visit_Device_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Put_Value_Body
(
E
:
Node_Id
)
return
Node_Id
;
function
Get_Value_Body
(
E
:
Node_Id
)
return
Node_Id
;
...
...
@@ -951,16 +934,7 @@ package body Ocarina.Backends.PO_HI_Ada.Subprograms is
-- Visit all the subcomponents of the process
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
-- Visit all devices attached to the parent system that
-- share the same processor as process E.
...
...
@@ -1053,22 +1027,12 @@ package body Ocarina.Backends.PO_HI_Ada.Subprograms is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-transport.adb
View file @
14e2d66a
...
...
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2008-2009 Telecom ParisTech, 2010-201
5
ESA & ISAE. --
-- Copyright (C) 2008-2009 Telecom ParisTech, 2010-201
7
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -68,6 +68,7 @@ package body Ocarina.Backends.PO_HI_Ada.Transport is
procedure
Visit_Component_Instance
(
E
:
Node_Id
);
procedure
Visit_System_Instance
(
E
:
Node_Id
);
procedure
Visit_Process_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Deliver_Spec
(
E
:
Node_Id
)
return
Node_Id
;
-- Create a subprogram specification corresponding to the
...
...
@@ -243,22 +244,12 @@ package body Ocarina.Backends.PO_HI_Ada.Transport is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
@@ -276,6 +267,7 @@ package body Ocarina.Backends.PO_HI_Ada.Transport is
procedure
Visit_System_Instance
(
E
:
Node_Id
);
procedure
Visit_Process_Instance
(
E
:
Node_Id
);
procedure
Visit_Thread_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Internal_Deliver_Spec
(
E
:
Node_Id
)
return
Node_Id
;
function
Internal_Deliver_Body
(
E
:
Node_Id
)
return
Node_Id
;
...
...
@@ -1266,7 +1258,6 @@ package body Ocarina.Backends.PO_HI_Ada.Transport is
ADN
.
Distributed_Application_Unit
(
ADN
.
Deployment_Node
(
Backend_Node
(
Identifier
(
E
))));
P
:
constant
Node_Id
:=
ADN
.
Entity
(
U
);
S
:
Node_Id
;
N
:
Node_Id
;
begin
Push_Entity
(
P
);
...
...
@@ -1285,16 +1276,7 @@ package body Ocarina.Backends.PO_HI_Ada.Transport is
-- Visit all the subcomponents of the process
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- U
Pop_Entity
;
-- P
...
...
@@ -1305,23 +1287,12 @@ package body Ocarina.Backends.PO_HI_Ada.Transport is
---------------------------
procedure
Visit_System_Instance
(
E
:
Node_Id
)
is
S
:
Node_Id
;
begin
Push_Entity
(
Ada_Root
);
-- Visit all the subcomponents of the system
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(
E
);
Pop_Entity
;
-- Ada_Root
end
Visit_System_Instance
;
...
...
src/backends/po_hi_ada/ocarina-backends-po_hi_ada-types.adb
View file @
14e2d66a
...
...
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
6
ESA & ISAE. --
-- Copyright (C) 2006-2009 Telecom ParisTech, 2010-201
7
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -103,6 +103,7 @@ package body Ocarina.Backends.PO_HI_Ada.Types is
procedure
Visit_Thread_Instance
(
E
:
Node_Id
);
procedure
Visit_Subprogram_Instance
(
E
:
Node_Id
);
procedure
Visit_Data_Instance
(
E
:
Node_Id
);
procedure
Visit_Subcomponents_Of
is
new
Visit_Subcomponents_Of_G
(
Visit
);
function
Feature_Spg_Spec
(
E
:
Node_Id
)
return
Node_Id
;
-- Builds a spec for a protected object procedure from an AADL
...
...
@@ -949,7 +950,6 @@ package body Ocarina.Backends.PO_HI_Ada.Types is
ADN
.
Distributed_Application_Unit
(
ADN
.
Deployment_Node
(
Backend_Node
(
Identifier
(
E
))));
P
:
constant
Node_Id
:=
ADN
.
Entity
(
U
);
S
:
Node_Id
;
begin
Push_Entity
(
P
);
Push_Entity
(
U
);
...
...
@@ -962,16 +962,7 @@ package body Ocarina.Backends.PO_HI_Ada.Types is
-- Visit all the subcomponents of the process
if
not
AAU
.
Is_Empty
(
Subcomponents
(
E
))
then
S
:=
First_Node
(
Subcomponents
(
E
));
while
Present
(
S
)
loop
-- Visit the component instance corresponding to the
-- subcomponent S.
Visit
(
Corresponding_Instance
(
S
));
S
:=
Next_Node
(
S
);
end
loop
;
end
if
;
Visit_Subcomponents_Of
(<