Index: generated/natools-static_maps-s_expressions-templates-integers-mc.adb ================================================================== --- generated/natools-static_maps-s_expressions-templates-integers-mc.adb +++ generated/natools-static_maps-s_expressions-templates-integers-mc.adb @@ -4,19 +4,19 @@ P : constant array (0 .. 4) of Natural := (1, 2, 5, 6, 9); T1 : constant array (0 .. 4) of Unsigned_8 := - (0, 40, 7, 12, 15); + (10, 36, 34, 8, 27); T2 : constant array (0 .. 4) of Unsigned_8 := - (31, 48, 43, 13, 1); + (6, 49, 31, 26, 30); - G : constant array (0 .. 48) of Unsigned_8 := - (0, 14, 0, 0, 0, 0, 0, 18, 0, 17, 10, 5, 0, 18, 0, 0, 18, 8, 0, 16, 18, - 0, 0, 0, 0, 15, 23, 0, 1, 4, 13, 0, 0, 0, 0, 3, 5, 17, 0, 2, 0, 14, 6, - 0, 10, 21, 0, 0, 0); + G : constant array (0 .. 50) of Unsigned_8 := + (0, 10, 0, 6, 0, 0, 0, 0, 8, 0, 0, 4, 0, 0, 11, 0, 4, 14, 1, 0, 0, 0, + 0, 0, 7, 0, 6, 0, 0, 5, 0, 0, 21, 0, 17, 0, 16, 7, 23, 0, 20, 10, 0, + 0, 2, 1, 10, 2, 0, 19, 3); function Hash (S : String) return Natural is F : constant Natural := S'First - 1; L : constant Natural := S'Length; F1, F2 : Natural := 0; @@ -23,12 +23,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 49; - F2 := (F2 + Natural (T2 (K)) * J) mod 49; + F1 := (F1 + Natural (T1 (K)) * J) mod 51; + F2 := (F2 + Natural (T2 (K)) * J) mod 51; end loop; - return (Natural (G (F1)) + Natural (G (F2))) mod 24; + return (Natural (G (F1)) + Natural (G (F2))) mod 25; end Hash; end Natools.Static_Maps.S_Expressions.Templates.Integers.MC; Index: generated/natools-static_maps-s_expressions-templates-integers-t.adb ================================================================== --- generated/natools-static_maps-s_expressions-templates-integers-t.adb +++ generated/natools-static_maps-s_expressions-templates-integers-t.adb @@ -1,6 +1,6 @@ --- Generated at 2014-09-26 17:52:14 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-10-01 17:18:35 +0000 by Natools.Static_Hash_Maps -- from src/natools-s_expressions-templates-generic_integers-maps.sx with Natools.Static_Maps.S_Expressions.Templates.Integers.MC; with Natools.Static_Maps.S_Expressions.Templates.Integers.AC; function Natools.Static_Maps.S_Expressions.Templates.Integers.T Index: generated/natools-static_maps-s_expressions-templates-integers-t.ads ================================================================== --- generated/natools-static_maps-s_expressions-templates-integers-t.ads +++ generated/natools-static_maps-s_expressions-templates-integers-t.ads @@ -1,6 +1,6 @@ --- Generated at 2014-09-26 17:52:14 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-10-01 17:18:35 +0000 by Natools.Static_Hash_Maps -- from src/natools-s_expressions-templates-generic_integers-maps.sx function Natools.Static_Maps.S_Expressions.Templates.Integers.T return Boolean; pragma Pure (Natools.Static_Maps.S_Expressions.Templates.Integers.T); Index: generated/natools-static_maps-s_expressions-templates-integers.adb ================================================================== --- generated/natools-static_maps-s_expressions-templates-integers.adb +++ generated/natools-static_maps-s_expressions-templates-integers.adb @@ -1,6 +1,6 @@ --- Generated at 2014-09-26 17:52:14 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-10-01 17:18:35 +0000 by Natools.Static_Hash_Maps -- from src/natools-s_expressions-templates-generic_integers-maps.sx with Natools.Static_Maps.S_Expressions.Templates.Integers.MC; with Natools.Static_Maps.S_Expressions.Templates.Integers.AC; Index: generated/natools-static_maps-s_expressions-templates-integers.ads ================================================================== --- generated/natools-static_maps-s_expressions-templates-integers.ads +++ generated/natools-static_maps-s_expressions-templates-integers.ads @@ -1,6 +1,6 @@ --- Generated at 2014-09-26 17:52:14 +0000 by Natools.Static_Hash_Maps +-- Generated at 2014-10-01 17:18:35 +0000 by Natools.Static_Hash_Maps -- from src/natools-s_expressions-templates-generic_integers-maps.sx package Natools.Static_Maps.S_Expressions.Templates.Integers is pragma Pure; @@ -9,10 +9,11 @@ Align, Align_Center, Align_Left, Align_Right, Base, + Image_Range, Images, Padding, Padding_Left, Padding_Right, Prefix, @@ -35,27 +36,28 @@ Map_1_Key_3 : aliased constant String := "align-left"; Map_1_Key_4 : aliased constant String := "left-align"; Map_1_Key_5 : aliased constant String := "align-right"; Map_1_Key_6 : aliased constant String := "right-align"; Map_1_Key_7 : aliased constant String := "base"; - Map_1_Key_8 : aliased constant String := "image"; - Map_1_Key_9 : aliased constant String := "images"; - Map_1_Key_10 : aliased constant String := "padding"; - Map_1_Key_11 : aliased constant String := "padding-left"; - Map_1_Key_12 : aliased constant String := "left-padding"; - Map_1_Key_13 : aliased constant String := "padding-right"; - Map_1_Key_14 : aliased constant String := "right-padding"; - Map_1_Key_15 : aliased constant String := "prefix"; - Map_1_Key_16 : aliased constant String := "sign"; - Map_1_Key_17 : aliased constant String := "signs"; - Map_1_Key_18 : aliased constant String := "suffix"; - Map_1_Key_19 : aliased constant String := "width"; - Map_1_Key_20 : aliased constant String := "width-max"; - Map_1_Key_21 : aliased constant String := "max-width"; - Map_1_Key_22 : aliased constant String := "width-min"; - Map_1_Key_23 : aliased constant String := "min-width"; - Map_1_Keys : constant array (0 .. 23) of access constant String + Map_1_Key_8 : aliased constant String := "image-range"; + Map_1_Key_9 : aliased constant String := "image"; + Map_1_Key_10 : aliased constant String := "images"; + Map_1_Key_11 : aliased constant String := "padding"; + Map_1_Key_12 : aliased constant String := "padding-left"; + Map_1_Key_13 : aliased constant String := "left-padding"; + Map_1_Key_14 : aliased constant String := "padding-right"; + Map_1_Key_15 : aliased constant String := "right-padding"; + Map_1_Key_16 : aliased constant String := "prefix"; + Map_1_Key_17 : aliased constant String := "sign"; + Map_1_Key_18 : aliased constant String := "signs"; + Map_1_Key_19 : aliased constant String := "suffix"; + Map_1_Key_20 : aliased constant String := "width"; + Map_1_Key_21 : aliased constant String := "width-max"; + Map_1_Key_22 : aliased constant String := "max-width"; + Map_1_Key_23 : aliased constant String := "width-min"; + Map_1_Key_24 : aliased constant String := "min-width"; + Map_1_Keys : constant array (0 .. 24) 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, @@ -75,20 +77,22 @@ Map_1_Key_18'Access, Map_1_Key_19'Access, Map_1_Key_20'Access, Map_1_Key_21'Access, Map_1_Key_22'Access, - Map_1_Key_23'Access); - Map_1_Elements : constant array (0 .. 23) of Main_Command + Map_1_Key_23'Access, + Map_1_Key_24'Access); + Map_1_Elements : constant array (0 .. 24) of Main_Command := (Align, Align_Center, Align_Center, Align_Left, Align_Left, Align_Right, Align_Right, Base, + Image_Range, Images, Images, Padding, Padding_Left, Padding_Left, Index: src/natools-s_expressions-templates-generic_integers-maps.sx ================================================================== --- src/natools-s_expressions-templates-generic_integers-maps.sx +++ src/natools-s_expressions-templates-generic_integers-maps.sx @@ -7,10 +7,11 @@ Align, Align_Center, Align_Left, Align_Right, Base, + Image_Range, Images, Padding, Padding_Left, Padding_Right, Prefix, @@ -30,10 +31,11 @@ (Align align) (Align_Center align-center centered) (Align_Left align-left left-align) (Align_Right align-right right-align) (Base base) + (Image_Range image-range) (Images image images) (Padding padding) (Padding_Left padding-left left-padding) (Padding_Right padding-right right-padding) (Prefix prefix) Index: src/natools-s_expressions-templates-generic_integers.adb ================================================================== --- src/natools-s_expressions-templates-generic_integers.adb +++ src/natools-s_expressions-templates-generic_integers.adb @@ -132,10 +132,13 @@ State.Set_Align (Right_Aligned); when Commands.Base => State.Set_Symbols (Arguments); + when Commands.Image_Range => + Parse (State.Images, Arguments); + when Commands.Images => Image_Interpreter (Arguments, State, Meaningless_Value); when Commands.Padding => case Arguments.Current_Event is