Add "origin" source locations to Yul AST

This commit is contained in:
Kamil Śliwak 2021-09-22 13:52:00 +02:00
parent a7e5f6b52b
commit fff703e4fe
32 changed files with 1037 additions and 32 deletions

View File

@ -28,13 +28,14 @@
using namespace std; using namespace std;
using namespace solidity::langutil; using namespace solidity::langutil;
using namespace solidity::yul;
namespace solidity::yul namespace solidity::yul
{ {
Json::Value AsmJsonConverter::operator()(Block const& _node) const Json::Value AsmJsonConverter::operator()(Block const& _node) const
{ {
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulBlock"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulBlock");
ret["statements"] = vectorOfVariantsToJson(_node.statements); ret["statements"] = vectorOfVariantsToJson(_node.statements);
return ret; return ret;
} }
@ -42,7 +43,7 @@ Json::Value AsmJsonConverter::operator()(Block const& _node) const
Json::Value AsmJsonConverter::operator()(TypedName const& _node) const Json::Value AsmJsonConverter::operator()(TypedName const& _node) const
{ {
yulAssert(!_node.name.empty(), "Invalid variable name."); yulAssert(!_node.name.empty(), "Invalid variable name.");
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulTypedName"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulTypedName");
ret["name"] = _node.name.str(); ret["name"] = _node.name.str();
ret["type"] = _node.type.str(); ret["type"] = _node.type.str();
return ret; return ret;
@ -50,7 +51,7 @@ Json::Value AsmJsonConverter::operator()(TypedName const& _node) const
Json::Value AsmJsonConverter::operator()(Literal const& _node) const Json::Value AsmJsonConverter::operator()(Literal const& _node) const
{ {
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulLiteral"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulLiteral");
switch (_node.kind) switch (_node.kind)
{ {
case LiteralKind::Number: case LiteralKind::Number:
@ -77,7 +78,7 @@ Json::Value AsmJsonConverter::operator()(Literal const& _node) const
Json::Value AsmJsonConverter::operator()(Identifier const& _node) const Json::Value AsmJsonConverter::operator()(Identifier const& _node) const
{ {
yulAssert(!_node.name.empty(), "Invalid identifier"); yulAssert(!_node.name.empty(), "Invalid identifier");
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulIdentifier"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulIdentifier");
ret["name"] = _node.name.str(); ret["name"] = _node.name.str();
return ret; return ret;
} }
@ -85,7 +86,7 @@ Json::Value AsmJsonConverter::operator()(Identifier const& _node) const
Json::Value AsmJsonConverter::operator()(Assignment const& _node) const Json::Value AsmJsonConverter::operator()(Assignment const& _node) const
{ {
yulAssert(_node.variableNames.size() >= 1, "Invalid assignment syntax"); yulAssert(_node.variableNames.size() >= 1, "Invalid assignment syntax");
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulAssignment"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulAssignment");
for (auto const& var: _node.variableNames) for (auto const& var: _node.variableNames)
ret["variableNames"].append((*this)(var)); ret["variableNames"].append((*this)(var));
ret["value"] = _node.value ? std::visit(*this, *_node.value) : Json::nullValue; ret["value"] = _node.value ? std::visit(*this, *_node.value) : Json::nullValue;
@ -94,7 +95,7 @@ Json::Value AsmJsonConverter::operator()(Assignment const& _node) const
Json::Value AsmJsonConverter::operator()(FunctionCall const& _node) const Json::Value AsmJsonConverter::operator()(FunctionCall const& _node) const
{ {
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulFunctionCall"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulFunctionCall");
ret["functionName"] = (*this)(_node.functionName); ret["functionName"] = (*this)(_node.functionName);
ret["arguments"] = vectorOfVariantsToJson(_node.arguments); ret["arguments"] = vectorOfVariantsToJson(_node.arguments);
return ret; return ret;
@ -102,14 +103,14 @@ Json::Value AsmJsonConverter::operator()(FunctionCall const& _node) const
Json::Value AsmJsonConverter::operator()(ExpressionStatement const& _node) const Json::Value AsmJsonConverter::operator()(ExpressionStatement const& _node) const
{ {
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulExpressionStatement"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulExpressionStatement");
ret["expression"] = std::visit(*this, _node.expression); ret["expression"] = std::visit(*this, _node.expression);
return ret; return ret;
} }
Json::Value AsmJsonConverter::operator()(VariableDeclaration const& _node) const Json::Value AsmJsonConverter::operator()(VariableDeclaration const& _node) const
{ {
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulVariableDeclaration"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulVariableDeclaration");
for (auto const& var: _node.variables) for (auto const& var: _node.variables)
ret["variables"].append((*this)(var)); ret["variables"].append((*this)(var));
@ -121,7 +122,7 @@ Json::Value AsmJsonConverter::operator()(VariableDeclaration const& _node) const
Json::Value AsmJsonConverter::operator()(FunctionDefinition const& _node) const Json::Value AsmJsonConverter::operator()(FunctionDefinition const& _node) const
{ {
yulAssert(!_node.name.empty(), "Invalid function name."); yulAssert(!_node.name.empty(), "Invalid function name.");
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulFunctionDefinition"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulFunctionDefinition");
ret["name"] = _node.name.str(); ret["name"] = _node.name.str();
for (auto const& var: _node.parameters) for (auto const& var: _node.parameters)
ret["parameters"].append((*this)(var)); ret["parameters"].append((*this)(var));
@ -134,7 +135,7 @@ Json::Value AsmJsonConverter::operator()(FunctionDefinition const& _node) const
Json::Value AsmJsonConverter::operator()(If const& _node) const Json::Value AsmJsonConverter::operator()(If const& _node) const
{ {
yulAssert(_node.condition, "Invalid if condition."); yulAssert(_node.condition, "Invalid if condition.");
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulIf"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulIf");
ret["condition"] = std::visit(*this, *_node.condition); ret["condition"] = std::visit(*this, *_node.condition);
ret["body"] = (*this)(_node.body); ret["body"] = (*this)(_node.body);
return ret; return ret;
@ -143,7 +144,7 @@ Json::Value AsmJsonConverter::operator()(If const& _node) const
Json::Value AsmJsonConverter::operator()(Switch const& _node) const Json::Value AsmJsonConverter::operator()(Switch const& _node) const
{ {
yulAssert(_node.expression, "Invalid expression pointer."); yulAssert(_node.expression, "Invalid expression pointer.");
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulSwitch"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulSwitch");
ret["expression"] = std::visit(*this, *_node.expression); ret["expression"] = std::visit(*this, *_node.expression);
for (auto const& var: _node.cases) for (auto const& var: _node.cases)
ret["cases"].append((*this)(var)); ret["cases"].append((*this)(var));
@ -152,7 +153,7 @@ Json::Value AsmJsonConverter::operator()(Switch const& _node) const
Json::Value AsmJsonConverter::operator()(Case const& _node) const Json::Value AsmJsonConverter::operator()(Case const& _node) const
{ {
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulCase"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulCase");
ret["value"] = _node.value ? (*this)(*_node.value) : "default"; ret["value"] = _node.value ? (*this)(*_node.value) : "default";
ret["body"] = (*this)(_node.body); ret["body"] = (*this)(_node.body);
return ret; return ret;
@ -161,7 +162,7 @@ Json::Value AsmJsonConverter::operator()(Case const& _node) const
Json::Value AsmJsonConverter::operator()(ForLoop const& _node) const Json::Value AsmJsonConverter::operator()(ForLoop const& _node) const
{ {
yulAssert(_node.condition, "Invalid for loop condition."); yulAssert(_node.condition, "Invalid for loop condition.");
Json::Value ret = createAstNode(nativeLocationOf(_node), "YulForLoop"); Json::Value ret = createAstNode(debugDataOf(_node).get(), "YulForLoop");
ret["pre"] = (*this)(_node.pre); ret["pre"] = (*this)(_node.pre);
ret["condition"] = std::visit(*this, *_node.condition); ret["condition"] = std::visit(*this, *_node.condition);
ret["post"] = (*this)(_node.post); ret["post"] = (*this)(_node.post);
@ -171,20 +172,30 @@ Json::Value AsmJsonConverter::operator()(ForLoop const& _node) const
Json::Value AsmJsonConverter::operator()(Break const& _node) const Json::Value AsmJsonConverter::operator()(Break const& _node) const
{ {
return createAstNode(nativeLocationOf(_node), "YulBreak"); return createAstNode(debugDataOf(_node).get(), "YulBreak");
} }
Json::Value AsmJsonConverter::operator()(Continue const& _node) const Json::Value AsmJsonConverter::operator()(Continue const& _node) const
{ {
return createAstNode(nativeLocationOf(_node), "YulContinue"); return createAstNode(debugDataOf(_node).get(), "YulContinue");
} }
Json::Value AsmJsonConverter::operator()(Leave const& _node) const Json::Value AsmJsonConverter::operator()(Leave const& _node) const
{ {
return createAstNode(nativeLocationOf(_node), "YulLeave"); return createAstNode(debugDataOf(_node).get(), "YulLeave");
} }
string AsmJsonConverter::formatLocation(SourceLocation const& _location, optional<size_t> const& _sourceIndex) string AsmJsonConverter::formatLocationWithFileName(SourceLocation const& _location)
{
return
to_string(_location.start) +
":" +
to_string(_location.length()) +
":" +
(_location.sourceName ? *_location.sourceName : "");
}
string AsmJsonConverter::formatLocationWithFileIndex(SourceLocation const& _location, optional<size_t> const& _sourceIndex)
{ {
return return
to_string(_location.start) + to_string(_location.start) +
@ -194,12 +205,21 @@ string AsmJsonConverter::formatLocation(SourceLocation const& _location, optiona
(_sourceIndex.has_value() ? to_string(_sourceIndex.value()) : "-1"); (_sourceIndex.has_value() ? to_string(_sourceIndex.value()) : "-1");
} }
Json::Value AsmJsonConverter::createAstNode(SourceLocation const& _location, string _nodeType) const Json::Value AsmJsonConverter::createAstNode(DebugData const* _debugData, string _nodeType) const
{ {
yulAssert(_debugData, "");
Json::Value ret{Json::objectValue}; Json::Value ret{Json::objectValue};
ret["nodeType"] = std::move(_nodeType); ret["nodeType"] = std::move(_nodeType);
ret["src"] = formatLocation(_location, m_sourceIndex); ret["src"] = formatLocationWithFileIndex(_debugData->nativeLocation, m_sourceIndex);
if (_debugData->originLocation.isValid())
{
if (_debugData->nativeLocation.sourceName == _debugData->originLocation.sourceName)
ret["origin"] = formatLocationWithFileIndex(_debugData->originLocation, m_sourceIndex);
else
ret["origin"] = formatLocationWithFileName(_debugData->originLocation);
}
return ret; return ret;
} }

View File

@ -62,9 +62,10 @@ public:
Json::Value operator()(Label const& _node) const; Json::Value operator()(Label const& _node) const;
private: private:
static std::string formatLocation(langutil::SourceLocation const& _location, std::optional<size_t> const& m_sourceIndex); static std::string formatLocationWithFileName(langutil::SourceLocation const& _location);
static std::string formatLocationWithFileIndex(langutil::SourceLocation const& _location, std::optional<size_t> const& m_sourceIndex);
Json::Value createAstNode(langutil::SourceLocation const& _location, std::string _nodeType) const; Json::Value createAstNode(yul::DebugData const* _debugData, std::string _nodeType) const;
template <class T> template <class T>
Json::Value vectorOfVariantsToJson(std::vector<T> const& vec) const; Json::Value vectorOfVariantsToJson(std::vector<T> const& vec) const;

View File

@ -42,27 +42,27 @@ namespace solidity::yul
using SourceLocation = langutil::SourceLocation; using SourceLocation = langutil::SourceLocation;
SourceLocation const AsmJsonImporter::createSourceLocation(Json::Value const& _node) shared_ptr<DebugData const> AsmJsonImporter::createDebugData(Json::Value const& _node) const
{ {
yulAssert(member(_node, "src").isString(), "'src' must be a string"); yulAssert(member(_node, "src").isString(), "'src' must be a string");
yulAssert(member(_node, "origin").isString(), "'origin' must be a string");
return solidity::langutil::parseSourceLocation(_node["src"].asString(), m_sourceNames); SourceLocation nativeLocation = solidity::langutil::parseSourceLocation(_node["src"].asString(), m_sourceNames);
SourceLocation originLocation = solidity::langutil::parseSourceLocation(_node["origin"].asString(), m_sourceNames);
yulAssert(nativeLocation.hasText(), "Invalid source location in Asm AST");
return DebugData::create(nativeLocation, originLocation);
} }
template <class T> template <class T>
T AsmJsonImporter::createAsmNode(Json::Value const& _node) T AsmJsonImporter::createAsmNode(Json::Value const& _node)
{ {
T r; T r;
SourceLocation nativeLocation = createSourceLocation(_node); r.debugData = createDebugData(_node);
yulAssert(nativeLocation.hasText(), "Invalid source location in Asm AST");
// TODO: We should add originLocation to the AST.
// While it's not included, we'll use nativeLocation for it because we only support importing
// inline assembly as a part of a Solidity AST and there these locations are always the same.
r.debugData = DebugData::create(nativeLocation, nativeLocation);
return r; return r;
} }
Json::Value AsmJsonImporter::member(Json::Value const& _node, string const& _name) Json::Value AsmJsonImporter::member(Json::Value const& _node, string const& _name) const
{ {
if (!_node.isMember(_name)) if (!_node.isMember(_name))
return Json::nullValue; return Json::nullValue;

View File

@ -44,12 +44,13 @@ public:
yul::Block createBlock(Json::Value const& _node); yul::Block createBlock(Json::Value const& _node);
private: private:
langutil::SourceLocation const createSourceLocation(Json::Value const& _node); std::shared_ptr<yul::DebugData const> createDebugData(Json::Value const& _node) const;
template <class T> template <class T>
T createAsmNode(Json::Value const& _node); T createAsmNode(Json::Value const& _node);
/// helper function to access member functions of the JSON /// helper function to access member functions of the JSON
/// and throw an error if it does not exist /// and throw an error if it does not exist
Json::Value member(Json::Value const& _node, std::string const& _name); Json::Value member(Json::Value const& _node, std::string const& _name) const;
yul::Statement createStatement(Json::Value const& _node); yul::Statement createStatement(Json::Value const& _node);
yul::Expression createExpression(Json::Value const& _node); yul::Expression createExpression(Json::Value const& _node);

View File

@ -10,6 +10,7 @@
"ast": "ast":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "0:1856:1",
"src": "0:1856:1", "src": "0:1856:1",
"statements": "statements":
[ [
@ -17,11 +18,13 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "47:35:1",
"src": "47:35:1", "src": "47:35:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "57:19:1",
"src": "57:19:1", "src": "57:19:1",
"value": "value":
{ {
@ -30,6 +33,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "73:2:1",
"src": "73:2:1", "src": "73:2:1",
"type": "", "type": "",
"value": "64" "value": "64"
@ -39,9 +43,11 @@
{ {
"name": "mload", "name": "mload",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "67:5:1",
"src": "67:5:1" "src": "67:5:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "67:9:1",
"src": "67:9:1" "src": "67:9:1"
}, },
"variableNames": "variableNames":
@ -49,6 +55,7 @@
{ {
"name": "memPtr", "name": "memPtr",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "57:6:1",
"src": "57:6:1" "src": "57:6:1"
} }
] ]
@ -57,11 +64,13 @@
}, },
"name": "allocate_unbounded", "name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "7:75:1",
"returnVariables": "returnVariables":
[ [
{ {
"name": "memPtr", "name": "memPtr",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "40:6:1",
"src": "40:6:1", "src": "40:6:1",
"type": "" "type": ""
} }
@ -72,6 +81,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "177:28:1",
"src": "177:28:1", "src": "177:28:1",
"statements": "statements":
[ [
@ -83,6 +93,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "194:1:1",
"src": "194:1:1", "src": "194:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -90,6 +101,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "197:1:1",
"src": "197:1:1", "src": "197:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -99,24 +111,29 @@
{ {
"name": "revert", "name": "revert",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "187:6:1",
"src": "187:6:1" "src": "187:6:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "187:12:1",
"src": "187:12:1" "src": "187:12:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "187:12:1",
"src": "187:12:1" "src": "187:12:1"
} }
] ]
}, },
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "88:117:1",
"src": "88:117:1" "src": "88:117:1"
}, },
{ {
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "300:28:1",
"src": "300:28:1", "src": "300:28:1",
"statements": "statements":
[ [
@ -128,6 +145,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "317:1:1",
"src": "317:1:1", "src": "317:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -135,6 +153,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "320:1:1",
"src": "320:1:1", "src": "320:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -144,24 +163,29 @@
{ {
"name": "revert", "name": "revert",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "310:6:1",
"src": "310:6:1" "src": "310:6:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "310:12:1",
"src": "310:12:1" "src": "310:12:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "310:12:1",
"src": "310:12:1" "src": "310:12:1"
} }
] ]
}, },
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "211:117:1",
"src": "211:117:1" "src": "211:117:1"
}, },
{ {
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "423:28:1",
"src": "423:28:1", "src": "423:28:1",
"statements": "statements":
[ [
@ -173,6 +197,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "440:1:1",
"src": "440:1:1", "src": "440:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -180,6 +205,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "443:1:1",
"src": "443:1:1", "src": "443:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -189,24 +215,29 @@
{ {
"name": "revert", "name": "revert",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "433:6:1",
"src": "433:6:1" "src": "433:6:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "433:12:1",
"src": "433:12:1" "src": "433:12:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "433:12:1",
"src": "433:12:1" "src": "433:12:1"
} }
] ]
}, },
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "334:117:1",
"src": "334:117:1" "src": "334:117:1"
}, },
{ {
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "546:28:1",
"src": "546:28:1", "src": "546:28:1",
"statements": "statements":
[ [
@ -218,6 +249,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "563:1:1",
"src": "563:1:1", "src": "563:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -225,6 +257,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "566:1:1",
"src": "566:1:1", "src": "566:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -234,24 +267,29 @@
{ {
"name": "revert", "name": "revert",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "556:6:1",
"src": "556:6:1" "src": "556:6:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "556:12:1",
"src": "556:12:1" "src": "556:12:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "556:12:1",
"src": "556:12:1" "src": "556:12:1"
} }
] ]
}, },
"name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "457:117:1",
"src": "457:117:1" "src": "457:117:1"
}, },
{ {
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "669:28:1",
"src": "669:28:1", "src": "669:28:1",
"statements": "statements":
[ [
@ -263,6 +301,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "686:1:1",
"src": "686:1:1", "src": "686:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -270,6 +309,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "689:1:1",
"src": "689:1:1", "src": "689:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -279,24 +319,29 @@
{ {
"name": "revert", "name": "revert",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "679:6:1",
"src": "679:6:1" "src": "679:6:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "679:12:1",
"src": "679:12:1" "src": "679:12:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "679:12:1",
"src": "679:12:1" "src": "679:12:1"
} }
] ]
}, },
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "580:117:1",
"src": "580:117:1" "src": "580:117:1"
}, },
{ {
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "810:478:1",
"src": "810:478:1", "src": "810:478:1",
"statements": "statements":
[ [
@ -304,6 +349,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "859:83:1",
"src": "859:83:1", "src": "859:83:1",
"statements": "statements":
[ [
@ -315,12 +361,15 @@
{ {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "861:77:1",
"src": "861:77:1" "src": "861:77:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "861:79:1",
"src": "861:79:1" "src": "861:79:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "861:79:1",
"src": "861:79:1" "src": "861:79:1"
} }
] ]
@ -338,11 +387,13 @@
{ {
"name": "offset", "name": "offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "838:6:1",
"src": "838:6:1" "src": "838:6:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "846:4:1",
"src": "846:4:1", "src": "846:4:1",
"type": "", "type": "",
"value": "0x1f" "value": "0x1f"
@ -352,14 +403,17 @@
{ {
"name": "add", "name": "add",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "834:3:1",
"src": "834:3:1" "src": "834:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "834:17:1",
"src": "834:17:1" "src": "834:17:1"
}, },
{ {
"name": "end", "name": "end",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "853:3:1",
"src": "853:3:1" "src": "853:3:1"
} }
], ],
@ -367,9 +421,11 @@
{ {
"name": "slt", "name": "slt",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "830:3:1",
"src": "830:3:1" "src": "830:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "830:27:1",
"src": "830:27:1" "src": "830:27:1"
} }
], ],
@ -377,16 +433,20 @@
{ {
"name": "iszero", "name": "iszero",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "823:6:1",
"src": "823:6:1" "src": "823:6:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "823:35:1",
"src": "823:35:1" "src": "823:35:1"
}, },
"nodeType": "YulIf", "nodeType": "YulIf",
"origin": "820:122:1",
"src": "820:122:1" "src": "820:122:1"
}, },
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "951:30:1",
"src": "951:30:1", "src": "951:30:1",
"value": "value":
{ {
@ -395,6 +455,7 @@
{ {
"name": "offset", "name": "offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "974:6:1",
"src": "974:6:1" "src": "974:6:1"
} }
], ],
@ -402,9 +463,11 @@
{ {
"name": "calldataload", "name": "calldataload",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "961:12:1",
"src": "961:12:1" "src": "961:12:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "961:20:1",
"src": "961:20:1" "src": "961:20:1"
}, },
"variableNames": "variableNames":
@ -412,6 +475,7 @@
{ {
"name": "length", "name": "length",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "951:6:1",
"src": "951:6:1" "src": "951:6:1"
} }
] ]
@ -420,6 +484,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "1024:83:1",
"src": "1024:83:1", "src": "1024:83:1",
"statements": "statements":
[ [
@ -431,12 +496,15 @@
{ {
"name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1026:77:1",
"src": "1026:77:1" "src": "1026:77:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1026:79:1",
"src": "1026:79:1" "src": "1026:79:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "1026:79:1",
"src": "1026:79:1" "src": "1026:79:1"
} }
] ]
@ -448,11 +516,13 @@
{ {
"name": "length", "name": "length",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "996:6:1",
"src": "996:6:1" "src": "996:6:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "1004:18:1",
"src": "1004:18:1", "src": "1004:18:1",
"type": "", "type": "",
"value": "0xffffffffffffffff" "value": "0xffffffffffffffff"
@ -462,16 +532,20 @@
{ {
"name": "gt", "name": "gt",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "993:2:1",
"src": "993:2:1" "src": "993:2:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "993:30:1",
"src": "993:30:1" "src": "993:30:1"
}, },
"nodeType": "YulIf", "nodeType": "YulIf",
"origin": "990:117:1",
"src": "990:117:1" "src": "990:117:1"
}, },
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "1116:29:1",
"src": "1116:29:1", "src": "1116:29:1",
"value": "value":
{ {
@ -480,11 +554,13 @@
{ {
"name": "offset", "name": "offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1132:6:1",
"src": "1132:6:1" "src": "1132:6:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "1140:4:1",
"src": "1140:4:1", "src": "1140:4:1",
"type": "", "type": "",
"value": "0x20" "value": "0x20"
@ -494,9 +570,11 @@
{ {
"name": "add", "name": "add",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1128:3:1",
"src": "1128:3:1" "src": "1128:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1128:17:1",
"src": "1128:17:1" "src": "1128:17:1"
}, },
"variableNames": "variableNames":
@ -504,6 +582,7 @@
{ {
"name": "arrayPos", "name": "arrayPos",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1116:8:1",
"src": "1116:8:1" "src": "1116:8:1"
} }
] ]
@ -512,6 +591,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "1199:83:1",
"src": "1199:83:1", "src": "1199:83:1",
"statements": "statements":
[ [
@ -523,12 +603,15 @@
{ {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1201:77:1",
"src": "1201:77:1" "src": "1201:77:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1201:79:1",
"src": "1201:79:1" "src": "1201:79:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "1201:79:1",
"src": "1201:79:1" "src": "1201:79:1"
} }
] ]
@ -543,6 +626,7 @@
{ {
"name": "arrayPos", "name": "arrayPos",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1164:8:1",
"src": "1164:8:1" "src": "1164:8:1"
}, },
{ {
@ -551,11 +635,13 @@
{ {
"name": "length", "name": "length",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1178:6:1",
"src": "1178:6:1" "src": "1178:6:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "1186:4:1",
"src": "1186:4:1", "src": "1186:4:1",
"type": "", "type": "",
"value": "0x20" "value": "0x20"
@ -565,9 +651,11 @@
{ {
"name": "mul", "name": "mul",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1174:3:1",
"src": "1174:3:1" "src": "1174:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1174:17:1",
"src": "1174:17:1" "src": "1174:17:1"
} }
], ],
@ -575,14 +663,17 @@
{ {
"name": "add", "name": "add",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1160:3:1",
"src": "1160:3:1" "src": "1160:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1160:32:1",
"src": "1160:32:1" "src": "1160:32:1"
}, },
{ {
"name": "end", "name": "end",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1194:3:1",
"src": "1194:3:1" "src": "1194:3:1"
} }
], ],
@ -590,29 +681,35 @@
{ {
"name": "gt", "name": "gt",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1157:2:1",
"src": "1157:2:1" "src": "1157:2:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1157:41:1",
"src": "1157:41:1" "src": "1157:41:1"
}, },
"nodeType": "YulIf", "nodeType": "YulIf",
"origin": "1154:128:1",
"src": "1154:128:1" "src": "1154:128:1"
} }
] ]
}, },
"name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "720:568:1",
"parameters": "parameters":
[ [
{ {
"name": "offset", "name": "offset",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "777:6:1",
"src": "777:6:1", "src": "777:6:1",
"type": "" "type": ""
}, },
{ {
"name": "end", "name": "end",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "785:3:1",
"src": "785:3:1", "src": "785:3:1",
"type": "" "type": ""
} }
@ -622,12 +719,14 @@
{ {
"name": "arrayPos", "name": "arrayPos",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "793:8:1",
"src": "793:8:1", "src": "793:8:1",
"type": "" "type": ""
}, },
{ {
"name": "length", "name": "length",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "803:6:1",
"src": "803:6:1", "src": "803:6:1",
"type": "" "type": ""
} }
@ -638,6 +737,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "1395:458:1",
"src": "1395:458:1", "src": "1395:458:1",
"statements": "statements":
[ [
@ -645,6 +745,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "1441:83:1",
"src": "1441:83:1", "src": "1441:83:1",
"statements": "statements":
[ [
@ -656,12 +757,15 @@
{ {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1443:77:1",
"src": "1443:77:1" "src": "1443:77:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1443:79:1",
"src": "1443:79:1" "src": "1443:79:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "1443:79:1",
"src": "1443:79:1" "src": "1443:79:1"
} }
] ]
@ -676,11 +780,13 @@
{ {
"name": "dataEnd", "name": "dataEnd",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1416:7:1",
"src": "1416:7:1" "src": "1416:7:1"
}, },
{ {
"name": "headStart", "name": "headStart",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1425:9:1",
"src": "1425:9:1" "src": "1425:9:1"
} }
], ],
@ -688,14 +794,17 @@
{ {
"name": "sub", "name": "sub",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1412:3:1",
"src": "1412:3:1" "src": "1412:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1412:23:1",
"src": "1412:23:1" "src": "1412:23:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "1437:2:1",
"src": "1437:2:1", "src": "1437:2:1",
"type": "", "type": "",
"value": "32" "value": "32"
@ -705,21 +814,26 @@
{ {
"name": "slt", "name": "slt",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1408:3:1",
"src": "1408:3:1" "src": "1408:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1408:32:1",
"src": "1408:32:1" "src": "1408:32:1"
}, },
"nodeType": "YulIf", "nodeType": "YulIf",
"origin": "1405:119:1",
"src": "1405:119:1" "src": "1405:119:1"
}, },
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "1534:312:1",
"src": "1534:312:1", "src": "1534:312:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "1549:45:1",
"src": "1549:45:1", "src": "1549:45:1",
"value": "value":
{ {
@ -731,11 +845,13 @@
{ {
"name": "headStart", "name": "headStart",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1580:9:1",
"src": "1580:9:1" "src": "1580:9:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "1591:1:1",
"src": "1591:1:1", "src": "1591:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -745,9 +861,11 @@
{ {
"name": "add", "name": "add",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1576:3:1",
"src": "1576:3:1" "src": "1576:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1576:17:1",
"src": "1576:17:1" "src": "1576:17:1"
} }
], ],
@ -755,9 +873,11 @@
{ {
"name": "calldataload", "name": "calldataload",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1563:12:1",
"src": "1563:12:1" "src": "1563:12:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1563:31:1",
"src": "1563:31:1" "src": "1563:31:1"
}, },
"variables": "variables":
@ -765,6 +885,7 @@
{ {
"name": "offset", "name": "offset",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "1553:6:1",
"src": "1553:6:1", "src": "1553:6:1",
"type": "" "type": ""
} }
@ -774,6 +895,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "1641:83:1",
"src": "1641:83:1", "src": "1641:83:1",
"statements": "statements":
[ [
@ -785,12 +907,15 @@
{ {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1643:77:1",
"src": "1643:77:1" "src": "1643:77:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1643:79:1",
"src": "1643:79:1" "src": "1643:79:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "1643:79:1",
"src": "1643:79:1" "src": "1643:79:1"
} }
] ]
@ -802,11 +927,13 @@
{ {
"name": "offset", "name": "offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1613:6:1",
"src": "1613:6:1" "src": "1613:6:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "1621:18:1",
"src": "1621:18:1", "src": "1621:18:1",
"type": "", "type": "",
"value": "0xffffffffffffffff" "value": "0xffffffffffffffff"
@ -816,16 +943,20 @@
{ {
"name": "gt", "name": "gt",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1610:2:1",
"src": "1610:2:1" "src": "1610:2:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1610:30:1",
"src": "1610:30:1" "src": "1610:30:1"
}, },
"nodeType": "YulIf", "nodeType": "YulIf",
"origin": "1607:117:1",
"src": "1607:117:1" "src": "1607:117:1"
}, },
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "1738:98:1",
"src": "1738:98:1", "src": "1738:98:1",
"value": "value":
{ {
@ -837,11 +968,13 @@
{ {
"name": "headStart", "name": "headStart",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1808:9:1",
"src": "1808:9:1" "src": "1808:9:1"
}, },
{ {
"name": "offset", "name": "offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1819:6:1",
"src": "1819:6:1" "src": "1819:6:1"
} }
], ],
@ -849,14 +982,17 @@
{ {
"name": "add", "name": "add",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1804:3:1",
"src": "1804:3:1" "src": "1804:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1804:22:1",
"src": "1804:22:1" "src": "1804:22:1"
}, },
{ {
"name": "dataEnd", "name": "dataEnd",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1828:7:1",
"src": "1828:7:1" "src": "1828:7:1"
} }
], ],
@ -864,9 +1000,11 @@
{ {
"name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1756:47:1",
"src": "1756:47:1" "src": "1756:47:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "1756:80:1",
"src": "1756:80:1" "src": "1756:80:1"
}, },
"variableNames": "variableNames":
@ -874,11 +1012,13 @@
{ {
"name": "value0", "name": "value0",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1738:6:1",
"src": "1738:6:1" "src": "1738:6:1"
}, },
{ {
"name": "value1", "name": "value1",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "1746:6:1",
"src": "1746:6:1" "src": "1746:6:1"
} }
] ]
@ -889,17 +1029,20 @@
}, },
"name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr", "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "1294:559:1",
"parameters": "parameters":
[ [
{ {
"name": "headStart", "name": "headStart",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "1357:9:1",
"src": "1357:9:1", "src": "1357:9:1",
"type": "" "type": ""
}, },
{ {
"name": "dataEnd", "name": "dataEnd",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "1368:7:1",
"src": "1368:7:1", "src": "1368:7:1",
"type": "" "type": ""
} }
@ -909,12 +1052,14 @@
{ {
"name": "value0", "name": "value0",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "1380:6:1",
"src": "1380:6:1", "src": "1380:6:1",
"type": "" "type": ""
}, },
{ {
"name": "value1", "name": "value1",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "1388:6:1",
"src": "1388:6:1", "src": "1388:6:1",
"type": "" "type": ""
} }

View File

@ -285,6 +285,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "214:218:0",
"src": "214:218:0", "src": "214:218:0",
"statements": "statements":
[ [
@ -296,6 +297,7 @@
{ {
"name": "y_slot", "name": "y_slot",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "232:6:0",
"src": "232:6:0" "src": "232:6:0"
} }
], ],
@ -303,12 +305,15 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "228:3:0",
"src": "228:3:0" "src": "228:3:0"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "228:11:0",
"src": "228:11:0" "src": "228:11:0"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "228:11:0",
"src": "228:11:0" "src": "228:11:0"
}, },
{ {
@ -319,6 +324,7 @@
{ {
"name": "y_offset", "name": "y_offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "256:8:0",
"src": "256:8:0" "src": "256:8:0"
} }
], ],
@ -326,16 +332,20 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "252:3:0",
"src": "252:3:0" "src": "252:3:0"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "252:13:0",
"src": "252:13:0" "src": "252:13:0"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "252:13:0",
"src": "252:13:0" "src": "252:13:0"
}, },
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "279:21:0",
"src": "279:21:0", "src": "279:21:0",
"value": "value":
{ {
@ -344,9 +354,11 @@
{ {
"name": "f", "name": "f",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "297:1:0",
"src": "297:1:0" "src": "297:1:0"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "297:3:0",
"src": "297:3:0" "src": "297:3:0"
}, },
"variables": "variables":
@ -354,18 +366,21 @@
{ {
"name": "z1", "name": "z1",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "283:2:0",
"src": "283:2:0", "src": "283:2:0",
"type": "" "type": ""
}, },
{ {
"name": "z2", "name": "z2",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "287:2:0",
"src": "287:2:0", "src": "287:2:0",
"type": "" "type": ""
}, },
{ {
"name": "z3", "name": "z3",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "291:2:0",
"src": "291:2:0", "src": "291:2:0",
"type": "" "type": ""
} }
@ -375,16 +390,19 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "338:84:0",
"src": "338:84:0", "src": "338:84:0",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "356:6:0",
"src": "356:6:0", "src": "356:6:0",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "361:1:0",
"src": "361:1:0", "src": "361:1:0",
"type": "", "type": "",
"value": "1" "value": "1"
@ -394,17 +412,20 @@
{ {
"name": "a", "name": "a",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "356:1:0",
"src": "356:1:0" "src": "356:1:0"
} }
] ]
}, },
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "379:6:0",
"src": "379:6:0", "src": "379:6:0",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "384:1:0",
"src": "384:1:0", "src": "384:1:0",
"type": "", "type": "",
"value": "2" "value": "2"
@ -414,17 +435,20 @@
{ {
"name": "b", "name": "b",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "379:1:0",
"src": "379:1:0" "src": "379:1:0"
} }
] ]
}, },
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "402:6:0",
"src": "402:6:0", "src": "402:6:0",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "407:1:0",
"src": "407:1:0", "src": "407:1:0",
"type": "", "type": "",
"value": "3" "value": "3"
@ -434,6 +458,7 @@
{ {
"name": "c", "name": "c",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "402:1:0",
"src": "402:1:0" "src": "402:1:0"
} }
] ]
@ -442,23 +467,27 @@
}, },
"name": "f", "name": "f",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "314:108:0",
"returnVariables": "returnVariables":
[ [
{ {
"name": "a", "name": "a",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "330:1:0",
"src": "330:1:0", "src": "330:1:0",
"type": "" "type": ""
}, },
{ {
"name": "b", "name": "b",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "333:1:0",
"src": "333:1:0", "src": "333:1:0",
"type": "" "type": ""
}, },
{ {
"name": "c", "name": "c",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "336:1:0",
"src": "336:1:0", "src": "336:1:0",
"type": "" "type": ""
} }

File diff suppressed because it is too large Load Diff

View File

@ -39,6 +39,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "56:34:1",
"src": "56:34:1", "src": "56:34:1",
"statements": "statements":
[ [
@ -53,6 +54,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "67:1:1",
"src": "67:1:1", "src": "67:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -60,6 +62,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "70:1:1",
"src": "70:1:1", "src": "70:1:1",
"type": "", "type": "",
"value": "1" "value": "1"
@ -67,6 +70,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "73:1:1",
"src": "73:1:1", "src": "73:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -74,6 +78,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "76:1:1",
"src": "76:1:1", "src": "76:1:1",
"type": "", "type": "",
"value": "3" "value": "3"
@ -81,6 +86,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "79:1:1",
"src": "79:1:1", "src": "79:1:1",
"type": "", "type": "",
"value": "4" "value": "4"
@ -88,6 +94,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "82:1:1",
"src": "82:1:1", "src": "82:1:1",
"type": "", "type": "",
"value": "5" "value": "5"
@ -95,6 +102,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "85:1:1",
"src": "85:1:1", "src": "85:1:1",
"type": "", "type": "",
"value": "6" "value": "6"
@ -104,9 +112,11 @@
{ {
"name": "call", "name": "call",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "62:4:1",
"src": "62:4:1" "src": "62:4:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "62:25:1",
"src": "62:25:1" "src": "62:25:1"
} }
], ],
@ -114,12 +124,15 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "58:3:1",
"src": "58:3:1" "src": "58:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "58:30:1",
"src": "58:30:1" "src": "58:30:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "58:30:1",
"src": "58:30:1" "src": "58:30:1"
} }
] ]

View File

@ -27,6 +27,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "56:34:1",
"src": "56:34:1", "src": "56:34:1",
"statements": "statements":
[ [
@ -41,6 +42,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "67:1:1",
"src": "67:1:1", "src": "67:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -48,6 +50,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "70:1:1",
"src": "70:1:1", "src": "70:1:1",
"type": "", "type": "",
"value": "1" "value": "1"
@ -55,6 +58,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "73:1:1",
"src": "73:1:1", "src": "73:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -62,6 +66,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "76:1:1",
"src": "76:1:1", "src": "76:1:1",
"type": "", "type": "",
"value": "3" "value": "3"
@ -69,6 +74,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "79:1:1",
"src": "79:1:1", "src": "79:1:1",
"type": "", "type": "",
"value": "4" "value": "4"
@ -76,6 +82,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "82:1:1",
"src": "82:1:1", "src": "82:1:1",
"type": "", "type": "",
"value": "5" "value": "5"
@ -83,6 +90,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "85:1:1",
"src": "85:1:1", "src": "85:1:1",
"type": "", "type": "",
"value": "6" "value": "6"
@ -92,9 +100,11 @@
{ {
"name": "call", "name": "call",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "62:4:1",
"src": "62:4:1" "src": "62:4:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "62:25:1",
"src": "62:25:1" "src": "62:25:1"
} }
], ],
@ -102,12 +112,15 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "58:3:1",
"src": "58:3:1" "src": "58:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "58:30:1",
"src": "58:30:1" "src": "58:30:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "58:30:1",
"src": "58:30:1" "src": "58:30:1"
} }
] ]

