3#include "slang/ast/Compilation.h"
4#include "slang/diagnostics/DiagnosticEngine.h"
5#include "slang/diagnostics/Diagnostics.h"
6#include "slang/diagnostics/TextDiagnosticClient.h"
8#define NETLIST_DIAGNOSTICS \
9 X(Value, 0, "value {}") \
10 X(InputPort, 1, "input port {}") \
11 X(OutputPort, 2, "output port {}") \
12 X(Assignment, 3, "assignment") \
13 X(Conditional, 4, "conditional statement") \
14 X(Case, 5, "case statement")
18#define X(name, code, text) \
19 inline constexpr DiagCode name(DiagSubsystem::Netlist, code);
31 std::shared_ptr<TextDiagnosticClient>
client;
34 bool showColours =
true)
35 :
engine(*compilation.getSourceManager()),
36 client(std::make_shared<TextDiagnosticClient>()) {
38#define X(name, code, text) \
39 engine.setMessage(diag::name, text); \
40 engine.setSeverity(diag::name, DiagnosticSeverity::Note);
47 client->showColors(showColours);
48 client->showLocation(
true);
49 client->showSourceLine(
true);
50 client->showHierarchyInstance(ShowHierarchyPathOption::Always);
53 auto issue(Diagnostic &diagnostic) {
engine.issue(diagnostic); }
#define NETLIST_DIAGNOSTICS
Definition NetlistDiagnostics.hpp:8
Definition NetlistDiagnostics.hpp:16
Definition Utilities.hpp:16
DiagnosticEngine engine
Definition NetlistDiagnostics.hpp:30
auto issue(Diagnostic &diagnostic)
Definition NetlistDiagnostics.hpp:53
NetlistDiagnostics(ast::Compilation const &compilation, bool showColours=true)
Definition NetlistDiagnostics.hpp:33
auto clear() const
Definition NetlistDiagnostics.hpp:57
auto getString() const
Definition NetlistDiagnostics.hpp:55
std::shared_ptr< TextDiagnosticClient > client
Definition NetlistDiagnostics.hpp:31