1
2
3
4
5
6
7
8
9
|
1
2
3
4
5
6
7
8
9
|
-
+
|
------------------------------------------------------------------------------
-- Copyright (c) 2016, Natacha Porté --
-- Copyright (c) 2016-2017, Natacha Porté --
-- --
-- Permission to use, copy, modify, and distribute this software for any --
-- purpose with or without fee is hereby granted, provided that the above --
-- copyright notice and this permission notice appear in all copies. --
-- --
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF --
|
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
|
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
|
-
-
-
+
+
|
------------------------------------------------------------------------------
-- Natools.Smaz_Generic.Tools provides tools specific to the dictionary --
-- implementation. These tools are useful for dictionary manipulation, --
-- even though the intended use of this Smaz implementation is through a --
-- global constant dictionary object. --
------------------------------------------------------------------------------
with Ada.Containers;
with Natools.Smaz_Tools;
generic
package Natools.Smaz_Generic.Tools is
pragma Preelaborate;
package String_Lists renames Smaz_Tools.String_Lists;
function To_Dictionary
(List : in String_Lists.List;
Variable_Length_Verbatim : in Boolean)
return Dictionary
with Pre => String_Lists.Length (List) in 1 ..
Ada.Containers.Count_Type (Ada.Streams.Stream_Element'Last);
with Pre => String_Lists.Length (List)
in 1 .. Dictionary_Code'Pos (Dictionary_Code'Last);
-- Build a Dictionary object from a string list
-- Note that Hash is set to a placeholder which unconditionnally
-- raises Program_Error when called.
function To_String_List (Dict : in Dictionary) return String_Lists.List;
-- Convert a dictionary back to the corresponding list of words
|