aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Parpart <christian@ethereum.org>2018-11-29 08:58:15 +0800
committerChristian Parpart <christian@ethereum.org>2018-12-01 00:07:17 +0800
commit435f7b3b72157e884344adbc7b62033bd08bb51c (patch)
treede4831bb56b16945894b9efc0bea95576b43cea9
parentc48a5264be4221873fe02cac57f6a41a32010fea (diff)
downloaddexon-solidity-435f7b3b72157e884344adbc7b62033bd08bb51c.tar
dexon-solidity-435f7b3b72157e884344adbc7b62033bd08bb51c.tar.gz
dexon-solidity-435f7b3b72157e884344adbc7b62033bd08bb51c.tar.bz2
dexon-solidity-435f7b3b72157e884344adbc7b62033bd08bb51c.tar.lz
dexon-solidity-435f7b3b72157e884344adbc7b62033bd08bb51c.tar.xz
dexon-solidity-435f7b3b72157e884344adbc7b62033bd08bb51c.tar.zst
dexon-solidity-435f7b3b72157e884344adbc7b62033bd08bb51c.zip
liblangutil: Scanner: remove superfluous sourceName field (it's in CharStream already)
Also, ParserBase::sourceName() was dead code. Eliminating it should increase test coverage (how sneaky) :-)
-rw-r--r--liblangutil/ParserBase.cpp5
-rw-r--r--liblangutil/ParserBase.h1
-rw-r--r--liblangutil/Scanner.cpp3
-rw-r--r--liblangutil/Scanner.h9
-rw-r--r--libsolidity/codegen/CompilerContext.cpp2
-rw-r--r--libsolidity/interface/AssemblyStack.cpp2
-rw-r--r--libsolidity/interface/CompilerStack.cpp4
-rw-r--r--test/libsolidity/SolidityScanner.cpp28
-rw-r--r--test/libyul/Common.cpp2
-rw-r--r--test/libyul/YulOptimizerTest.cpp2
-rw-r--r--test/tools/yulopti.cpp2
11 files changed, 25 insertions, 35 deletions
diff --git a/liblangutil/ParserBase.cpp b/liblangutil/ParserBase.cpp
index c103475a..391af291 100644
--- a/liblangutil/ParserBase.cpp
+++ b/liblangutil/ParserBase.cpp
@@ -27,11 +27,6 @@
using namespace std;
using namespace langutil;
-std::shared_ptr<string const> const& ParserBase::sourceName() const
-{
- return m_scanner->sourceName();
-}
-
int ParserBase::position() const
{
return m_scanner->currentLocation().start;
diff --git a/liblangutil/ParserBase.h b/liblangutil/ParserBase.h
index f6315351..855201e2 100644
--- a/liblangutil/ParserBase.h
+++ b/liblangutil/ParserBase.h
@@ -38,7 +38,6 @@ class ParserBase
public:
explicit ParserBase(ErrorReporter& errorReporter): m_errorReporter(errorReporter) {}
- std::shared_ptr<std::string const> const& sourceName() const;
std::shared_ptr<CharStream> source() const { return m_scanner->charStream(); }
protected:
diff --git a/liblangutil/Scanner.cpp b/liblangutil/Scanner.cpp
index 5c0f356e..ac298bd5 100644
--- a/liblangutil/Scanner.cpp
+++ b/liblangutil/Scanner.cpp
@@ -167,10 +167,9 @@ private:
}; // end of LiteralScope class
-void Scanner::reset(CharStream _source, string _sourceName)
+void Scanner::reset(CharStream _source)
{
m_source = make_shared<CharStream>(std::move(_source));
- m_sourceName = make_shared<string const>(std::move(_sourceName));
reset();
}
diff --git a/liblangutil/Scanner.h b/liblangutil/Scanner.h
index dc37745f..a1185369 100644
--- a/liblangutil/Scanner.h
+++ b/liblangutil/Scanner.h
@@ -91,14 +91,14 @@ class Scanner
friend class LiteralScope;
public:
explicit Scanner(std::shared_ptr<CharStream> _source) { reset(std::move(_source)); }
- explicit Scanner(CharStream _source = CharStream(), std::string _sourceName = "") { reset(std::move(_source), std::move(_sourceName)); }
+ explicit Scanner(CharStream _source = CharStream()) { reset(std::move(_source)); }
std::string source() const { return m_source->source(); }
std::shared_ptr<CharStream> charStream() noexcept { return m_source; }
- /// Resets the scanner as if newly constructed with _source and _sourceName as input.
- void reset(CharStream _source, std::string _sourceName);
+ /// Resets the scanner as if newly constructed with _source as input.
+ void reset(CharStream _source);
void reset(std::shared_ptr<CharStream> _source);
/// Resets scanner to the start of input.
void reset();
@@ -150,8 +150,6 @@ public:
std::string const& peekLiteral() const { return m_nextToken.literal; }
///@}
- std::shared_ptr<std::string const> const& sourceName() const { return m_sourceName; }
-
///@{
///@name Error printing helper functions
/// Functions that help pretty-printing parse errors
@@ -242,7 +240,6 @@ private:
TokenDesc m_nextToken; // desc for next token (one token look-ahead)
std::shared_ptr<CharStream> m_source;
- std::shared_ptr<std::string const> m_sourceName;
/// one character look-ahead, equals 0 at end of input
char m_char;
diff --git a/libsolidity/codegen/CompilerContext.cpp b/libsolidity/codegen/CompilerContext.cpp
index 16bc4225..5a3a233c 100644
--- a/libsolidity/codegen/CompilerContext.cpp
+++ b/libsolidity/codegen/CompilerContext.cpp
@@ -360,7 +360,7 @@ void CompilerContext::appendInlineAssembly(
ErrorList errors;
ErrorReporter errorReporter(errors);
- auto scanner = make_shared<langutil::Scanner>(langutil::CharStream(_assembly, "--CODEGEN--"), "--CODEGEN--");
+ auto scanner = make_shared<langutil::Scanner>(langutil::CharStream(_assembly, "--CODEGEN--"));
auto parserResult = yul::Parser(errorReporter, yul::AsmFlavour::Strict).parse(scanner, false);
#ifdef SOL_OUTPUT_ASM
cout << yul::AsmPrinter()(*parserResult) << endl;
diff --git a/libsolidity/interface/AssemblyStack.cpp b/libsolidity/interface/AssemblyStack.cpp
index 5268c5aa..66ba42ee 100644
--- a/libsolidity/interface/AssemblyStack.cpp
+++ b/libsolidity/interface/AssemblyStack.cpp
@@ -69,7 +69,7 @@ bool AssemblyStack::parseAndAnalyze(std::string const& _sourceName, std::string
{
m_errors.clear();
m_analysisSuccessful = false;
- m_scanner = make_shared<Scanner>(CharStream(_source, _sourceName), _sourceName);
+ m_scanner = make_shared<Scanner>(CharStream(_source, _sourceName));
m_parserResult = yul::ObjectParser(m_errorReporter, languageToAsmFlavour(m_language)).parse(m_scanner, false);
if (!m_errorReporter.errors().empty())
return false;
diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp
index 58229379..534073f1 100644
--- a/libsolidity/interface/CompilerStack.cpp
+++ b/libsolidity/interface/CompilerStack.cpp
@@ -125,7 +125,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), _name);
+ m_sources[_name].scanner = make_shared<Scanner>(CharStream(_content, _name));
m_sources[_name].isLibrary = _isLibrary;
m_stackState = SourcesSet;
return existed;
@@ -160,7 +160,7 @@ bool CompilerStack::parse()
{
string const& newPath = newSource.first;
string const& newContents = newSource.second;
- m_sources[newPath].scanner = make_shared<Scanner>(CharStream(newContents, newPath), newPath);
+ m_sources[newPath].scanner = make_shared<Scanner>(CharStream(newContents, newPath));
sourcesToParse.push_back(newPath);
}
}
diff --git a/test/libsolidity/SolidityScanner.cpp b/test/libsolidity/SolidityScanner.cpp
index 95d56568..5ce4eda2 100644
--- a/test/libsolidity/SolidityScanner.cpp
+++ b/test/libsolidity/SolidityScanner.cpp
@@ -107,10 +107,10 @@ BOOST_AUTO_TEST_CASE(hex_numbers)
BOOST_CHECK_EQUAL(scanner.currentLiteral(), "0x765432536763762734623472346");
BOOST_CHECK_EQUAL(scanner.next(), Token::Semicolon);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream("0x1234", ""), "");
+ scanner.reset(CharStream("0x1234", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.currentLiteral(), "0x1234");
- scanner.reset(CharStream("0X1234", ""), "");
+ scanner.reset(CharStream("0X1234", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Illegal);
}
@@ -118,17 +118,17 @@ BOOST_AUTO_TEST_CASE(octal_numbers)
{
Scanner scanner(CharStream("07", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Illegal);
- scanner.reset(CharStream("007", ""), "");
+ scanner.reset(CharStream("007", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Illegal);
- scanner.reset(CharStream("-07", ""), "");
+ scanner.reset(CharStream("-07", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Sub);
BOOST_CHECK_EQUAL(scanner.next(), Token::Illegal);
- scanner.reset(CharStream("-.07", ""), "");
+ scanner.reset(CharStream("-.07", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Sub);
BOOST_CHECK_EQUAL(scanner.next(), Token::Number);
- scanner.reset(CharStream("0", ""), "");
+ scanner.reset(CharStream("0", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
- scanner.reset(CharStream("0.1", ""), "");
+ scanner.reset(CharStream("0.1", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
}
@@ -149,16 +149,16 @@ BOOST_AUTO_TEST_CASE(trailing_dot)
Scanner scanner(CharStream("2.5", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream("2.5e10", ""), "");
+ scanner.reset(CharStream("2.5e10", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream(".5", ""), "");
+ scanner.reset(CharStream(".5", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream(".5e10", ""), "");
+ scanner.reset(CharStream(".5e10", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream("2.", ""), "");
+ scanner.reset(CharStream("2.", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::Period);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
@@ -180,7 +180,7 @@ BOOST_AUTO_TEST_CASE(leading_underscore_decimal_after_dot_illegal)
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream("1._", ""), "");
+ scanner.reset(CharStream("1._", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
}
@@ -225,11 +225,11 @@ BOOST_AUTO_TEST_CASE(number_literals_with_trailing_underscore_at_eos)
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream("123_", ""), "");
+ scanner.reset(CharStream("123_", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
- scanner.reset(CharStream("12.34_", ""), "");
+ scanner.reset(CharStream("12.34_", ""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Number);
BOOST_CHECK_EQUAL(scanner.next(), Token::EOS);
}
diff --git a/test/libyul/Common.cpp b/test/libyul/Common.cpp
index 36065db7..a247a169 100644
--- a/test/libyul/Common.cpp
+++ b/test/libyul/Common.cpp
@@ -57,7 +57,7 @@ pair<shared_ptr<Block>, shared_ptr<yul::AsmAnalysisInfo>> yul::test::parse(strin
auto flavour = _yul ? yul::AsmFlavour::Yul : yul::AsmFlavour::Strict;
ErrorList errors;
ErrorReporter errorReporter(errors);
- auto scanner = make_shared<Scanner>(CharStream(_source, ""), "");
+ auto scanner = make_shared<Scanner>(CharStream(_source, ""));
auto parserResult = yul::Parser(errorReporter, flavour).parse(scanner, false);
if (parserResult)
{
diff --git a/test/libyul/YulOptimizerTest.cpp b/test/libyul/YulOptimizerTest.cpp
index 8f282aac..15d70faa 100644
--- a/test/libyul/YulOptimizerTest.cpp
+++ b/test/libyul/YulOptimizerTest.cpp
@@ -259,7 +259,7 @@ bool YulOptimizerTest::parse(ostream& _stream, string const& _linePrefix, bool c
yul::AsmFlavour flavour = m_yul ? yul::AsmFlavour::Yul : yul::AsmFlavour::Strict;
ErrorList errors;
ErrorReporter errorReporter(errors);
- shared_ptr<Scanner> scanner = make_shared<Scanner>(CharStream(m_source, ""), "");
+ shared_ptr<Scanner> scanner = make_shared<Scanner>(CharStream(m_source, ""));
m_ast = yul::Parser(errorReporter, flavour).parse(scanner, false);
if (!m_ast || !errorReporter.errors().empty())
{
diff --git a/test/tools/yulopti.cpp b/test/tools/yulopti.cpp
index 8ecafb29..5273bbb9 100644
--- a/test/tools/yulopti.cpp
+++ b/test/tools/yulopti.cpp
@@ -81,7 +81,7 @@ public:
bool parse(string const& _input)
{
ErrorReporter errorReporter(m_errors);
- shared_ptr<Scanner> scanner = make_shared<Scanner>(CharStream(_input, ""), "");
+ shared_ptr<Scanner> scanner = make_shared<Scanner>(CharStream(_input, ""));
m_ast = yul::Parser(errorReporter, yul::AsmFlavour::Strict).parse(scanner, false);
if (!m_ast || !errorReporter.errors().empty())
{