Data update

This commit is contained in:
Ingy döt Net 2026-02-01 16:33:20 -08:00
parent 5150844a7d
commit 4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions

View file

@ -1,11 +0,0 @@
package Simple_Parse is
-- a very simplistic parser, useful to split a string into words
function Next_Word(S: String; Point: in out Positive)
return String;
-- a "word" is a sequence of non-space characters
-- if S(Point .. S'Last) holds at least one word W
-- then Next_Word increments Point by len(W) and returns W.
-- else Next_Word sets Point to S'Last+1 and returns ""
end Simple_Parse;

View file

@ -1,20 +0,0 @@
package body Simple_Parse is
function Next_Word(S: String; Point: in out Positive) return String is
Start: Positive := Point;
Stop: Natural;
begin
while Start <= S'Last and then S(Start) = ' ' loop
Start := Start + 1;
end loop; -- now S(Start) is the first non-space,
-- or Start = S'Last+1 if S is empty or space-only
Stop := Start-1; -- now S(Start .. Stop) = ""
while Stop < S'Last and then S(Stop+1) /= ' ' loop
Stop := Stop + 1;
end loop; -- now S(Stop+1) is the first sopace after Start
-- or Stop = S'Last if there is no such space
Point := Stop+1;
return S(Start .. Stop);
end Next_Word;
end Simple_Parse;

View file

@ -1,21 +0,0 @@
with Ada.Text_IO, Simple_Parse;
procedure Reverse_Words is
function Reverse_Words(S: String) return String is
Cursor: Positive := S'First;
Word: String := Simple_Parse.Next_Word(S, Cursor);
begin
if Word = "" then
return "";
else
return Reverse_Words(S(Cursor .. S'Last)) & " " & Word;
end if;
end Reverse_Words;
use Ada.Text_IO;
begin
while not End_Of_File loop
Put_Line(Reverse_Words(Get_Line)); -- poem is read from standard input
end loop;
end Reverse_Words;