aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/parsing
diff options
context:
space:
mode:
authorLeonardo <leo@ethereum.org>2018-11-13 23:06:10 +0800
committerGitHub <noreply@github.com>2018-11-13 23:06:10 +0800
commitc21c7e74fee74c6201f14eaa664784aae79a52a2 (patch)
tree938df473cd954801772feff8c026490cefb3b314 /libsolidity/parsing
parentc237013911aa5bb6102e1262e6aa62178c0f02e0 (diff)
parent9a4fd946c349712cab2c9f77f4dc08fb6e2ca68f (diff)
downloaddexon-solidity-c21c7e74fee74c6201f14eaa664784aae79a52a2.tar
dexon-solidity-c21c7e74fee74c6201f14eaa664784aae79a52a2.tar.gz
dexon-solidity-c21c7e74fee74c6201f14eaa664784aae79a52a2.tar.bz2
dexon-solidity-c21c7e74fee74c6201f14eaa664784aae79a52a2.tar.lz
dexon-solidity-c21c7e74fee74c6201f14eaa664784aae79a52a2.tar.xz
dexon-solidity-c21c7e74fee74c6201f14eaa664784aae79a52a2.tar.zst
dexon-solidity-c21c7e74fee74c6201f14eaa664784aae79a52a2.zip
Merge pull request #5398 from ethereum/smt_model_scanner
Add Scanner function that prints source based on SourceLocation
Diffstat (limited to 'libsolidity/parsing')
-rw-r--r--libsolidity/parsing/Scanner.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/libsolidity/parsing/Scanner.h b/libsolidity/parsing/Scanner.h
index 02e0553f..14eeb66e 100644
--- a/libsolidity/parsing/Scanner.h
+++ b/libsolidity/parsing/Scanner.h
@@ -162,6 +162,13 @@ public:
/// Do only use in error cases, they are quite expensive.
std::string lineAtPosition(int _position) const { return m_source.lineAtPosition(_position); }
std::tuple<int, int> translatePositionToLineColumn(int _position) const { return m_source.translatePositionToLineColumn(_position); }
+ std::string sourceAt(SourceLocation const& _location) const
+ {
+ solAssert(!_location.isEmpty(), "");
+ solAssert(m_sourceName && _location.sourceName, "");
+ solAssert(*m_sourceName == *_location.sourceName, "");
+ return m_source.source().substr(_location.start, _location.end - _location.start);
+ }
///@}
private: