Browse Source

added interface function for SourceLocation/ position convertation to compilerstack

cl-refactor
Liana Husikyan 10 years ago
parent
commit
f7338eb8cf
  1. 9
      libsolidity/CompilerStack.cpp
  2. 4
      libsolidity/CompilerStack.h

9
libsolidity/CompilerStack.cpp

@ -257,6 +257,15 @@ bytes CompilerStack::staticCompile(std::string const& _sourceCode, bool _optimiz
return stack.compile(_sourceCode, _optimize);
}
pair<int, int> CompilerStack::positionFromSourceLocation(SourceLocation const& _sourceLocation) const
{
int initLine;
int initColumn;
tie(initLine, initColumn) = getScanner(*_sourceLocation.sourceName).translatePositionToLineColumn(_sourceLocation.start);
return make_pair(++initLine, ++initColumn);
}
void CompilerStack::reset(bool _keepSources)
{
m_parseSuccessful = false;

4
libsolidity/CompilerStack.h

@ -31,6 +31,7 @@
#include <json/json.h>
#include <libdevcore/Common.h>
#include <libdevcore/FixedHash.h>
#include <libevmasm/SourceLocation.h>
namespace dev
{
@ -131,6 +132,9 @@ public:
/// scanning the source code - this is useful for printing exception information.
static bytes staticCompile(std::string const& _sourceCode, bool _optimize = false);
/// helper function for printing logs. Do only use in error cases, it's quite expensive.
std::pair<int, int> positionFromSourceLocation(SourceLocation const& _sourceLocation) const;
private:
/**
* Information pertaining to one source unit, filled gradually during parsing and compilation.

Loading…
Cancel
Save