View File

@ -39,11 +39,13 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:6:1",
"src": "61:6:1", "src": "61:6:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "63:2:1",
"src": "63:2:1", "src": "63:2:1",
"statements": [] "statements": []
} }

View File

@ -27,11 +27,13 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:6:1",
"src": "61:6:1", "src": "61:6:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "63:2:1",
"src": "63:2:1", "src": "63:2:1",
"statements": [] "statements": []
} }

View File

@ -39,6 +39,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:43:1",
"src": "61:43:1", "src": "61:43:1",
"statements": "statements":
[ [
@ -46,6 +47,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "76:22:1",
"src": "76:22:1", "src": "76:22:1",
"statements": "statements":
[ [
@ -60,6 +62,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "92:2:1",
"src": "92:2:1", "src": "92:2:1",
"type": "", "type": "",
"value": "20" "value": "20"
@ -69,9 +72,11 @@
{ {
"name": "blockhash", "name": "blockhash",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "82:9:1",
"src": "82:9:1" "src": "82:9:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "82:13:1",
"src": "82:13:1" "src": "82:13:1"
} }
], ],
@ -79,18 +84,22 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "78:3:1",
"src": "78:3:1" "src": "78:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "78:18:1",
"src": "78:18:1" "src": "78:18:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "78:18:1",
"src": "78:18:1" "src": "78:18:1"
} }
] ]
}, },
"name": "g", "name": "g",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "63:35:1",
"src": "63:35:1" "src": "63:35:1"
}, },
{ {
@ -101,12 +110,15 @@
{ {
"name": "g", "name": "g",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "99:1:1",
"src": "99:1:1" "src": "99:1:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "99:3:1",
"src": "99:3:1" "src": "99:3:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "99:3:1",
"src": "99:3:1" "src": "99:3:1"
} }
] ]

