1with TEXT_IO;
2with DIRECT_IO;
3with INFLECTIONS_PACKAGE; use INFLECTIONS_PACKAGE;
4with DICTIONARY_PACKAGE; use DICTIONARY_PACKAGE;
5package WORD_SUPPORT_PACKAGE is
6
7  FOLLOWED_BY_PERIOD, FOLLOWS_PERIOD, CAPITALIZED, ALL_CAPS :
8                                                    BOOLEAN := FALSE;
9
10
11  type DICTIONARY_STEM is
12    record
13      STEM : STEM_TYPE := NULL_STEM_TYPE;
14      PART : PART_ENTRY := NULL_PART_ENTRY;
15      KEY  : STEM_KEY_TYPE := 0;
16      MNPC : DICT_IO.COUNT := NULL_MNPC;
17    end record;
18
19  package STEM_IO is new DIRECT_IO(DICTIONARY_STEM);
20  package COUNT_IO is new TEXT_IO.INTEGER_IO(STEM_IO.COUNT);
21
22  subtype DICTIONARY_FILE_KIND is DICTIONARY_KIND range GENERAL..LOCAL;
23  DEFAULT_DICTIONARY_FILE_KIND : DICTIONARY_FILE_KIND := GENERAL;
24
25  STEM_FILE : array (DICTIONARY_FILE_KIND) of STEM_IO.FILE_TYPE;
26
27  STEM_LIST : array (DICTIONARY_FILE_KIND) of TEXT_IO.FILE_TYPE;
28  INDX_FILE : array (DICTIONARY_FILE_KIND) of TEXT_IO.FILE_TYPE;
29
30
31  type DICT_ARRAY is array (POSITIVE range <>) of DICTIONARY_STEM;
32  BDL : DICT_ARRAY(1..100);
33  BDL_LAST : INTEGER := 0;
34--SIZE_OF_DICTIONARY_ARRAY : constant INTEGER := 120;    --  ###################
35--DDL : DICT_ARRAY(1..SIZE_OF_DICTIONARY_ARRAY);
36  type DICT_ARRAY_INDEX is array (CHARACTER range <>,
37                                  CHARACTER range <>,
38                       DICTIONARY_FILE_KIND range <>) of STEM_IO.COUNT;
39
40  BBLF, BBLL : DICT_ARRAY_INDEX(' '..' ', ' '..' ', DICTIONARY_FILE_KIND) :=
41                               (others => (others => (others => 0)));
42  BDLF, BDLL : DICT_ARRAY_INDEX('a'..'z', ' '..' ', DICTIONARY_FILE_KIND) :=
43                               (others => (others => (others => 0)));
44  DDLF, DDLL : DICT_ARRAY_INDEX('a'..'z', 'a'..'z', DICTIONARY_FILE_KIND) :=
45                               (others => (others => (others => 0)));
46
47
48  function ADJ_COMP_FROM_KEY(KEY : STEM_KEY_TYPE) return COMPARISON_TYPE;
49
50  function ADV_COMP_FROM_KEY(KEY : STEM_KEY_TYPE) return COMPARISON_TYPE;
51
52  function NUM_SORT_FROM_KEY(KEY : STEM_KEY_TYPE) return NUMERAL_SORT_TYPE;
53
54  function EFF_PART(PART : PART_OF_SPEECH_TYPE) return PART_OF_SPEECH_TYPE;
55
56  function LEN(S : STRING) return INTEGER;
57
58  function FIRST_INDEX(INPUT_WORD : STRING;
59                   D_K : DICTIONARY_FILE_KIND := DEFAULT_DICTIONARY_FILE_KIND)
60                  return STEM_IO.COUNT;
61
62  function  LAST_INDEX(INPUT_WORD : STRING;
63              D_K : DICTIONARY_FILE_KIND := DEFAULT_DICTIONARY_FILE_KIND)
64                  return STEM_IO.COUNT;
65
66  procedure LOAD_INDICES_FROM_INDX_FILE(INDXFILE_NAME : STRING;
67                                        D_K : DICTIONARY_KIND);
68
69  procedure LOAD_BDL_FROM_DISK;
70
71
72end WORD_SUPPORT_PACKAGE;
73