Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frontends/parsers/parserDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ struct AutoStdioInputStream {

namespace P4 {

AbstractParserDriver::AbstractParserDriver() : sources(new Util::InputSources) {}
AbstractParserDriver::AbstractParserDriver() : sources(new Util::InputSources()) {}

AbstractParserDriver::~AbstractParserDriver() {}

Expand Down
16 changes: 14 additions & 2 deletions lib/source_file.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,24 @@ cstring SourcePosition::toString() const {
SourceInfo::SourceInfo(const InputSources *sources, SourcePosition start, SourcePosition end)
: sources(sources), start(start), end(end) {
BUG_CHECK(sources != nullptr, "Invalid InputSources in SourceInfo");
if (!start.isValid() || !end.isValid())
BUG("Invalid source position in SourceInfo %1%-%2%", start.toString(), end.toString());
if (!start.isValid() || !end.isValid()) {
BUG("Invalid source position in SourceInfo %1%-%2% for %3%", start.toString(),
end.toString(), sources->toDebugString());
}
if (start > end)
BUG("SourceInfo position start %1% after end %2%", start.toString(), end.toString());
}

SourceInfo::SourceInfo(const InputSources *sources, SourcePosition point)
: SourceInfo(sources, point, point) {}

SourceInfo::SourceInfo(cstring filename, int line, int column, cstring srcBrief) {
this->filename = filename;
this->line = line;
this->column = column;
this->srcBrief = srcBrief;
}

cstring SourceInfo::toString() const {
return absl::StrFormat("(%v)-(%v)", start.toString(), end.toString());
}
Expand Down
10 changes: 2 additions & 8 deletions lib/source_file.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,18 +135,12 @@ class SourceInfo final {
int line = -1;
int column = -1;
cstring srcBrief = ""_cs;
SourceInfo(cstring filename, int line, int column, cstring srcBrief) {
this->filename = filename;
this->line = line;
this->column = column;
this->srcBrief = srcBrief;
}
SourceInfo(cstring filename, int line, int column, cstring srcBrief);
/// Creates an "invalid" SourceInfo
SourceInfo() = default;

/// Creates a SourceInfo for a 'point' in the source, or invalid
SourceInfo(const InputSources *sources, SourcePosition point)
: sources(sources), start(point), end(point) {}
SourceInfo(const InputSources *sources, SourcePosition point);

SourceInfo(const InputSources *sources, SourcePosition start, SourcePosition end);

Expand Down
Loading