Overview
Comment: | smaz-tools: new primitive to append a new string value to a dictionary |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5e694df685037e37d1a878bfc945e0f1 |
User & Date: | nat on 2016-10-24 19:31:30 |
Other Links: | manifest | tags |
Context
2016-10-25
| ||
19:55 | smaz-tools: new primitive to build a dictionary with pending words check-in: 214d918405 user: nat tags: trunk | |
2016-10-24
| ||
19:31 | smaz-tools: new primitive to append a new string value to a dictionary check-in: 5e694df685 user: nat tags: trunk | |
2016-10-23
| ||
21:23 | smaz-tools: new primitive to remove an entry from a dictionary check-in: 134a6f8380 user: nat tags: trunk | |
Changes
Modified src/natools-smaz-tools.adb from [8bd112085b] to [fff0b51a2c].
︙ | |||
126 127 128 129 130 131 132 133 134 135 136 137 138 139 | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | + + + + + + + + + + + + + + + + | end Image; ---------------------- -- Public Interface -- ---------------------- function Append_String (Dict : in Dictionary; Value : in String) return Dictionary is begin return Dictionary' (Dict_Last => Dict.Dict_Last + 1, String_Size => Dict.String_Size + Value'Length, Variable_Length_Verbatim => Dict.Variable_Length_Verbatim, Max_Word_Length => Positive'Max (Dict.Max_Word_Length, Value'Length), Offsets => Dict.Offsets & (1 => Dict.String_Size + 1), Values => Dict.Values & Value, Hash => Dummy_Hash'Access); end Append_String; procedure Print_Dictionary_In_Ada (Dict : in Dictionary; Hash_Image : in String := "TODO"; Max_Width : in Positive := 70; First_Prefix : in String := " := ("; Prefix : in String := " "; |
︙ |
Modified src/natools-smaz-tools.ads from [62afa1f171] to [afadd90eae].
︙ | |||
77 78 79 80 81 82 83 84 85 86 87 88 89 90 | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | + + + + + + + + + + + + + + + | = Dict_Entry (Remove_Element'Result, I))) and then (Index = Dict.Dict_Last or else (for all I in Index .. Dict.Dict_Last - 1 => Dict_Entry (Dict, I + 1) = Dict_Entry (Remove_Element'Result, I))); -- Return a new dictionary equal to Dict without element for Index function Append_String (Dict : in Dictionary; Value : in String) return Dictionary with Pre => Dict.Dict_Last < Ada.Streams.Stream_Element'Last and then Value'Length > 0, Post => Dict.Dict_Last = Append_String'Result.Dict_Last - 1 and then (for all I in 0 .. Dict.Dict_Last => Dict_Entry (Dict, I) = Dict_Entry (Append_String'Result, I)) and then Dict_Entry (Append_String'Result, Append_String'Result.Dict_Last) = Value; -- Return a new dictionary with Value appended List_For_Linear_Search : String_Lists.List; function Linear_Search (Value : String) return Natural; -- Function and data source for inefficient but dynamic function -- that can be used with Dictionary.Hash. procedure Set_Dictionary_For_Map_Search (Dict : in Dictionary); function Map_Search (Value : String) return Natural; |
︙ |