-- Demonstrates declaring a variable in a declaration block.
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure declareblk1 is
i: integer := 1;
begin
i := 2 * i;
-- Declaration blocks can be anywhere in a body
declare
j: Integer := i;
begin
j := 3 * j + i;
put(j);
end;
put(i);
-- put(j); -- Compile error. Scope of j is the declare block
end declareblk1;
-- Output: 8 2