* Reference to a single byte inside a storage byte array. * Stack: */
| 187 | * Stack: <storage_ref> <byte_number> |
| 188 | */ |
| 189 | class StorageByteArrayElement: public LValue |
| 190 | { |
| 191 | public: |
| 192 | /// Constructs the LValue and assumes that the storage reference is already on the stack. |
| 193 | StorageByteArrayElement(CompilerContext& _compilerContext); |
| 194 | unsigned sizeOnStack() const override { return 2; } |
| 195 | void retrieveValue(langutil::SourceLocation const& _location, bool _remove = false) const override; |
| 196 | void storeValue( |
| 197 | Type const& _sourceType, |
| 198 | langutil::SourceLocation const& _location = {}, |
| 199 | bool _move = false |
| 200 | ) const override; |
| 201 | void setToZero( |
| 202 | langutil::SourceLocation const& _location = {}, |
| 203 | bool _removeReference = true |
| 204 | ) const override; |
| 205 | }; |
| 206 | |
| 207 | /** |
| 208 | * Tuple object that can itself hold several LValues. |