View File

@ -27,6 +27,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:43:1",
"src": "61:43:1", "src": "61:43:1",
"statements": "statements":
[ [
@ -34,6 +35,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "76:22:1",
"src": "76:22:1", "src": "76:22:1",
"statements": "statements":
[ [
@ -48,6 +50,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "92:2:1",
"src": "92:2:1", "src": "92:2:1",
"type": "", "type": "",
"value": "20" "value": "20"
@ -57,9 +60,11 @@
{ {
"name": "blockhash", "name": "blockhash",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "82:9:1",
"src": "82:9:1" "src": "82:9:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "82:13:1",
"src": "82:13:1" "src": "82:13:1"
} }
], ],
@ -67,18 +72,22 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "78:3:1",
"src": "78:3:1" "src": "78:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "78:18:1",
"src": "78:18:1" "src": "78:18:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "78:18:1",
"src": "78:18:1" "src": "78:18:1"
} }
] ]
}, },
"name": "g", "name": "g",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "63:35:1",
"src": "63:35:1" "src": "63:35:1"
}, },
{ {
@ -89,12 +98,15 @@
{ {
"name": "g", "name": "g",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "99:1:1",
"src": "99:1:1" "src": "99:1:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "99:3:1",
"src": "99:3:1" "src": "99:3:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "99:3:1",
"src": "99:3:1" "src": "99:3:1"
} }
] ]

