import from .zip file
This commit is contained in:
482
wakedict.adb
Normal file
482
wakedict.adb
Normal file
@@ -0,0 +1,482 @@
|
||||
with TEXT_IO;
|
||||
with STRINGS_PACKAGE; use STRINGS_PACKAGE;
|
||||
with LATIN_FILE_NAMES; use LATIN_FILE_NAMES;
|
||||
with INFLECTIONS_PACKAGE; use INFLECTIONS_PACKAGE;
|
||||
with DICTIONARY_PACKAGE; use DICTIONARY_PACKAGE;
|
||||
with LINE_STUFF; use LINE_STUFF;
|
||||
procedure WAKEDICT is
|
||||
package INTEGER_IO is new TEXT_IO.INTEGER_IO(INTEGER);
|
||||
use TEXT_IO;
|
||||
use STEM_KEY_TYPE_IO;
|
||||
use DICTIONARY_ENTRY_IO;
|
||||
use PART_ENTRY_IO;
|
||||
use KIND_ENTRY_IO;
|
||||
use TRANSLATION_RECORD_IO;
|
||||
use AGE_TYPE_IO;
|
||||
use AREA_TYPE_IO;
|
||||
use GEO_TYPE_IO;
|
||||
use FREQUENCY_TYPE_IO;
|
||||
use SOURCE_TYPE_IO;
|
||||
use DICT_IO;
|
||||
|
||||
PORTING : constant BOOLEAN := FALSE;
|
||||
|
||||
BE_VE : VERB_ENTRY := (CON => (5, 1), KIND => TO_BE);
|
||||
|
||||
D_K : DICTIONARY_KIND := XXX; -- ######################
|
||||
|
||||
|
||||
START_STEM_1 : constant := 1;
|
||||
START_STEM_2 : constant := START_STEM_1 + MAX_STEM_SIZE + 1;
|
||||
START_STEM_3 : constant := START_STEM_2 + MAX_STEM_SIZE + 1;
|
||||
START_STEM_4 : constant := START_STEM_3 + MAX_STEM_SIZE + 1;
|
||||
START_PART : constant := START_STEM_4 + MAX_STEM_SIZE + 1;
|
||||
START_TRAN : constant INTEGER :=
|
||||
START_PART +
|
||||
INTEGER(PART_ENTRY_IO.DEFAULT_WIDTH + 1);
|
||||
FINISH_LINE : constant INTEGER :=
|
||||
START_TRAN +
|
||||
TRANSLATION_RECORD_IO.DEFAULT_WIDTH - 1;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DICTFILE : DICT_IO.FILE_TYPE;
|
||||
INPUT, STEMLIST : TEXT_IO.FILE_TYPE;
|
||||
DE : DICTIONARY_ENTRY;
|
||||
|
||||
S, LINE, BLANK_LINE : STRING(1..400) := (others => ' ');
|
||||
L, LL, LAST : INTEGER := 0;
|
||||
J : DICT_IO.COUNT := 0;
|
||||
MEAN_TO_BE : constant MEANING_TYPE :=
|
||||
HEAD("be; exist; (also used to form verb perfect passive tenses)" &
|
||||
" with NOM PERF PPL", MAX_MEANING_SIZE);
|
||||
|
||||
begin
|
||||
PUT_LINE(
|
||||
"Takes a DICTLINE.D_K and produces a STEMLIST.D_K and DICTFILE.D_K");
|
||||
PUT_LINE("This version inserts ESSE when D_K = GEN");
|
||||
PUT("What dictionary to list, GENERAL or SPECIAL (Reply G or S) =>");
|
||||
GET_LINE(LINE, LAST);
|
||||
if LAST > 0 then
|
||||
if TRIM(LINE(1..LAST))(1) = 'G' or else
|
||||
TRIM(LINE(1..LAST))(1) = 'g' then
|
||||
D_K := GENERAL;
|
||||
elsif TRIM(LINE(1..LAST))(1) = 'S' or else
|
||||
TRIM(LINE(1..LAST))(1) = 's' then
|
||||
D_K := SPECIAL;
|
||||
else
|
||||
PUT_LINE("No such dictionary");
|
||||
raise TEXT_IO.DATA_ERROR;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
|
||||
OPEN(INPUT, IN_FILE, ADD_FILE_NAME_EXTENSION(DICT_LINE_NAME,
|
||||
DICTIONARY_KIND'IMAGE(D_K)));
|
||||
|
||||
if not PORTING then
|
||||
|
||||
CREATE(STEMLIST, OUT_FILE, ADD_FILE_NAME_EXTENSION(STEM_LIST_NAME,
|
||||
DICTIONARY_KIND'IMAGE(D_K)));
|
||||
end if;
|
||||
|
||||
CREATE(DICTFILE, OUT_FILE, ADD_FILE_NAME_EXTENSION(DICT_FILE_NAME,
|
||||
DICTIONARY_KIND'IMAGE(D_K)));
|
||||
|
||||
-- if D_K = GENERAL then
|
||||
-- PUT_LINE("WAKEDICT reads DICTLINE.d_k and produces DICTFILE.d_k");
|
||||
-- PUT_LINE("WAKEDICT also produces STEMLIST.d_k");
|
||||
-- PUT_LINE("This version inserts ESSE when d_k = GEN");
|
||||
--
|
||||
-- J := J + 1;
|
||||
--
|
||||
-- -- First construct ESSE
|
||||
-- DE.STEMS(1) := "s ";
|
||||
-- DE.STEMS(2) := " ";
|
||||
-- DE.STEMS(3) := "fu ";
|
||||
-- DE.STEMS(4) := "fut ";
|
||||
-- --DE.PART := (PART => V, CON => (5, 10));
|
||||
-- --DE.PART := (V, ((5, 1)));
|
||||
-- DE.PART := (V, BE_VE);
|
||||
-- DE.KIND := (V, TO_BE);
|
||||
-- DE.TRAN := (X, X, X, A, X);
|
||||
-- DE.MEAN := MEAN_TO_BE;
|
||||
--
|
||||
--
|
||||
-- if not PORTING then
|
||||
-- -- Load ESSE
|
||||
-- for I in STEM_KEY_TYPE range 1..4 loop
|
||||
-- PUT(STEMLIST, DE.STEMS(I)); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
-- SET_COL(STEMLIST, 45);
|
||||
-- PUT(STEMLIST, I, 2); PUT(STEMLIST, ' ');
|
||||
-- -- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- -- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- -- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- -- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- -- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
-- SET_COL(STEMLIST, 50);
|
||||
-- INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
-- end loop;
|
||||
-- end if;
|
||||
--
|
||||
-- WRITE(DICTFILE, DE, J); -- J = 1
|
||||
-- end if;
|
||||
--
|
||||
|
||||
-- Now do the rest
|
||||
OVER_LINES:
|
||||
while not END_OF_FILE(INPUT) loop
|
||||
S := BLANK_LINE;
|
||||
GET_LINE(INPUT, S, LAST);
|
||||
if TRIM(S(1..LAST)) /= "" then
|
||||
L := 0;
|
||||
|
||||
FORM_DE:
|
||||
begin
|
||||
|
||||
DE.STEMS(1) := S(START_STEM_1..MAX_STEM_SIZE);
|
||||
--NEW_LINE; PUT(DE.STEMS(1));
|
||||
DE.STEMS(2) := S(START_STEM_2..START_STEM_2+MAX_STEM_SIZE-1);
|
||||
DE.STEMS(3) := S(START_STEM_3..START_STEM_3+MAX_STEM_SIZE-1);
|
||||
DE.STEMS(4) := S(START_STEM_4..START_STEM_4+MAX_STEM_SIZE-1);
|
||||
--PUT('#'); PUT(INTEGER'IMAGE(L)); PUT(INTEGER'IMAGE(LAST));
|
||||
--PUT('@');
|
||||
GET(S(START_PART..LAST), DE.PART, L);
|
||||
--PUT('%'); PUT(INTEGER'IMAGE(L)); PUT(INTEGER'IMAGE(LAST));
|
||||
--PUT('&'); PUT(S(L+1..LAST)); PUT('3');
|
||||
-- GET(S(L+1..LAST), DE.PART.POFS, DE.KIND, L);
|
||||
GET(S(L+1..LAST), DE.TRAN.AGE, L);
|
||||
GET(S(L+1..LAST), DE.TRAN.AREA, L);
|
||||
GET(S(L+1..LAST), DE.TRAN.GEO, L);
|
||||
GET(S(L+1..LAST), DE.TRAN.FREQ, L);
|
||||
GET(S(L+1..LAST), DE.TRAN.SOURCE, L);
|
||||
DE.MEAN := HEAD(S(L+2..LAST), MAX_MEANING_SIZE);
|
||||
-- Note that this allows initial blanks
|
||||
-- L+2 skips over the SPACER, required because this is STRING, not ENUM
|
||||
|
||||
exception
|
||||
when others =>
|
||||
NEW_LINE;
|
||||
PUT_LINE("Exception");
|
||||
PUT_LINE(S(1..LAST));
|
||||
INTEGER_IO.PUT(INTEGER(J)); NEW_LINE;
|
||||
PUT(DE); NEW_LINE;
|
||||
end FORM_DE;
|
||||
|
||||
J := J + 1;
|
||||
WRITE(DICTFILE, DE, J);
|
||||
|
||||
|
||||
if not PORTING then
|
||||
|
||||
if DE.PART.POFS = N and then
|
||||
DE.STEMS(1) = DE.STEMS(2) and then
|
||||
DE.STEMS(1) /= ZZZ_STEM then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 0, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
-- if DE.STEMS(3) /= NULL_STEM_TYPE and DE.STEMS(3) /= ZZZ_STEM then
|
||||
-- PUT(STEMLIST, DE.STEMS(3)); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
-- SET_COL(STEMLIST, 45);
|
||||
-- INTEGER_IO.PUT(STEMLIST, 3, 2); PUT(STEMLIST, ' ');
|
||||
---- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
---- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
---- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
---- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
---- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
-- INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
-- end if;
|
||||
-- if DE.STEMS(4) /= NULL_STEM_TYPE and DE.STEMS(4) /= ZZZ_STEM then
|
||||
-- PUT(STEMLIST, DE.STEMS(4)); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
-- SET_COL(STEMLIST, 45);
|
||||
-- INTEGER_IO.PUT(STEMLIST, 4, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
-- INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
-- end if;
|
||||
elsif DE.PART.POFS = ADJ and then
|
||||
DE.STEMS(1) = DE.STEMS(2) and then
|
||||
DE.STEMS(1) /= ZZZ_STEM then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 0, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
if DE.STEMS(3) /= NULL_STEM_TYPE and DE.STEMS(3) /= ZZZ_STEM then
|
||||
PUT(STEMLIST, DE.STEMS(3)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 3, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
end if;
|
||||
if DE.STEMS(4) /= NULL_STEM_TYPE and DE.STEMS(4) /= ZZZ_STEM then
|
||||
PUT(STEMLIST, DE.STEMS(4)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 4, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
end if;
|
||||
elsif DE.PART.POFS = ADJ and then
|
||||
-- POS taken care of by position
|
||||
DE.PART.ADJ.CO = COMP then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 3, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
elsif DE.PART.POFS = ADJ and then
|
||||
DE.PART.ADJ.CO = SUPER then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 4, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
elsif DE.PART.POFS = ADV and then
|
||||
-- POS taken care of by position
|
||||
DE.PART.ADV.CO = COMP then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 2, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
elsif DE.PART.POFS = ADV and then
|
||||
DE.PART.ADV.CO = SUPER then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 3, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
elsif DE.PART.POFS = V and then
|
||||
DE.STEMS(1) = DE.STEMS(2) and then
|
||||
DE.STEMS(1) /= ZZZ_STEM then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 0, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
if DE.STEMS(3) /= NULL_STEM_TYPE and DE.STEMS(3) /= ZZZ_STEM then
|
||||
PUT(STEMLIST, DE.STEMS(3)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 3, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
end if;
|
||||
if DE.STEMS(4) /= NULL_STEM_TYPE and DE.STEMS(4) /= ZZZ_STEM then
|
||||
PUT(STEMLIST, DE.STEMS(4)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 4, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
end if;
|
||||
elsif DE.PART.POFS = NUM and then
|
||||
DE.PART.NUM.SORT = CARD then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 1, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
elsif DE.PART.POFS = NUM and then
|
||||
DE.PART.NUM.SORT = ORD then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 2, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
elsif DE.PART.POFS = NUM and then
|
||||
DE.PART.NUM.SORT = DIST then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 3, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
elsif DE.PART.POFS = NUM and then
|
||||
DE.PART.NUM.SORT = ADVERB then
|
||||
PUT(STEMLIST, DE.STEMS(1)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
INTEGER_IO.PUT(STEMLIST, 4, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
else
|
||||
for I in STEM_KEY_TYPE range 1..4 loop
|
||||
if DE.STEMS(I) /= ZZZ_STEM and
|
||||
DE.STEMS(I) /= NULL_STEM_TYPE then
|
||||
PUT(STEMLIST, DE.STEMS(I)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
PUT(STEMLIST, I, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
end if;
|
||||
end loop;
|
||||
end if;
|
||||
end if; -- PORTING
|
||||
end if;
|
||||
end loop OVER_LINES;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if D_K = GENERAL then
|
||||
|
||||
|
||||
J := J + 1;
|
||||
|
||||
-- First construct ESSE
|
||||
DE.STEMS(1) := "s ";
|
||||
DE.STEMS(2) := " ";
|
||||
DE.STEMS(3) := "fu ";
|
||||
DE.STEMS(4) := "fut ";
|
||||
--DE.PART := (PART => V, CON => (5, 10));
|
||||
--DE.PART := (V, ((5, 1)));
|
||||
DE.PART := (V, BE_VE);
|
||||
--DE.KIND := (V, TO_BE);
|
||||
DE.TRAN := (X, X, X, A, X);
|
||||
DE.MEAN := MEAN_TO_BE;
|
||||
|
||||
|
||||
if not PORTING then
|
||||
-- Load ESSE
|
||||
for I in STEM_KEY_TYPE range 1..4 loop
|
||||
PUT(STEMLIST, DE.STEMS(I)); PUT(STEMLIST, ' ');
|
||||
PUT(STEMLIST, DE.PART); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 45);
|
||||
PUT(STEMLIST, I, 2); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AGE); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.AREA); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.GEO); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.FREQ); PUT(STEMLIST, ' ');
|
||||
-- PUT(STEMLIST, DE.TRAN.SOURCE); PUT(STEMLIST, ' ');
|
||||
SET_COL(STEMLIST, 50);
|
||||
INTEGER_IO.PUT(STEMLIST, INTEGER(J), 6); NEW_LINE(STEMLIST);
|
||||
end loop;
|
||||
end if;
|
||||
|
||||
WRITE(DICTFILE, DE, J);
|
||||
end if;
|
||||
|
||||
|
||||
|
||||
|
||||
if not PORTING then
|
||||
CLOSE(STEMLIST);
|
||||
end if;
|
||||
|
||||
exception
|
||||
when TEXT_IO.DATA_ERROR =>
|
||||
null;
|
||||
when others =>
|
||||
PUT_LINE(S(1..LAST));
|
||||
INTEGER_IO.PUT(INTEGER(J)); NEW_LINE;
|
||||
CLOSE(STEMLIST);
|
||||
|
||||
end WAKEDICT;
|
||||
Reference in New Issue
Block a user