Line data Source code
1 : /* Support for diagrams within diagnostics.
2 : Copyright (C) 2023-2026 Free Software Foundation, Inc.
3 : Contributed by David Malcolm <dmalcolm@redhat.com>
4 :
5 : This file is part of GCC.
6 :
7 : GCC is free software; you can redistribute it and/or modify it under
8 : the terms of the GNU General Public License as published by the Free
9 : Software Foundation; either version 3, or (at your option) any later
10 : version.
11 :
12 : GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 : WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 : FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 : for more details.
16 :
17 : You should have received a copy of the GNU General Public License
18 : along with GCC; see the file COPYING3. If not see
19 : <http://www.gnu.org/licenses/>. */
20 :
21 : #ifndef GCC_DIAGNOSTICS_DIAGRAM_H
22 : #define GCC_DIAGNOSTICS_DIAGRAM_H
23 :
24 : namespace text_art
25 : {
26 : class canvas;
27 : } // namespace text_art
28 :
29 : namespace diagnostics {
30 :
31 : /* A text art diagram, along with an "alternative text" string
32 : describing it. */
33 :
34 : class diagram
35 : {
36 : public:
37 68 : diagram (const text_art::canvas &canvas,
38 : const char *alt_text)
39 68 : : m_canvas (canvas),
40 68 : m_alt_text (alt_text)
41 : {
42 68 : gcc_assert (alt_text);
43 : }
44 :
45 84 : const text_art::canvas &get_canvas () const { return m_canvas; }
46 4 : const char *get_alt_text () const { return m_alt_text; }
47 :
48 : private:
49 : const text_art::canvas &m_canvas;
50 : const char *const m_alt_text;
51 : };
52 :
53 : } // namespace diagnostics
54 :
55 : #endif /* ! GCC_DIAGNOSTICS_DIAGRAM_H */
|