gnatdoc_24.0.0_8cc57c73/testsuite/drivers/gnatdoc-comments-debug.adb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
------------------------------------------------------------------------------
--                    GNAT Documentation Generation Tool                    --
--                                                                          --
--                     Copyright (C) 2022-2023, AdaCore                     --
--                                                                          --
-- This is free software;  you can redistribute it  and/or modify it  under --
-- terms of the  GNU General Public License as published  by the Free Soft- --
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
-- sion.  This software is distributed in the hope  that it will be useful, --
-- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
-- License for  more details.  You should have  received  a copy of the GNU --
-- General  Public  License  distributed  with  this  software;   see  file --
-- COPYING3.  If not, go to http://www.gnu.org/licenses for a complete copy --
-- of the license.                                                          --
------------------------------------------------------------------------------

with Ada.Wide_Wide_Text_IO;   use Ada.Wide_Wide_Text_IO;

with VSS.Strings.Conversions; use VSS.Strings.Conversions;

with Langkit_Support.Slocs;   use Langkit_Support.Slocs;

package body GNATdoc.Comments.Debug is

   procedure Dump
     (Sections : Section_Vectors.Vector;
      Indent   : Wide_Wide_String;
      Text     : in out VSS.String_Vectors.Virtual_String_Vector);

   ----------
   -- Dump --
   ----------

   procedure Dump (Comment : Structured_Comment'Class) is
      Text : VSS.String_Vectors.Virtual_String_Vector;

   begin
      Dump (Comment.Sections, "", Text);

      for Line of Text loop
         Put_Line (To_Wide_Wide_String (Line));
      end loop;
   end Dump;

   ----------
   -- Dump --
   ----------

   procedure Dump
     (Sections : Section_Vectors.Vector;
      Indent   : Wide_Wide_String;
      Text     : in out VSS.String_Vectors.Virtual_String_Vector) is
   begin
      for Section of Sections loop
         Text.Append
           (VSS.Strings.To_Virtual_String
              (Indent
               & "\/ "
               & Section_Kind'Wide_Wide_Image (Section.Kind)
               & " "
               & To_Wide_Wide_String (Section.Symbol)
               & " ("
               & To_Wide_Wide_String (Section.Name)
               & ") "
               & Line_Number'Wide_Wide_Image (Section.Exact_Start_Line)
               & Line_Number'Wide_Wide_Image (Section.Exact_End_Line)
               & Line_Number'Wide_Wide_Image (Section.Group_Start_Line)
               & Line_Number'Wide_Wide_Image (Section.Group_End_Line)));

         for Line of Section.Text loop
            Text.Append (Line);
         end loop;

         Dump (Section.Sections, Indent & "  ", Text);
      end loop;
   end Dump;

   ----------
   -- Dump --
   ----------

   function Dump (Comment : Structured_Comment'Class) return String is
      Text : VSS.String_Vectors.Virtual_String_Vector;

   begin
      Dump (Comment.Sections, "", Text);

      return To_UTF_8_String (Text.Join_Lines (VSS.Strings.LF));
   end Dump;

end GNATdoc.Comments.Debug;