View File

@ -39,6 +39,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "56:26:1",
"src": "56:26:1", "src": "56:26:1",
"statements": "statements":
[ [
@ -46,17 +47,20 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "71:9:1",
"src": "71:9:1", "src": "71:9:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulLeave", "nodeType": "YulLeave",
"origin": "73:5:1",
"src": "73:5:1" "src": "73:5:1"
} }
] ]
}, },
"name": "f", "name": "f",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "58:22:1",
"src": "58:22:1" "src": "58:22:1"
} }
] ]

View File

@ -27,6 +27,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "56:26:1",
"src": "56:26:1", "src": "56:26:1",
"statements": "statements":
[ [
@ -34,17 +35,20 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "71:9:1",
"src": "71:9:1", "src": "71:9:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulLeave", "nodeType": "YulLeave",
"origin": "73:5:1",
"src": "73:5:1" "src": "73:5:1"
} }
] ]
}, },
"name": "f", "name": "f",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "58:22:1",
"src": "58:22:1" "src": "58:22:1"
} }
] ]

View File

@ -39,6 +39,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:49:1",
"src": "61:49:1", "src": "61:49:1",
"statements": "statements":
[ [
@ -46,15 +47,18 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "90:18:1",
"src": "90:18:1", "src": "90:18:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulBreak", "nodeType": "YulBreak",
"origin": "92:5:1",
"src": "92:5:1" "src": "92:5:1"
}, },
{ {
"nodeType": "YulContinue", "nodeType": "YulContinue",
"origin": "98:8:1",
"src": "98:8:1" "src": "98:8:1"
} }
] ]
@ -63,14 +67,17 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "70:1:1",
"src": "70:1:1", "src": "70:1:1",
"type": "", "type": "",
"value": "1" "value": "1"
}, },
"nodeType": "YulForLoop", "nodeType": "YulForLoop",
"origin": "63:45:1",
"post": "post":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "72:17:1",
"src": "72:17:1", "src": "72:17:1",
"statements": "statements":
[ [
@ -85,6 +92,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -94,9 +102,11 @@
{ {
"name": "sload", "name": "sload",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "78:5:1",
"src": "78:5:1" "src": "78:5:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "78:8:1",
"src": "78:8:1" "src": "78:8:1"
} }
], ],
@ -104,12 +114,15 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "74:3:1",
"src": "74:3:1" "src": "74:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "74:13:1",
"src": "74:13:1" "src": "74:13:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "74:13:1",
"src": "74:13:1" "src": "74:13:1"
} }
] ]
@ -117,6 +130,7 @@
"pre": "pre":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "67:2:1",
"src": "67:2:1", "src": "67:2:1",
"statements": [] "statements": []
}, },

