mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[wasm] Document what StringLiteral is
This commit is contained in:
parent
3a3303f24e
commit
f76ac0a753
@ -345,8 +345,9 @@ bytes BinaryTransform::operator()(Literal const& _literal)
|
|||||||
|
|
||||||
bytes BinaryTransform::operator()(StringLiteral const&)
|
bytes BinaryTransform::operator()(StringLiteral const&)
|
||||||
{
|
{
|
||||||
// TODO is this used?
|
// StringLiteral is a special AST element used for certain builtins.
|
||||||
yulAssert(false, "String literals not yet implemented");
|
// It is not mapped to actual WebAssembly, and should be processed in visit(BuiltinCall).
|
||||||
|
yulAssert(false, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes BinaryTransform::operator()(LocalVariable const& _variable)
|
bytes BinaryTransform::operator()(LocalVariable const& _variable)
|
||||||
|
@ -101,6 +101,8 @@ string TextTransform::operator()(wasm::Literal const& _literal)
|
|||||||
|
|
||||||
string TextTransform::operator()(wasm::StringLiteral const& _literal)
|
string TextTransform::operator()(wasm::StringLiteral const& _literal)
|
||||||
{
|
{
|
||||||
|
// StringLiteral is a special AST element used for certain builtins.
|
||||||
|
// The output of this will not be valid WebAssembly.
|
||||||
string quoted = boost::replace_all_copy(_literal.value, "\\", "\\\\");
|
string quoted = boost::replace_all_copy(_literal.value, "\\", "\\\\");
|
||||||
boost::replace_all(quoted, "\"", "\\\"");
|
boost::replace_all(quoted, "\"", "\\\"");
|
||||||
return "\"" + quoted + "\"";
|
return "\"" + quoted + "\"";
|
||||||
|
@ -63,6 +63,7 @@ using Expression = std::variant<
|
|||||||
>;
|
>;
|
||||||
|
|
||||||
struct Literal { std::variant<uint32_t, uint64_t> value; };
|
struct Literal { std::variant<uint32_t, uint64_t> value; };
|
||||||
|
// This is a special AST element used for certain builtins. It is not mapped to actual WebAssembly.
|
||||||
struct StringLiteral { std::string value; };
|
struct StringLiteral { std::string value; };
|
||||||
struct LocalVariable { std::string name; };
|
struct LocalVariable { std::string name; };
|
||||||
struct GlobalVariable { std::string name; };
|
struct GlobalVariable { std::string name; };
|
||||||
|
Loading…
Reference in New Issue
Block a user