1/* Support for diagrams within diagnostics.
2 Copyright (C) 2023-2024 Free Software Foundation, Inc.
3 Contributed by David Malcolm <dmalcolm@redhat.com>
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 3, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along 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
24namespace 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
32class diagnostic_diagram
33{
34 public:
35 diagnostic_diagram (const text_art::canvas &canvas,
36 const char *alt_text)
37 : m_canvas (canvas),
38 m_alt_text (alt_text)
39 {
40 gcc_assert (alt_text);
41 }
42
43 const text_art::canvas &get_canvas () const { return m_canvas; }
44 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 */
52

source code of gcc/diagnostic-diagram.h