Index: src/natools-static_hash_maps-s_expressions-command_maps-test.adb ================================================================== --- src/natools-static_hash_maps-s_expressions-command_maps-test.adb +++ src/natools-static_hash_maps-s_expressions-command_maps-test.adb @@ -1,6 +1,6 @@ --- Generated at 2014-05-29 18:32:55 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-05-31 15:03:28 +0000 by Natools.Static_Hash_Maps -- from natools-static_hash_maps-s_expressions-hash_maps.sx with Natools.Static_Hash_Maps.S_Expressions.Command_Pkg; with Natools.Static_Hash_Maps.S_Expressions.Command_Map; function Natools.Static_Hash_Maps.S_Expressions.Command_Maps.Test Index: src/natools-static_hash_maps-s_expressions-command_maps-test.ads ================================================================== --- src/natools-static_hash_maps-s_expressions-command_maps-test.ads +++ src/natools-static_hash_maps-s_expressions-command_maps-test.ads @@ -1,5 +1,5 @@ --- Generated at 2014-05-29 18:32:55 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-05-31 15:03:28 +0000 by Natools.Static_Hash_Maps -- from natools-static_hash_maps-s_expressions-hash_maps.sx function Natools.Static_Hash_Maps.S_Expressions.Command_Maps.Test return Boolean; Index: src/natools-static_hash_maps-s_expressions-command_maps.adb ================================================================== --- src/natools-static_hash_maps-s_expressions-command_maps.adb +++ src/natools-static_hash_maps-s_expressions-command_maps.adb @@ -1,6 +1,6 @@ --- Generated at 2014-05-28 17:27:24 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-05-31 15:03:28 +0000 by Natools.Static_Hash_Maps -- from natools-static_hash_maps-s_expressions-hash_maps.sx with Natools.Static_Hash_Maps.S_Expressions.Command_Pkg; with Natools.Static_Hash_Maps.S_Expressions.Command_Map; Index: src/natools-static_hash_maps-s_expressions-command_maps.ads ================================================================== --- src/natools-static_hash_maps-s_expressions-command_maps.ads +++ src/natools-static_hash_maps-s_expressions-command_maps.ads @@ -1,6 +1,6 @@ --- Generated at 2014-05-28 17:27:24 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-05-31 15:03:28 +0000 by Natools.Static_Hash_Maps -- from natools-static_hash_maps-s_expressions-hash_maps.sx private package Natools.Static_Hash_Maps.S_Expressions.Command_Maps is function To_Package_Command (Key : String) return Package_Command; @@ -10,22 +10,28 @@ Map_1_Key_0 : aliased constant String := "extra-declarations"; Map_1_Key_1 : aliased constant String := "extra-decl"; Map_1_Key_2 : aliased constant String := "private"; Map_1_Key_3 : aliased constant String := "public"; - Map_1_Key_4 : aliased constant String := "test-function"; - Map_1_Keys : constant array (0 .. 4) of access constant String + Map_1_Key_4 : aliased constant String := "pure"; + Map_1_Key_5 : aliased constant String := "preelaborate"; + Map_1_Key_6 : aliased constant String := "test-function"; + Map_1_Keys : constant array (0 .. 6) of access constant String := (Map_1_Key_0'Access, Map_1_Key_1'Access, Map_1_Key_2'Access, Map_1_Key_3'Access, - Map_1_Key_4'Access); - Map_1_Elements : constant array (0 .. 4) of Package_Command + Map_1_Key_4'Access, + Map_1_Key_5'Access, + Map_1_Key_6'Access); + Map_1_Elements : constant array (0 .. 6) of Package_Command := (Extra_Declarations, Extra_Declarations, Private_Child, Public_Child, + Pure_Package, + Preelaborate_Package, Test_Function); Map_2_Key_0 : aliased constant String := "hash-package"; Map_2_Key_1 : aliased constant String := "nodes"; Map_2_Key_2 : aliased constant String := "function"; Index: src/natools-static_hash_maps-s_expressions-command_pkg.adb ================================================================== --- src/natools-static_hash_maps-s_expressions-command_pkg.adb +++ src/natools-static_hash_maps-s_expressions-command_pkg.adb @@ -1,20 +1,20 @@ with Interfaces; use Interfaces; package body Natools.Static_Hash_Maps.S_Expressions.Command_Pkg is P : constant array (0 .. 1) of Natural := - (2, 11); + (3, 11); T1 : constant array (0 .. 1) of Unsigned_8 := - (8, 10); + (0, 1); T2 : constant array (0 .. 1) of Unsigned_8 := - (5, 2); + (6, 12); - G : constant array (0 .. 10) of Unsigned_8 := - (2, 3, 0, 0, 0, 0, 1, 0, 0, 0, 2); + G : constant array (0 .. 16) of Unsigned_8 := + (0, 2, 0, 6, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 1); function Hash (S : String) return Natural is F : constant Natural := S'First - 1; L : constant Natural := S'Length; F1, F2 : Natural := 0; @@ -21,12 +21,12 @@ J : Natural; begin for K in P'Range loop exit when L < P (K); J := Character'Pos (S (P (K) + F)); - F1 := (F1 + Natural (T1 (K)) * J) mod 11; - F2 := (F2 + Natural (T2 (K)) * J) mod 11; + F1 := (F1 + Natural (T1 (K)) * J) mod 17; + F2 := (F2 + Natural (T2 (K)) * J) mod 17; end loop; - return (Natural (G (F1)) + Natural (G (F2))) mod 5; + return (Natural (G (F1)) + Natural (G (F2))) mod 7; end Hash; end Natools.Static_Hash_Maps.S_Expressions.Command_Pkg; Index: src/natools-static_hash_maps-s_expressions-hash_maps.sx ================================================================== --- src/natools-static_hash_maps-s_expressions-hash_maps.sx +++ src/natools-static_hash_maps-s_expressions-hash_maps.sx @@ -7,10 +7,12 @@ (not-found Extra_Declarations) (nodes (Extra_Declarations extra-declarations extra-decl) (Private_Child private) (Public_Child public) + (Pure_Package pure) + (Preelaborate_Package preelaborate) (Test_Function test-function))) (Map_Command (hash-package Natools.Static_Hash_Maps.S_Expressions.Command_Map) (function To_Map_Command) (nodes Index: src/natools-static_hash_maps-s_expressions.adb ================================================================== --- src/natools-static_hash_maps-s_expressions.adb +++ src/natools-static_hash_maps-s_expressions.adb @@ -197,10 +197,14 @@ case Command_Maps.To_Package_Command (Sx.To_String (Name)) is when Private_Child => Set_Private_Child (Pkg, True); when Public_Child => Set_Private_Child (Pkg, False); + when Pure_Package => + Set_Categorization (Pkg, Pure); + when Preelaborate_Package => + Set_Categorization (Pkg, Preelaborate); when Extra_Declarations => if Arguments.Current_Event = Sx.Events.Add_Atom then Set_Extra_Declarations (Pkg, Sx.To_String (Arguments.Current_Atom)); end if; @@ -240,10 +244,14 @@ case Command_Maps.To_Package_Command (Sx.To_String (Name)) is when Private_Child => Set_Private_Child (Pkg, True); when Public_Child => Set_Private_Child (Pkg, False); + when Pure_Package => + Set_Categorization (Pkg, Pure); + when Preelaborate_Package => + Set_Categorization (Pkg, Preelaborate); when Extra_Declarations => Set_Extra_Declarations (Pkg, Sx.To_String (Name)); when Test_Function => null; end case; Index: src/natools-static_hash_maps-s_expressions.ads ================================================================== --- src/natools-static_hash_maps-s_expressions.ads +++ src/natools-static_hash_maps-s_expressions.ads @@ -39,10 +39,12 @@ private type Package_Command is (Private_Child, Public_Child, + Pure_Package, + Preelaborate_Package, Test_Function, Extra_Declarations); type Map_Command is (Hash_Package,