View File

@ -27,6 +27,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:49:1",
"src": "61:49:1", "src": "61:49:1",
"statements": "statements":
[ [
@ -34,15 +35,18 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "90:18:1",
"src": "90:18:1", "src": "90:18:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulBreak", "nodeType": "YulBreak",
"origin": "92:5:1",
"src": "92:5:1" "src": "92:5:1"
}, },
{ {
"nodeType": "YulContinue", "nodeType": "YulContinue",
"origin": "98:8:1",
"src": "98:8:1" "src": "98:8:1"
} }
] ]
@ -51,14 +55,17 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "70:1:1",
"src": "70:1:1", "src": "70:1:1",
"type": "", "type": "",
"value": "1" "value": "1"
}, },
"nodeType": "YulForLoop", "nodeType": "YulForLoop",
"origin": "63:45:1",
"post": "post":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "72:17:1",
"src": "72:17:1", "src": "72:17:1",
"statements": "statements":
[ [
@ -73,6 +80,7 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -82,9 +90,11 @@
{ {
"name": "sload", "name": "sload",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "78:5:1",
"src": "78:5:1" "src": "78:5:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "78:8:1",
"src": "78:8:1" "src": "78:8:1"
} }
], ],
@ -92,12 +102,15 @@
{ {
"name": "pop", "name": "pop",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "74:3:1",
"src": "74:3:1" "src": "74:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "74:13:1",
"src": "74:13:1" "src": "74:13:1"
}, },
"nodeType": "YulExpressionStatement", "nodeType": "YulExpressionStatement",
"origin": "74:13:1",
"src": "74:13:1" "src": "74:13:1"
} }
] ]
@ -105,6 +118,7 @@
"pre": "pre":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "67:2:1",
"src": "67:2:1", "src": "67:2:1",
"statements": [] "statements": []
}, },

View File

@ -38,6 +38,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "72:78:1",
"src": "72:78:1", "src": "72:78:1",
"statements": "statements":
[ [
@ -45,6 +46,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "94:50:1",
"src": "94:50:1", "src": "94:50:1",
"statements": "statements":
[ [
@ -52,20 +54,24 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "118:3:1",
"src": "118:3:1", "src": "118:3:1",
"statements": [] "statements": []
}, },
"name": "f2", "name": "f2",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "104:17:1",
"src": "104:17:1" "src": "104:17:1"
}, },
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "130:6:1",
"src": "130:6:1", "src": "130:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "135:1:1",
"src": "135:1:1", "src": "135:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -75,6 +81,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "130:1:1",
"src": "130:1:1" "src": "130:1:1"
} }
] ]
@ -83,6 +90,7 @@
}, },
"name": "f1", "name": "f1",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "80:64:1",
"src": "80:64:1" "src": "80:64:1"
} }
] ]

