with ada.text_io; use ada.text_io; 
with ada.integer_text_io; use ada.integer_text_io; 
with ada.characters.handling; use  ada.characters.handling;

-- Input: sequence of characters and integers, surrounded by any number
--      of blanks and newlines
-- Output: Each character and integer, on a separate line.  Skipes white space.
-- Example Input:
--   a b 1234567 cd  12 8 d e
--   g 12 34
-- Example Output:
--   a
--   b
--   1234567
--   c  
--   d
--   12
--   8
--   e
--   g
--   12
--   34
 
procedure lookahead3 is 
    i: integer;
    c: character;
    eol: boolean;
begin
    loop
        exit when end_of_file;

        look_ahead(c, eol); 

        if eol then
            skip_line;
        else  -- Only look at c if not at eol
            if c = ' ' then 
                get(c);  -- get the blank, move input marker
            elsif is_digit(c) then
                get(i);  -- Integer get
                put(i);  new_line;
            else  -- not a space or an integer
                get(c);
                put(c);  new_line;
            end if;
        end if;
    end loop;
end lookahead3;