53 lines
1.8 KiB
Ada
53 lines
1.8 KiB
Ada
with TEXT_IO;
|
|
with ENGLISH_SUPPORT_PACKAGE; use ENGLISH_SUPPORT_PACKAGE;
|
|
procedure MAKEEFIL is
|
|
use TEXT_IO;
|
|
use EWDS_DIRECT_IO;
|
|
EWDS_LIST : TEXT_IO.FILE_TYPE;
|
|
EWDS, NEW_EWDS : EWDS_RECORD := NULL_EWDS_RECORD;
|
|
begin
|
|
TEXT_IO.OPEN(EWDS_LIST, TEXT_IO.IN_FILE, "EWDSLIST.GEN");
|
|
CREATE(EWDS_FILE, OUT_FILE, "EWDSFILE.GEN");
|
|
|
|
while not TEXT_IO.END_OF_FILE(EWDS_LIST) loop
|
|
EWDS_RECORD_IO.GET(EWDS_LIST, NEW_EWDS);
|
|
TEXT_IO.SKIP_LINE(EWDS_LIST);
|
|
|
|
|
|
-- Eliminate doubles -- If sort is OK
|
|
if EWDS.W = NEW_EWDS.W and -- AUX ????
|
|
EWDS.N = NEW_EWDS.N then
|
|
-- PUT_LINE("DOUBLES ");
|
|
-- EWDS_RECORD_IO.PUT(EWDS); NEW_LINE;
|
|
-- EWDS_RECORD_IO.PUT(NEW_EWDS); NEW_LINE;
|
|
|
|
if EWDS.KIND > NEW_EWDS.KIND then -- Large KIND = high priority
|
|
null;
|
|
elsif EWDS.KIND < NEW_EWDS.KIND then
|
|
EWDS := NEW_EWDS;
|
|
elsif EWDS.KIND = NEW_EWDS.KIND then
|
|
if EWDS.SEMI > NEW_EWDS.SEMI then
|
|
EWDS := NEW_EWDS;
|
|
end if;
|
|
end if;
|
|
|
|
else
|
|
|
|
WRITE(EWDS_FILE, EWDS);
|
|
EWDS := NEW_EWDS;
|
|
NUMBER_OF_EWORDS := NUMBER_OF_EWORDS + 1;
|
|
end if;
|
|
--PUT('.');
|
|
end loop;
|
|
CLOSE(EWDS_FILE);
|
|
TEXT_IO.NEW_LINE;
|
|
TEXT_IO.PUT_LINE("NUMBER_OF_EWORDS = " & INTEGER'IMAGE(NUMBER_OF_EWORDS));
|
|
exception
|
|
when others =>
|
|
CLOSE(EWDS_FILE);
|
|
TEXT_IO.NEW_LINE;
|
|
TEXT_IO.PUT_LINE("MAKEEFIL terminated on an exception");
|
|
TEXT_IO.PUT_LINE("NUMBER_OF_EWORDS = " & INTEGER'IMAGE(NUMBER_OF_EWORDS));
|
|
end MAKEEFIL;
|
|
|