Natools

Check-in [1eac1c8b76]
Login
Overview
Comment:tools/smaz: refactor dictionary holder inside the generic package
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1eac1c8b7682e388bc9d5df1632ae6c33ead96e6
User & Date: nat on 2016-12-06 22:40:57
Other Links: manifest | tags
Context
2016-12-07
21:36
tools/smaz: partially genericize Print_Dictionary check-in: 966f7e5239 user: nat tags: trunk
2016-12-06
22:40
tools/smaz: refactor dictionary holder inside the generic package check-in: 1eac1c8b76 user: nat tags: trunk
2016-12-05
21:01
tools/smaz: genericize To_Dictionary check-in: 1dce15910c user: nat tags: trunk
Changes

Modified tools/smaz.adb from [d404854fda] to [acdde2a761].

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
36
37
38
39
40
41
42



43
44
45
46
47
48
49







-
-
-







with Natools.Smaz_Tools.GNAT;
with Natools.String_Escapes;

procedure Smaz is
   function To_SEA (S : String) return Ada.Streams.Stream_Element_Array
     renames Natools.S_Expressions.To_Atom;

   package Holders is new Ada.Containers.Indefinite_Holders
     (Natools.Smaz_256.Dictionary, Natools.Smaz_256."=");

   package Tools_256 is new Natools.Smaz_256.Tools;

   package Methods renames Natools.Smaz_Tools.Methods;

   package Actions is
      type Enum is
        (Nothing,
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
161
162
163
164
165
166
167


168
169
170
171
172
173
174







-
-







      type Dictionary_Entry is (<>);
      type Methods is (<>);
      type String_Count is range <>;
      type Word_Counter is private;

      type Dictionary_Counts is array (Dictionary_Entry) of String_Count;

      with package Holders
        is new Ada.Containers.Indefinite_Holders (Dictionary);
      with package String_Lists
        is new Ada.Containers.Indefinite_Doubly_Linked_Lists (String);

      with procedure Add_Substrings
        (Counter : in out Word_Counter;
         Phrase : in String;
         Min_Size : in Positive;
242
243
244
245
246
247
248


249
250
251
252
253
254
255
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252







+
+







      with function Worst_Element
        (Dict : in Dictionary;
         Counts : in Dictionary_Counts;
         Method : in Methods)
        return Dictionary_Entry;

   package Dictionary_Subprograms is

      package Holders is new Ada.Containers.Indefinite_Holders (Dictionary);

      procedure Evaluate_Dictionary
        (Job_Count : in Natural;
         Dict : in Dictionary;
         Corpus : in String_Lists.List;
         Compressed_Size : out Ada.Streams.Stream_Element_Count;
         Counts : out Dictionary_Counts);
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
577
578
579
580
581
582
583

584
585
586
587
588
589
590







-







   package Dict_256 is new Dictionary_Subprograms
     (Dictionary => Natools.Smaz_256.Dictionary,
      Dictionary_Entry => Ada.Streams.Stream_Element,
      Methods => Natools.Smaz_Tools.Methods.Enum,
      String_Count => Natools.Smaz_Tools.String_Count,
      Word_Counter => Natools.Smaz_Tools.Word_Counter,
      Dictionary_Counts => Tools_256.Dictionary_Counts,
      Holders => Holders,
      String_Lists => Natools.Smaz_Tools.String_Lists,
      Add_Substrings => Natools.Smaz_Tools.Add_Substrings,
      Add_Words => Natools.Smaz_Tools.Add_Words,
      Append_String => Tools_256.Append_String,
      Dict_Entry => Natools.Smaz_256.Dict_Entry,
      Evaluate_Dictionary => Tools_256.Evaluate_Dictionary,
      Evaluate_Dictionary_Partial => Tools_256.Evaluate_Dictionary_Partial,