Index: tools.gpr ================================================================== --- tools.gpr +++ tools.gpr @@ -2,11 +2,11 @@ project Tools is for Source_Dirs use ("tools"); for Main use ("generate_static_hash_map", "hmac-md5", "hmac-sha1", "hmac-sha256", - "sxcat", "timekey"); + "smaz", "sxcat", "timekey"); for Object_Dir use Natools'Object_Dir; for Exec_Dir use Natools'Exec_Dir; package Compiler is ADDED tools/smaz.adb Index: tools/smaz.adb ================================================================== --- tools/smaz.adb +++ tools/smaz.adb @@ -0,0 +1,49 @@ +------------------------------------------------------------------------------ +-- 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. -- +------------------------------------------------------------------------------ + +------------------------------------------------------------------------------ +-- Command Line Interface for primitives in Natools.Smaz.Tools. -- +------------------------------------------------------------------------------ + +with Ada.Streams; +with Ada.Text_IO.Text_Streams; +with Natools.S_Expressions.Parsers; +with Natools.Smaz.Tools; + +procedure Smaz is + Input_List : Natools.Smaz.Tools.String_Lists.List; +begin + Read_Input_List : + declare + Input : constant access Ada.Streams.Root_Stream_Type'Class + := Ada.Text_IO.Text_Streams.Stream (Ada.Text_IO.Current_Input); + Parser : Natools.S_Expressions.Parsers.Stream_Parser (Input); + begin + Parser.Next; + Natools.Smaz.Tools.Read_List (Input_List, Parser); + end Read_Input_List; + + Build_Dictionary : + declare + procedure Print_Dictionary_In_Ada is + new Natools.Smaz.Tools.Print_Dictionary_In_Ada (Ada.Text_IO.Put_Line); + + Dictionary : constant Natools.Smaz.Dictionary + := Natools.Smaz.Tools.To_Dictionary (Input_List, True); + begin + Print_Dictionary_In_Ada (Dictionary); + end Build_Dictionary; +end Smaz;