5#include "slang/analysis/AnalysisManager.h"
6#include "slang/ast/symbols/VariableSymbols.h"
7#include "slang/ast/types/NetType.h"
23 analysis::AnalysisManager &analysisManager;
25 auto record(ast::ValueSymbol
const &symbol, std::string kind) ->
void {
26 auto path = symbol.getHierarchicalPath();
31 .name = std::move(path),
32 .type = symbol.getType().toString(),
33 .width = symbol.getType().getBitWidth(),
34 .kind = std::move(kind),
35 .drivers = analysisManager.getDrivers(symbol).size(),
36 .location = symbol.location,
42 analysis::AnalysisManager &analysisManager)
46 return {
"Name",
"Type",
"Width",
"Kind",
"Drivers",
"Location"};
58 writer.writeProperty(
"name");
59 writer.writeValue(var.
name);
60 writer.writeProperty(
"type");
61 writer.writeValue(var.
type);
62 writer.writeProperty(
"width");
63 writer.writeValue(var.
width);
64 writer.writeProperty(
"kind");
65 writer.writeValue(var.
kind);
66 writer.writeProperty(
"drivers");
68 writer.writeProperty(
"location");
73 void handle(
const ast::VariableSymbol &symbol) { record(symbol,
"var"); }
75 void handle(
const ast::NetSymbol &symbol) {
76 record(symbol, std::string(symbol.netType.name));
auto tableHeader() const -> netlist::Utilities::Row
Definition ReportVariables.hpp:45
void handle(const ast::VariableSymbol &symbol)
Definition ReportVariables.hpp:73
void appendItemRows(netlist::Utilities::Table &table, VariableInfo const &var) const
Definition ReportVariables.hpp:49
void emitJsonItem(JsonWriter &writer, VariableInfo const &var) const
Definition ReportVariables.hpp:56
void handle(const ast::NetSymbol &symbol)
Definition ReportVariables.hpp:75
ReportVariables(ast::Compilation &compilation, analysis::AnalysisManager &analysisManager)
Definition ReportVariables.hpp:41
ast::Compilation & compilation
Definition ReportVisitorBase.hpp:35
ReportVisitorBase(ast::Compilation &compilation)
Definition ReportVisitorBase.hpp:60
auto locationStr(SourceLocation loc) const -> std::string
Definition ReportVisitorBase.hpp:40
auto nameMatches(std::string_view name) const -> bool
Definition ReportVisitorBase.hpp:46
std::vector< VariableInfo > items
Definition ReportVisitorBase.hpp:36
Definition Utilities.hpp:16
Definition ReportDrivers.hpp:12
std::vector< Row > Table
Definition Utilities.hpp:33
std::vector< std::string > Row
Definition Utilities.hpp:32
Definition ReportVariables.hpp:11
std::string type
Definition ReportVariables.hpp:13
std::string name
Definition ReportVariables.hpp:12
std::string kind
Definition ReportVariables.hpp:15
uint64_t width
Definition ReportVariables.hpp:14
uint64_t drivers
Definition ReportVariables.hpp:16
SourceLocation location
Definition ReportVariables.hpp:17