-- Demonstrates using a declaration block to dynamically allocate a string
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure declareblk2 is
len: Natural;
begin
get(len);
put(len);
-- Declare a string of that length
declare
t: String(1 .. len);
begin
get(t);
put(t);
put(t);
new_line;
put_line(t'length'img);
end;
end declareblk2;
-- Input:
--| 3
--|Mom
-- Output:
--|MomMom
--| 3