1pragma ADA_2005;
2with X_Style1, X_Style2;
3with Text_IO; use Text_IO;
4with Text_IO; pragma ELABORATE (Text_IO); use Text_IO; -- Multiple_Clause
5with System; use Text_IO;                              -- Multiple_Clause
6with Ada.Text_IO; use Text_IO;                         -- Multiple_Clause
7with Ada.Strings.Unbounded;
8with Ada.Strings.Fixed, Ada.Strings.Bounded; use Ada.Strings.Fixed, Ada.Strings.Unbounded, Text_IO;   -- Multiple_Clause x2
9with Ada.Strings.Fixed, Ada.Strings.Bounded; use Ada.Strings.Fixed, Ada.Strings.Bounded; use Text_IO; -- Multiple_Clause
10
11separate (T_Style)
12procedure Multiple_Elements is
13   Decl1 : Integer := 0; Decl2 : Integer := 0;      -- Multiple_Decl
14   Decl3        : Integer
15     := 0; Decl4 : Integer := 0;                    -- Multiple_Decl
16
17   use Ada.Text_IO; use Ada.Strings.Wide_Unbounded; -- Multiple_Clause
18   type Enum is (Enum_1, Enum_2, Enum3);            -- OK
19
20
21   E : Enum := Enum'First;
22
23   procedure P is begin                             -- Multiple_Stmts
24      null; end P;                                  -- Multiple_Stmts
25
26   procedure
27   Q  is begin                                      -- Multiple_Stmts x2
28      null;
29   end                                              -- Multiple_Decl
30     Q;
31
32   function F return Integer
33   is
34   begin
35      return X : Integer do
36         X := 1; end return;                        -- Multiple_Stmts
37      return
38        X : Integer
39      do
40         X := 1;
41      end                                           -- Multiple_Stmts
42      return;
43      return
44        X : Integer do                              -- Multiple_Stmts
45         X := 1;
46      end return; exception                         -- Multiple_Stmts
47      when Constraint_Error => null;                -- Multiple_Stmts
48         null; when Tasking_Error =>                -- Multiple_Stmts
49         null;  end F                               -- Multiple_Stmts x2
50   ;
51begin
52   Decl1 := Decl2; Decl2 := Decl1;                  -- Multiple_Stmts
53   if Decl1 = Decl2 then No_Default_In; end if;     -- Compound_Statement, Multiple_Stmts x2
54   case E is
55      when Enum_1 => null;                          -- Multiple_Stmts
56      when Enum_2 =>
57         null;  when others => null; end case;      -- Multiple_Stmts x3
58   if Decl1 =
59     Decl2 then                                     -- Multiple_Stmts
60      Decl1 :=
61        1 ; elsif Decl2 =                           -- Multiple_Stmts
62                    Decl1 then                      -- Multiple_Stmts
63         Decl1 := 1;
64      elsif Decl2 = Decl1 then
65        Decl1 :=
66        1 ; else                                    -- Multiple_Stmts
67      Decl1 := 1; end                               -- Multiple_Stmts x2
68   if;
69
70   begin begin                                      -- Multiple_Stmts
71      null;
72   end; end;                                        -- Multiple_Stmts
73
74   begin declare begin null; end; end;              -- Compound_Statement x2, Multiple_Stmts x5
75
76   <<L1>>
77   if Decl1 = Decl2 then
78      null;
79   end if;
80
81   L2 :
82   while True loop
83      null;
84   end loop L2;
85
86   <<L3>>
87   L4 :
88   loop
89      null;
90   end loop L4;
91exception
92   when Tasking_Error =>
93      null;
94end Multiple_Elements;
95