mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Split inline assembly into loose and strict flavours.
This commit is contained in:
committed by
Alex Beregszaszi
parent
2548228b36
commit
124190336b
@@ -52,15 +52,16 @@ void dev::julia::test::printErrors(ErrorList const& _errors, Scanner const& _sca
|
||||
|
||||
pair<shared_ptr<Block>, shared_ptr<assembly::AsmAnalysisInfo>> dev::julia::test::parse(string const& _source, bool _julia)
|
||||
{
|
||||
auto flavour = _julia ? assembly::AsmFlavour::IULIA : assembly::AsmFlavour::Strict;
|
||||
ErrorList errors;
|
||||
ErrorReporter errorReporter(errors);
|
||||
auto scanner = make_shared<Scanner>(CharStream(_source), "");
|
||||
auto parserResult = assembly::Parser(errorReporter, _julia).parse(scanner);
|
||||
auto parserResult = assembly::Parser(errorReporter, flavour).parse(scanner);
|
||||
if (parserResult)
|
||||
{
|
||||
BOOST_REQUIRE(errorReporter.errors().empty());
|
||||
auto analysisInfo = make_shared<assembly::AsmAnalysisInfo>();
|
||||
assembly::AsmAnalyzer analyzer(*analysisInfo, errorReporter, _julia);
|
||||
assembly::AsmAnalyzer analyzer(*analysisInfo, errorReporter, flavour);
|
||||
if (analyzer.analyze(*parserResult))
|
||||
{
|
||||
BOOST_REQUIRE(errorReporter.errors().empty());
|
||||
|
||||
@@ -52,11 +52,11 @@ bool parse(string const& _source, ErrorReporter& errorReporter)
|
||||
try
|
||||
{
|
||||
auto scanner = make_shared<Scanner>(CharStream(_source));
|
||||
auto parserResult = assembly::Parser(errorReporter, true).parse(scanner);
|
||||
auto parserResult = assembly::Parser(errorReporter, assembly::AsmFlavour::IULIA).parse(scanner);
|
||||
if (parserResult)
|
||||
{
|
||||
assembly::AsmAnalysisInfo analysisInfo;
|
||||
return (assembly::AsmAnalyzer(analysisInfo, errorReporter, true)).analyze(*parserResult);
|
||||
return (assembly::AsmAnalyzer(analysisInfo, errorReporter, assembly::AsmFlavour::IULIA)).analyze(*parserResult);
|
||||
}
|
||||
}
|
||||
catch (FatalError const&)
|
||||
|
||||
Reference in New Issue
Block a user