View File

@ -27,6 +27,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "72:78:1",
"src": "72:78:1", "src": "72:78:1",
"statements": "statements":
[ [
@ -34,6 +35,7 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "94:50:1",
"src": "94:50:1", "src": "94:50:1",
"statements": "statements":
[ [
@ -41,20 +43,24 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "118:3:1",
"src": "118:3:1", "src": "118:3:1",
"statements": [] "statements": []
}, },
"name": "f2", "name": "f2",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "104:17:1",
"src": "104:17:1" "src": "104:17:1"
}, },
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "130:6:1",
"src": "130:6:1", "src": "130:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "135:1:1",
"src": "135:1:1", "src": "135:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -64,6 +70,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "130:1:1",
"src": "130:1:1" "src": "130:1:1"
} }
] ]
@ -72,6 +79,7 @@
}, },
"name": "f1", "name": "f1",
"nodeType": "YulFunctionDefinition", "nodeType": "YulFunctionDefinition",
"origin": "80:64:1",
"src": "80:64:1" "src": "80:64:1"
} }
] ]

View File

@ -120,16 +120,19 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "95:45:1",
"src": "95:45:1", "src": "95:45:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "97:17:1",
"src": "97:17:1", "src": "97:17:1",
"value": "value":
{ {
"name": "s.offset", "name": "s.offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "106:8:1",
"src": "106:8:1" "src": "106:8:1"
}, },
"variables": "variables":
@ -137,6 +140,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "101:1:1",
"src": "101:1:1", "src": "101:1:1",
"type": "" "type": ""
} }
@ -144,6 +148,7 @@
}, },
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "115:23:1",
"src": "115:23:1", "src": "115:23:1",
"value": "value":
{ {
@ -152,11 +157,13 @@
{ {
"name": "s.slot", "name": "s.slot",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "128:6:1",
"src": "128:6:1" "src": "128:6:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "136:1:1",
"src": "136:1:1", "src": "136:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -166,9 +173,11 @@
{ {
"name": "mul", "name": "mul",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "124:3:1",
"src": "124:3:1" "src": "124:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "124:14:1",
"src": "124:14:1" "src": "124:14:1"
}, },
"variables": "variables":
@ -176,6 +185,7 @@
{ {
"name": "y", "name": "y",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "119:1:1",
"src": "119:1:1", "src": "119:1:1",
"type": "" "type": ""
} }

View File

@ -86,16 +86,19 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "95:45:1",
"src": "95:45:1", "src": "95:45:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "97:17:1",
"src": "97:17:1", "src": "97:17:1",
"value": "value":
{ {
"name": "s.offset", "name": "s.offset",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "106:8:1",
"src": "106:8:1" "src": "106:8:1"
}, },
"variables": "variables":
@ -103,6 +106,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "101:1:1",
"src": "101:1:1", "src": "101:1:1",
"type": "" "type": ""
} }
@ -110,6 +114,7 @@
}, },
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "115:23:1",
"src": "115:23:1", "src": "115:23:1",
"value": "value":
{ {
@ -118,11 +123,13 @@
{ {
"name": "s.slot", "name": "s.slot",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "128:6:1",
"src": "128:6:1" "src": "128:6:1"
}, },
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "136:1:1",
"src": "136:1:1", "src": "136:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -132,9 +139,11 @@
{ {
"name": "mul", "name": "mul",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "124:3:1",
"src": "124:3:1" "src": "124:3:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "124:14:1",
"src": "124:14:1" "src": "124:14:1"
}, },
"variables": "variables":
@ -142,6 +151,7 @@
{ {
"name": "y", "name": "y",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "119:1:1",
"src": "119:1:1", "src": "119:1:1",
"type": "" "type": ""
} }

View File

@ -39,17 +39,20 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "56:18:1",
"src": "56:18:1", "src": "56:18:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "58:14:1",
"src": "58:14:1", "src": "58:14:1",
"value": "value":
{ {
"hexValue": "616263", "hexValue": "616263",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "67:5:1",
"src": "67:5:1", "src": "67:5:1",
"type": "", "type": "",
"value": "abc" "value": "abc"
@ -59,6 +62,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "62:1:1",
"src": "62:1:1", "src": "62:1:1",
"type": "" "type": ""
} }

View File

@ -27,17 +27,20 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "56:18:1",
"src": "56:18:1", "src": "56:18:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "58:14:1",
"src": "58:14:1", "src": "58:14:1",
"value": "value":
{ {
"hexValue": "616263", "hexValue": "616263",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "67:5:1",
"src": "67:5:1", "src": "67:5:1",
"type": "", "type": "",
"value": "abc" "value": "abc"
@ -47,6 +50,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "62:1:1",
"src": "62:1:1", "src": "62:1:1",
"type": "" "type": ""
} }

View File

@ -38,16 +38,19 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:129:1",
"src": "61:129:1", "src": "61:129:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "75:10:1",
"src": "75:10:1", "src": "75:10:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -57,6 +60,7 @@
{ {
"name": "f", "name": "f",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "79:1:1",
"src": "79:1:1", "src": "79:1:1",
"type": "" "type": ""
} }
@ -69,16 +73,19 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "139:10:1",
"src": "139:10:1", "src": "139:10:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "141:6:1",
"src": "141:6:1", "src": "141:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "146:1:1",
"src": "146:1:1", "src": "146:1:1",
"type": "", "type": "",
"value": "1" "value": "1"
@ -88,6 +95,7 @@
{ {
"name": "f", "name": "f",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "141:1:1",
"src": "141:1:1" "src": "141:1:1"
} }
] ]
@ -95,11 +103,13 @@
] ]
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "132:17:1",
"src": "132:17:1", "src": "132:17:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "137:1:1",
"src": "137:1:1", "src": "137:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -109,16 +119,19 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "170:10:1",
"src": "170:10:1", "src": "170:10:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "172:6:1",
"src": "172:6:1", "src": "172:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "177:1:1",
"src": "177:1:1", "src": "177:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -128,6 +141,7 @@
{ {
"name": "f", "name": "f",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "172:1:1",
"src": "172:1:1" "src": "172:1:1"
} }
] ]
@ -135,6 +149,7 @@
] ]
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "162:18:1",
"src": "162:18:1", "src": "162:18:1",
"value": "default" "value": "default"
} }
@ -146,12 +161,15 @@
{ {
"name": "calldatasize", "name": "calldatasize",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "105:12:1",
"src": "105:12:1" "src": "105:12:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "105:14:1",
"src": "105:14:1" "src": "105:14:1"
}, },
"nodeType": "YulSwitch", "nodeType": "YulSwitch",
"origin": "98:82:1",
"src": "98:82:1" "src": "98:82:1"
} }
] ]

View File

@ -39,6 +39,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:33:1",
"src": "61:33:1", "src": "61:33:1",
"statements": "statements":
[ [
@ -49,15 +50,18 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "79:2:1",
"src": "79:2:1", "src": "79:2:1",
"statements": [] "statements": []
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "72:9:1",
"src": "72:9:1", "src": "72:9:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "77:1:1",
"src": "77:1:1", "src": "77:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -67,10 +71,12 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "90:2:1",
"src": "90:2:1", "src": "90:2:1",
"statements": [] "statements": []
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "82:10:1",
"src": "82:10:1", "src": "82:10:1",
"value": "default" "value": "default"
} }
@ -79,11 +85,13 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "70:1:1",
"src": "70:1:1", "src": "70:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
}, },
"nodeType": "YulSwitch", "nodeType": "YulSwitch",
"origin": "63:29:1",
"src": "63:29:1" "src": "63:29:1"
} }
] ]

