Overview
Comment: | smaz-tools: new package with tools to help with Smaz dictionaries |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a168e51311c24215febb93d7edbc12da |
User & Date: | nat on 2016-09-04 20:27:47 |
Other Links: | manifest | tags |
Context
2016-09-05
| ||
21:59 | smaz-tools: add a Dictionary constructor from a word list check-in: fd239bbe25 user: nat tags: trunk | |
2016-09-04
| ||
20:27 | smaz-tools: new package with tools to help with Smaz dictionaries check-in: a168e51311 user: nat tags: trunk | |
2016-09-03
| ||
21:36 | s_expressions: new primitive to update a descriptor until end of list check-in: 14fcb09484 user: nat tags: trunk | |
Changes
Added src/natools-smaz-tools.adb version [8db174524e].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 47 48 49 50 51 52 53 54 55 56 | ------------------------------------------------------------------------------ -- Copyright (c) 2016, 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 -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ package body Natools.Smaz.Tools is package Sx renames Natools.S_Expressions; ---------------------- -- Public Interface -- ---------------------- procedure Read_List (List : out String_Lists.List; Descriptor : in out S_Expressions.Descriptor'Class) is use type Sx.Events.Event; Event : Sx.Events.Event := Descriptor.Current_Event; begin String_Lists.Clear (List); if Event = Sx.Events.Open_List then Descriptor.Next (Event); end if; Read_Loop : loop case Event is when Sx.Events.Add_Atom => String_Lists.Append (List, Sx.To_String (Descriptor.Current_Atom)); when Sx.Events.Open_List => Descriptor.Close_Current_List; when Sx.Events.End_Of_Input | Sx.Events.Error | Sx.Events.Close_List => exit Read_Loop; end case; Descriptor.Next (Event); end loop Read_Loop; end Read_List; end Natools.Smaz.Tools; |
Added src/natools-smaz-tools.ads version [bf468fcb8e].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | ------------------------------------------------------------------------------ -- Copyright (c) 2016, 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 -- -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -- -- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -- -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -- -- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -- -- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -- ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ -- Natools.Smaz.Tools helps building and generating dictionary for use -- -- with its parent package. Note that the dictionary is intended to be -- -- generated and hard-coded, so the final client shouldn't need this -- -- package. -- ------------------------------------------------------------------------------ with Ada.Containers.Indefinite_Doubly_Linked_Lists; with Natools.S_Expressions; package Natools.Smaz.Tools is pragma Preelaborate; package String_Lists is new Ada.Containers.Indefinite_Doubly_Linked_Lists (String); procedure Read_List (List : out String_Lists.List; Descriptor : in out S_Expressions.Descriptor'Class); -- Read atoms from Descriptor to fill List end Natools.Smaz.Tools; |