1--  Copyright 2012-2023 Free Software Foundation, Inc.
2--
3--  This program is free software; you can redistribute it and/or modify
4--  it under the terms of the GNU General Public License as published by
5--  the Free Software Foundation; either version 3 of the License, or
6--  (at your option) any later version.
7--
8--  This program is distributed in the hope that it will be useful,
9--  but WITHOUT ANY WARRANTY; without even the implied warranty of
10--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11--  GNU General Public License for more details.
12--
13--  You should have received a copy of the GNU General Public License
14--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
16package body Pck is
17
18   function New_Small_Table (Low: Color; High: Color) return Small_Table is
19      Result : Small_Table (Low .. High);
20   begin
21      for J in Low .. High loop
22         Result (J) := (J = Black or J = Green or J = White);
23      end loop;
24      return Result;
25   end New_Small_Table;
26
27   function New_Multi_Table (Low, High: Color; LS, HS: Strength)
28     return Multi_Table is
29      Result : Multi_Table (Low .. High, LS .. HS);
30      Next : Boolean := True;
31   begin
32      for J in Low .. High loop
33         for K in LS .. HS loop
34            Result (J, K) := Next;
35            Next := not Next;
36         end loop;
37      end loop;
38      return Result;
39   end New_Multi_Table;
40
41   function New_Multi_Multi_Table (L1, H1, L2, H2, L3, H3: Positive)
42     return Multi_Multi_Table is
43      Result : Multi_Multi_Table (L1 .. H1, L2 .. H2, L3 .. H3);
44      Next : Boolean := True;
45   begin
46      for J in L1 .. H1 loop
47         for K in L2 .. H2 loop
48	    for L in L3 .. H3 loop
49	       Result (J, K, L) := Next;
50               Next := not Next;
51            end loop;
52         end loop;
53      end loop;
54      return Result;
55   end New_Multi_Multi_Table;
56
57   procedure Do_Nothing (A : System.Address) is
58   begin
59      null;
60   end Do_Nothing;
61end Pck;
62