mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Remove scanner from compiler stack.
This commit is contained in:
committed by
Christian Parpart
parent
af18b8afc2
commit
ffc5cfd9a5
@@ -166,7 +166,8 @@ Literal AsmJsonImporter::createLiteral(Json::Value const& _node)
|
||||
|
||||
if (kind == "number")
|
||||
{
|
||||
langutil::Scanner scanner{langutil::CharStream(lit.value.str(), "")};
|
||||
langutil::CharStream charStream(lit.value.str(), "");
|
||||
langutil::Scanner scanner{charStream};
|
||||
lit.kind = LiteralKind::Number;
|
||||
yulAssert(
|
||||
scanner.currentToken() == Token::Number,
|
||||
@@ -175,7 +176,8 @@ Literal AsmJsonImporter::createLiteral(Json::Value const& _node)
|
||||
}
|
||||
else if (kind == "bool")
|
||||
{
|
||||
langutil::Scanner scanner{langutil::CharStream(lit.value.str(), "")};
|
||||
langutil::CharStream charStream(lit.value.str(), "");
|
||||
langutil::Scanner scanner{charStream};
|
||||
lit.kind = LiteralKind::Boolean;
|
||||
yulAssert(
|
||||
scanner.currentToken() == Token::TrueLiteral ||
|
||||
|
||||
@@ -90,6 +90,7 @@ public:
|
||||
/// @param _reuseScanner if true, do check for end of input after the `}`.
|
||||
/// @returns an empty shared pointer on error.
|
||||
std::unique_ptr<Block> parse(std::shared_ptr<langutil::Scanner> const& _scanner, bool _reuseScanner);
|
||||
// TODO: pass CharStream here instead ^^^^^^
|
||||
|
||||
protected:
|
||||
langutil::SourceLocation currentLocation() const override
|
||||
|
||||
@@ -130,7 +130,8 @@ optional<ObjectParser::SourceNameMap> ObjectParser::tryParseSourceNameMapping()
|
||||
|
||||
solAssert(sm.size() == 2, "");
|
||||
auto text = m_scanner->currentCommentLiteral().substr(static_cast<size_t>(sm.position() + sm.length()));
|
||||
Scanner scanner(make_shared<CharStream>(text, ""));
|
||||
CharStream charStream(text, "");
|
||||
Scanner scanner(charStream);
|
||||
if (scanner.currentToken() == Token::EOS)
|
||||
return SourceNameMap{};
|
||||
SourceNameMap sourceNames;
|
||||
|
||||
@@ -125,7 +125,7 @@ void EVMToEwasmTranslator::parsePolyfill()
|
||||
{
|
||||
ErrorList errors;
|
||||
ErrorReporter errorReporter(errors);
|
||||
shared_ptr<Scanner> scanner{make_shared<Scanner>(CharStream(
|
||||
CharStream charStream(
|
||||
"{" +
|
||||
string(solidity::yul::wasm::polyfill::Arithmetic) +
|
||||
string(solidity::yul::wasm::polyfill::Bitwise) +
|
||||
@@ -135,15 +135,18 @@ void EVMToEwasmTranslator::parsePolyfill()
|
||||
string(solidity::yul::wasm::polyfill::Keccak) +
|
||||
string(solidity::yul::wasm::polyfill::Logical) +
|
||||
string(solidity::yul::wasm::polyfill::Memory) +
|
||||
"}", ""))};
|
||||
m_polyfill = Parser(errorReporter, WasmDialect::instance()).parse(scanner, false);
|
||||
"}", "");
|
||||
m_polyfill = Parser(errorReporter, WasmDialect::instance()).parse(
|
||||
make_shared<Scanner>(charStream),
|
||||
false
|
||||
);
|
||||
if (!errors.empty())
|
||||
{
|
||||
string message;
|
||||
for (auto const& err: errors)
|
||||
message += langutil::SourceReferenceFormatter::formatErrorInformation(
|
||||
*err,
|
||||
SingletonCharStreamProvider(*scanner->charStream())
|
||||
SingletonCharStreamProvider(charStream)
|
||||
);
|
||||
yulAssert(false, message);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user