Branch data Line data Source code
1 : : /* Support for diagrams within diagnostics.
2 : : Copyright (C) 2023-2025 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_DIAGNOSTIC_DIAGRAM_H
22 : : #define GCC_DIAGNOSTIC_DIAGRAM_H
23 : :
24 : : namespace text_art
25 : : {
26 : : class canvas;
27 : : } // namespace text_art
28 : :
29 : : /* A text art diagram, along with an "alternative text" string
30 : : describing it. */
31 : :
32 : : class diagnostic_diagram
33 : : {
34 : : public:
35 : 68 : diagnostic_diagram (const text_art::canvas &canvas,
36 : : const char *alt_text)
37 : 68 : : m_canvas (canvas),
38 : 68 : m_alt_text (alt_text)
39 : : {
40 : 68 : gcc_assert (alt_text);
41 : : }
42 : :
43 : 84 : const text_art::canvas &get_canvas () const { return m_canvas; }
44 : 4 : const char *get_alt_text () const { return m_alt_text; }
45 : :
46 : : private:
47 : : const text_art::canvas &m_canvas;
48 : : const char *const m_alt_text;
49 : : };
50 : :
51 : : #endif /* ! GCC_DIAGNOSTIC_DIAGRAM_H */
|