mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #5537 from ethereum/cp-SourceLocation-related-refactoring
[1/3] SourceLocation related refactoring.
This commit is contained in:
@@ -126,7 +126,7 @@ bool CompilerStack::addSource(string const& _name, string const& _content, bool
|
||||
{
|
||||
bool existed = m_sources.count(_name) != 0;
|
||||
reset(true);
|
||||
m_sources[_name].scanner = make_shared<Scanner>(CharStream(_content), _name);
|
||||
m_sources[_name].scanner = make_shared<Scanner>(CharStream(_content, _name));
|
||||
m_sources[_name].isLibrary = _isLibrary;
|
||||
m_stackState = SourcesSet;
|
||||
return existed;
|
||||
@@ -161,7 +161,7 @@ bool CompilerStack::parse()
|
||||
{
|
||||
string const& newPath = newSource.first;
|
||||
string const& newContents = newSource.second;
|
||||
m_sources[newPath].scanner = make_shared<Scanner>(CharStream(newContents), newPath);
|
||||
m_sources[newPath].scanner = make_shared<Scanner>(CharStream(newContents, newPath));
|
||||
sourcesToParse.push_back(newPath);
|
||||
}
|
||||
}
|
||||
@@ -612,8 +612,8 @@ tuple<int, int, int, int> CompilerStack::positionFromSourceLocation(SourceLocati
|
||||
int startColumn;
|
||||
int endLine;
|
||||
int endColumn;
|
||||
tie(startLine, startColumn) = scanner(*_sourceLocation.sourceName).translatePositionToLineColumn(_sourceLocation.start);
|
||||
tie(endLine, endColumn) = scanner(*_sourceLocation.sourceName).translatePositionToLineColumn(_sourceLocation.end);
|
||||
tie(startLine, startColumn) = scanner(_sourceLocation.source->name()).translatePositionToLineColumn(_sourceLocation.start);
|
||||
tie(endLine, endColumn) = scanner(_sourceLocation.source->name()).translatePositionToLineColumn(_sourceLocation.end);
|
||||
|
||||
return make_tuple(++startLine, ++startColumn, ++endLine, ++endColumn);
|
||||
}
|
||||
@@ -936,8 +936,8 @@ string CompilerStack::computeSourceMapping(eth::AssemblyItems const& _items) con
|
||||
SourceLocation const& location = item.location();
|
||||
int length = location.start != -1 && location.end != -1 ? location.end - location.start : -1;
|
||||
int sourceIndex =
|
||||
location.sourceName && sourceIndicesMap.count(*location.sourceName) ?
|
||||
sourceIndicesMap.at(*location.sourceName) :
|
||||
location.source && sourceIndicesMap.count(location.source->name()) ?
|
||||
sourceIndicesMap.at(location.source->name()) :
|
||||
-1;
|
||||
char jump = '-';
|
||||
if (item.getJumpType() == eth::AssemblyItem::JumpType::IntoFunction)
|
||||
|
||||
Reference in New Issue
Block a user