Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
MikePopoloski committed Jun 15, 2024
1 parent 0a65ef9 commit b0dbe09
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 18 deletions.
2 changes: 2 additions & 0 deletions include/slang/ast/ASTSerializer.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ class SLANG_EXPORT ASTSerializer {
/// should be included in the JSON output.
void setIncludeAddresses(bool set) { includeAddrs = set; }

/// Sets a flag that indicates whether source line and file
/// information should be included in the JSON output.
void setIncludeSourceInfo(bool set) { includeSourceInfo = set; }

/// Serializes a symbol to JSON.
Expand Down
31 changes: 15 additions & 16 deletions source/ast/ASTSerializer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -180,19 +180,16 @@ void ASTSerializer::visit(const T& elem, bool inMembersArray) {
std::is_base_of_v<AssertionExpr, T> || std::is_base_of_v<BinsSelectExpr, T> ||
std::is_base_of_v<Pattern, T>) {
writer.startObject();
if (elem.syntax != nullptr && includeSourceInfo) {
write("source_file_start",
compilation.getSourceManager()->getFileName(elem.syntax->sourceRange().start()));
write("source_file_end",
compilation.getSourceManager()->getFileName(elem.syntax->sourceRange().end()));
write("source_line_start", compilation.getSourceManager()->getLineNumber(
elem.syntax->sourceRange().start()));
write("source_line_end",
compilation.getSourceManager()->getLineNumber(elem.syntax->sourceRange().end()));
write("source_column_start", compilation.getSourceManager()->getColumnNumber(
elem.syntax->sourceRange().start()));
write("source_column_end", compilation.getSourceManager()->getColumnNumber(
elem.syntax->sourceRange().end()));
if (elem.syntax && includeSourceInfo) {
if (auto sm = compilation.getSourceManager()) {
auto sr = elem.syntax->sourceRange();
write("source_file_start", sm->getFileName(sr.start()));
write("source_file_end", sm->getFileName(sr.end()));
write("source_line_start", sm->getLineNumber(sr.start()));
write("source_line_end", sm->getLineNumber(sr.end()));
write("source_column_start", sm->getColumnNumber(sr.start()));
write("source_column_end", sm->getColumnNumber(sr.end()));
}
}
}
if constexpr (std::is_base_of_v<Expression, T>) {
Expand Down Expand Up @@ -267,9 +264,11 @@ void ASTSerializer::visit(const T& elem, bool inMembersArray) {
write("name", elem.name);
write("kind", toString(elem.kind));
if (includeSourceInfo) {
write("source_file", compilation.getSourceManager()->getFileName(elem.location));
write("source_line", compilation.getSourceManager()->getLineNumber(elem.location));
write("source_column", compilation.getSourceManager()->getColumnNumber(elem.location));
if (auto sm = compilation.getSourceManager()) {
write("source_file", sm->getFileName(elem.location));
write("source_line", sm->getLineNumber(elem.location));
write("source_column", sm->getColumnNumber(elem.location));
}
}

if (includeAddrs)
Expand Down
4 changes: 2 additions & 2 deletions tools/driver/slang_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ using namespace slang::ast;
using namespace slang::driver;

void printJson(Compilation& compilation, const std::string& fileName,
const std::vector<std::string>& scopes, bool includeSourceInfo = false) {
const std::vector<std::string>& scopes, bool includeSourceInfo) {
JsonWriter writer;
writer.setPrettyPrint(true);

Expand Down Expand Up @@ -168,7 +168,7 @@ int driverMain(int argc, TArgs argv) {
ok &= driver.reportCompilation(*compilation, quiet == true);
if (astJsonFile)
printJson(*compilation, *astJsonFile, astJsonScopes,
(includeSourceInfo == true));
includeSourceInfo == true);
}
}
}
Expand Down

0 comments on commit b0dbe09

Please sign in to comment.