View File

@ -27,6 +27,7 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:33:1",
"src": "61:33:1", "src": "61:33:1",
"statements": "statements":
[ [
@ -37,15 +38,18 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "79:2:1",
"src": "79:2:1", "src": "79:2:1",
"statements": [] "statements": []
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "72:9:1",
"src": "72:9:1", "src": "72:9:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "77:1:1",
"src": "77:1:1", "src": "77:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -55,10 +59,12 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "90:2:1",
"src": "90:2:1", "src": "90:2:1",
"statements": [] "statements": []
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "82:10:1",
"src": "82:10:1", "src": "82:10:1",
"value": "default" "value": "default"
} }
@ -67,11 +73,13 @@
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "70:1:1",
"src": "70:1:1", "src": "70:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
}, },
"nodeType": "YulSwitch", "nodeType": "YulSwitch",
"origin": "63:29:1",
"src": "63:29:1" "src": "63:29:1"
} }
] ]

View File

@ -27,16 +27,19 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "61:129:1",
"src": "61:129:1", "src": "61:129:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "75:10:1",
"src": "75:10:1", "src": "75:10:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -46,6 +49,7 @@
{ {
"name": "f", "name": "f",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "79:1:1",
"src": "79:1:1", "src": "79:1:1",
"type": "" "type": ""
} }
@ -58,16 +62,19 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "139:10:1",
"src": "139:10:1", "src": "139:10:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "141:6:1",
"src": "141:6:1", "src": "141:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "146:1:1",
"src": "146:1:1", "src": "146:1:1",
"type": "", "type": "",
"value": "1" "value": "1"
@ -77,6 +84,7 @@
{ {
"name": "f", "name": "f",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "141:1:1",
"src": "141:1:1" "src": "141:1:1"
} }
] ]
@ -84,11 +92,13 @@
] ]
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "132:17:1",
"src": "132:17:1", "src": "132:17:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "137:1:1",
"src": "137:1:1", "src": "137:1:1",
"type": "", "type": "",
"value": "0" "value": "0"
@ -98,16 +108,19 @@
"body": "body":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "170:10:1",
"src": "170:10:1", "src": "170:10:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "172:6:1",
"src": "172:6:1", "src": "172:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "177:1:1",
"src": "177:1:1", "src": "177:1:1",
"type": "", "type": "",
"value": "2" "value": "2"
@ -117,6 +130,7 @@
{ {
"name": "f", "name": "f",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "172:1:1",
"src": "172:1:1" "src": "172:1:1"
} }
] ]
@ -124,6 +138,7 @@
] ]
}, },
"nodeType": "YulCase", "nodeType": "YulCase",
"origin": "162:18:1",
"src": "162:18:1", "src": "162:18:1",
"value": "default" "value": "default"
} }
@ -135,12 +150,15 @@
{ {
"name": "calldatasize", "name": "calldatasize",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "105:12:1",
"src": "105:12:1" "src": "105:12:1"
}, },
"nodeType": "YulFunctionCall", "nodeType": "YulFunctionCall",
"origin": "105:14:1",
"src": "105:14:1" "src": "105:14:1"
}, },
"nodeType": "YulSwitch", "nodeType": "YulSwitch",
"origin": "98:82:1",
"src": "98:82:1" "src": "98:82:1"
} }
] ]

View File

@ -81,16 +81,19 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "77:10:1",
"src": "77:10:1", "src": "77:10:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "79:6:1",
"src": "79:6:1", "src": "79:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "", "type": "",
"value": "7" "value": "7"
@ -100,6 +103,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "79:1:1",
"src": "79:1:1" "src": "79:1:1"
} }
] ]

View File

@ -60,16 +60,19 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "77:10:1",
"src": "77:10:1", "src": "77:10:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulAssignment", "nodeType": "YulAssignment",
"origin": "79:6:1",
"src": "79:6:1", "src": "79:6:1",
"value": "value":
{ {
"kind": "number", "kind": "number",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "", "type": "",
"value": "7" "value": "7"
@ -79,6 +82,7 @@
{ {
"name": "x", "name": "x",
"nodeType": "YulIdentifier", "nodeType": "YulIdentifier",
"origin": "79:1:1",
"src": "79:1:1" "src": "79:1:1"
} }
] ]

View File

@ -39,17 +39,20 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "66:142:1",
"src": "66:142:1", "src": "66:142:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "80:15:1",
"src": "80:15:1", "src": "80:15:1",
"value": "value":
{ {
"hexValue": "74657374", "hexValue": "74657374",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "89:6:1",
"src": "89:6:1", "src": "89:6:1",
"type": "", "type": "",
"value": "test" "value": "test"
@ -59,6 +62,7 @@
{ {
"name": "a", "name": "a",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "" "type": ""
} }
@ -66,12 +70,14 @@
}, },
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "108:54:1",
"src": "108:54:1", "src": "108:54:1",
"value": "value":
{ {
"hexValue": "112233445566778899aabbccddeeff6677889900", "hexValue": "112233445566778899aabbccddeeff6677889900",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "117:45:1",
"src": "117:45:1", "src": "117:45:1",
"type": "" "type": ""
}, },
@ -80,6 +86,7 @@
{ {
"name": "b", "name": "b",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "112:1:1",
"src": "112:1:1", "src": "112:1:1",
"type": "" "type": ""
} }
@ -87,12 +94,14 @@
}, },
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "175:23:1",
"src": "175:23:1", "src": "175:23:1",
"value": "value":
{ {
"hexValue": "1234abcd", "hexValue": "1234abcd",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "184:14:1",
"src": "184:14:1", "src": "184:14:1",
"type": "" "type": ""
}, },
@ -101,6 +110,7 @@
{ {
"name": "c", "name": "c",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "179:1:1",
"src": "179:1:1", "src": "179:1:1",
"type": "" "type": ""
} }

View File

@ -27,17 +27,20 @@
"AST": "AST":
{ {
"nodeType": "YulBlock", "nodeType": "YulBlock",
"origin": "66:142:1",
"src": "66:142:1", "src": "66:142:1",
"statements": "statements":
[ [
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "80:15:1",
"src": "80:15:1", "src": "80:15:1",
"value": "value":
{ {
"hexValue": "74657374", "hexValue": "74657374",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "89:6:1",
"src": "89:6:1", "src": "89:6:1",
"type": "", "type": "",
"value": "test" "value": "test"
@ -47,6 +50,7 @@
{ {
"name": "a", "name": "a",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "84:1:1",
"src": "84:1:1", "src": "84:1:1",
"type": "" "type": ""
} }
@ -54,12 +58,14 @@
}, },
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "108:54:1",
"src": "108:54:1", "src": "108:54:1",
"value": "value":
{ {
"hexValue": "112233445566778899aabbccddeeff6677889900", "hexValue": "112233445566778899aabbccddeeff6677889900",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "117:45:1",
"src": "117:45:1", "src": "117:45:1",
"type": "" "type": ""
}, },
@ -68,6 +74,7 @@
{ {
"name": "b", "name": "b",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "112:1:1",
"src": "112:1:1", "src": "112:1:1",
"type": "" "type": ""
} }
@ -75,12 +82,14 @@
}, },
{ {
"nodeType": "YulVariableDeclaration", "nodeType": "YulVariableDeclaration",
"origin": "175:23:1",
"src": "175:23:1", "src": "175:23:1",
"value": "value":
{ {
"hexValue": "1234abcd", "hexValue": "1234abcd",
"kind": "string", "kind": "string",
"nodeType": "YulLiteral", "nodeType": "YulLiteral",
"origin": "184:14:1",
"src": "184:14:1", "src": "184:14:1",
"type": "" "type": ""
}, },
@ -89,6 +98,7 @@
{ {
"name": "c", "name": "c",
"nodeType": "YulTypedName", "nodeType": "YulTypedName",
"origin": "179:1:1",
"src": "179:1:1", "src": "179:1:1",
"type": "" "type": ""
} }