-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathmakeefil.adb
52 lines (45 loc) · 1.77 KB
/
makeefil.adb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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;