-- 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