tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
|
|
@ -0,0 +1,48 @@
|
|||
with Ada.Command_Line;
|
||||
with Ada.Text_IO.Unbounded_IO;
|
||||
with Ada.Strings.Unbounded;
|
||||
with Markov;
|
||||
|
||||
procedure Test_Markov is
|
||||
use Ada.Strings.Unbounded;
|
||||
package IO renames Ada.Text_IO.Unbounded_IO;
|
||||
Rule_File : Ada.Text_IO.File_Type;
|
||||
Line_Count : Natural := 0;
|
||||
begin
|
||||
if Ada.Command_Line.Argument_Count /= 2 then
|
||||
Ada.Text_IO.Put_Line ("Usage: test_markov ruleset_file source_file");
|
||||
return;
|
||||
end if;
|
||||
Ada.Text_IO.Open
|
||||
(File => Rule_File,
|
||||
Mode => Ada.Text_IO.In_File,
|
||||
Name => Ada.Command_Line.Argument (1));
|
||||
while not Ada.Text_IO.End_Of_File (Rule_File) loop
|
||||
Ada.Text_IO.Skip_Line (Rule_File);
|
||||
Line_Count := Line_Count + 1;
|
||||
end loop;
|
||||
declare
|
||||
Lines : Markov.String_Array (1 .. Line_Count);
|
||||
begin
|
||||
Ada.Text_IO.Reset (Rule_File);
|
||||
for I in Lines'Range loop
|
||||
Lines (I) := IO.Get_Line (Rule_File);
|
||||
end loop;
|
||||
Ada.Text_IO.Close (Rule_File);
|
||||
|
||||
declare
|
||||
Ruleset : Markov.Ruleset := Markov.Parse (Lines);
|
||||
Source_File : Ada.Text_IO.File_Type;
|
||||
begin
|
||||
Ada.Text_IO.Open
|
||||
(File => Source_File,
|
||||
Mode => Ada.Text_IO.In_File,
|
||||
Name => Ada.Command_Line.Argument (2));
|
||||
while not Ada.Text_IO.End_Of_File (Source_File) loop
|
||||
Ada.Text_IO.Put_Line
|
||||
(Markov.Apply (Ruleset, Ada.Text_IO.Get_Line (Source_File)));
|
||||
end loop;
|
||||
Ada.Text_IO.Close (Source_File);
|
||||
end;
|
||||
end;
|
||||
end Test_Markov;
|
||||
Loading…
Add table
Add a link
Reference in a new issue