6.3. Yul Keywords#
Syntax#
(* Reserved until 0.7.1 *)
YUL_ABSTRACT_KEYWORD = "abstract";
YUL_ADD_KEYWORD = "add";
YUL_ADD_MOD_KEYWORD = "addmod";
YUL_ADDRESS_KEYWORD = "address";
(* Reserved until 0.7.1 *)
YUL_AFTER_KEYWORD = "after";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_ALIAS_KEYWORD = "alias";
YUL_AND_KEYWORD = "and";
(* Reserved until 0.7.1 *)
YUL_ANONYMOUS_KEYWORD = "anonymous";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_APPLY_KEYWORD = "apply";
(* Reserved until 0.7.1 *)
YUL_AS_KEYWORD = "as";
(* Reserved until 0.7.1 *)
YUL_ASSEMBLY_KEYWORD = "assembly";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_AUTO_KEYWORD = "auto";
YUL_BALANCE_KEYWORD = "balance";
(* Introduced in 0.8.7 *)
(* Reserved in 0.8.7 *)
YUL_BASE_FEE_KEYWORD = "basefee";
(* Introduced in 0.8.24 *)
(* Reserved in 0.8.25 *)
YUL_BLOB_BASE_FEE_KEYWORD = "blobbasefee";
(* Introduced in 0.8.24 *)
(* Reserved in 0.8.25 *)
YUL_BLOB_HASH_KEYWORD = "blobhash";
YUL_BLOCK_HASH_KEYWORD = "blockhash";
(* Reserved until 0.5.10 *)
YUL_BOOL_KEYWORD = "bool";
YUL_BREAK_KEYWORD = "break";
YUL_BYTE_KEYWORD = "byte";
(* Reserved until 0.7.1 *)
YUL_BYTES_KEYWORD = "bytes" ("1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "13" | "14" | "15" | "16" | "17" | "18" | "19" | "20" | "21" | "22" | "23" | "24" | "25" | "26" | "27" | "28" | "29" | "30" | "31" | "32")?;
YUL_CALL_CODE_KEYWORD = "callcode";
YUL_CALL_DATA_COPY_KEYWORD = "calldatacopy";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_CALL_DATA_KEYWORD = "calldata";
YUL_CALL_DATA_LOAD_KEYWORD = "calldataload";
YUL_CALL_DATA_SIZE_KEYWORD = "calldatasize";
YUL_CALLER_KEYWORD = "caller";
YUL_CALL_KEYWORD = "call";
YUL_CALL_VALUE_KEYWORD = "callvalue";
YUL_CASE_KEYWORD = "case";
(* Reserved until 0.7.1 *)
YUL_CATCH_KEYWORD = "catch";
(* Reserved in 0.5.12 *)
YUL_CHAIN_ID_KEYWORD = "chainid";
YUL_COIN_BASE_KEYWORD = "coinbase";
(* Reserved until 0.7.1 *)
YUL_CONSTANT_KEYWORD = "constant";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_CONSTRUCTOR_KEYWORD = "constructor";
YUL_CONTINUE_KEYWORD = "continue";
(* Reserved until 0.7.1 *)
YUL_CONTRACT_KEYWORD = "contract";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_COPY_OF_KEYWORD = "copyof";
YUL_CREATE_KEYWORD = "create";
(* Introduced in 0.4.12 *)
(* Reserved in 0.4.12 *)
YUL_CREATE_2_KEYWORD = "create2";
(* Reserved until 0.7.1 *)
YUL_DAYS_KEYWORD = "days";
YUL_DEFAULT_KEYWORD = "default";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_DEFINE_KEYWORD = "define";
YUL_DELEGATE_CALL_KEYWORD = "delegatecall";
(* Reserved until 0.7.1 *)
YUL_DELETE_KEYWORD = "delete";
(* Deprecated in 0.8.18 *)
YUL_DIFFICULTY_KEYWORD = "difficulty";
YUL_DIV_KEYWORD = "div";
(* Reserved until 0.7.1 *)
YUL_DO_KEYWORD = "do";
(* Reserved until 0.7.1 *)
YUL_ELSE_KEYWORD = "else";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_EMIT_KEYWORD = "emit";
(* Reserved until 0.7.1 *)
YUL_ENUM_KEYWORD = "enum";
YUL_EQ_KEYWORD = "eq";
(* Reserved until 0.7.1 *)
YUL_ETHER_KEYWORD = "ether";
(* Reserved until 0.7.1 *)
YUL_EVENT_KEYWORD = "event";
YUL_EXP_KEYWORD = "exp";
YUL_EXT_CODE_COPY_KEYWORD = "extcodecopy";
(* Introduced in 0.5.0 *)
(* Reserved in 0.5.0 *)
YUL_EXT_CODE_HASH_KEYWORD = "extcodehash";
YUL_EXT_CODE_SIZE_KEYWORD = "extcodesize";
(* Reserved until 0.7.1 *)
YUL_EXTERNAL_KEYWORD = "external";
(* Reserved from 0.6.0 until 0.7.1 *)
YUL_FALLBACK_KEYWORD = "fallback";
YUL_FALSE_KEYWORD = "false";
(* Reserved until 0.7.1 *)
YUL_FINAL_KEYWORD = "final";
(* Reserved until 0.7.0 *)
YUL_FINNEY_KEYWORD = "finney";
(* Reserved until 0.7.1 *)
YUL_FIXED_KEYWORD = "fixed";
(* Reserved until 0.7.1 *)
YUL_FIXED_KEYWORD = "fixed" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176") "x" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80");
(* Reserved until 0.7.1 *)
YUL_FIXED_KEYWORD = "fixed" ("184x8" | "184x16" | "184x24" | "184x32" | "184x40" | "184x48" | "184x56" | "184x64" | "184x72" | "192x8" | "192x16" | "192x24" | "192x32" | "192x40" | "192x48" | "192x56" | "192x64" | "200x8" | "200x16" | "200x24" | "200x32" | "200x40" | "200x48" | "200x56" | "208x8" | "208x16" | "208x24" | "208x32" | "208x40" | "208x48" | "216x8" | "216x16" | "216x24" | "216x32" | "216x40" | "224x8" | "224x16" | "224x24" | "224x32" | "232x8" | "232x16" | "232x24" | "240x8" | "240x16" | "248x8");
(* Reserved from 0.4.14 until 0.7.1 *)
YUL_FIXED_KEYWORD = "fixed" ("184x80" | "192x72" | "192x80" | "200x64" | "200x72" | "200x80" | "208x56" | "208x64" | "208x72" | "208x80" | "216x48" | "216x56" | "216x64" | "216x72" | "216x80" | "224x40" | "224x48" | "224x56" | "224x64" | "224x72" | "224x80" | "232x32" | "232x40" | "232x48" | "232x56" | "232x64" | "232x72" | "232x80" | "240x24" | "240x32" | "240x40" | "240x48" | "240x56" | "240x64" | "240x72" | "240x80" | "248x16" | "248x24" | "248x32" | "248x40" | "248x48" | "248x56" | "248x64" | "248x72" | "248x80" | "256x8" | "256x16" | "256x24" | "256x32" | "256x40" | "256x48" | "256x56" | "256x64" | "256x72" | "256x80");
(* Reserved from 0.4.14 until 0.7.1 *)
YUL_FIXED_KEYWORD = "fixed" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256") "x" ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "9" | "10" | "11" | "12" | "13" | "14" | "15" | "17" | "18" | "19" | "20" | "21" | "22" | "23" | "25" | "26" | "27" | "28" | "29" | "30" | "31" | "33" | "34" | "35" | "36" | "37" | "38" | "39" | "41" | "42" | "43" | "44" | "45" | "46" | "47" | "49" | "50" | "51" | "52" | "53" | "54" | "55" | "57" | "58" | "59" | "60" | "61" | "62" | "63" | "65" | "66" | "67" | "68" | "69" | "70" | "71" | "73" | "74" | "75" | "76" | "77" | "78" | "79");
YUL_FOR_KEYWORD = "for";
YUL_FUNCTION_KEYWORD = "function";
YUL_GAS_KEYWORD = "gas";
YUL_GAS_LIMIT_KEYWORD = "gaslimit";
YUL_GAS_PRICE_KEYWORD = "gasprice";
YUL_GT_KEYWORD = "gt";
(* Reserved from 0.7.0 until 0.7.1 *)
YUL_GWEI_KEYWORD = "gwei";
YUL_HEX_KEYWORD = "hex";
(* Reserved until 0.7.1 *)
YUL_HOURS_KEYWORD = "hours";
YUL_IF_KEYWORD = "if";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_IMMUTABLE_KEYWORD = "immutable";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_IMPLEMENTS_KEYWORD = "implements";
(* Reserved until 0.7.1 *)
YUL_IMPORT_KEYWORD = "import";
(* Reserved until 0.7.1 *)
YUL_INDEXED_KEYWORD = "indexed";
(* Reserved until 0.6.8 *)
YUL_IN_KEYWORD = "in";
(* Reserved until 0.7.1 *)
YUL_INLINE_KEYWORD = "inline";
(* Reserved until 0.7.1 *)
YUL_INTERFACE_KEYWORD = "interface";
(* Reserved until 0.7.1 *)
YUL_INTERNAL_KEYWORD = "internal";
(* Reserved until 0.7.1 *)
YUL_INT_KEYWORD = "int" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256")?;
YUL_INVALID_KEYWORD = "invalid";
(* Reserved until 0.7.1 *)
YUL_IS_KEYWORD = "is";
YUL_IS_ZERO_KEYWORD = "iszero";
(* Introduced in 0.4.12 *)
(* Reserved in 0.4.12 *)
YUL_KECCAK_256_KEYWORD = "keccak256";
(* Introduced in 0.6.0 *)
(* Reserved in 0.7.1 *)
YUL_LEAVE_KEYWORD = "leave";
YUL_LET_KEYWORD = "let";
(* Reserved until 0.7.1 *)
YUL_LIBRARY_KEYWORD = "library";
YUL_LOG_0_KEYWORD = "log0";
YUL_LOG_1_KEYWORD = "log1";
YUL_LOG_2_KEYWORD = "log2";
YUL_LOG_3_KEYWORD = "log3";
YUL_LOG_4_KEYWORD = "log4";
YUL_LT_KEYWORD = "lt";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_MACRO_KEYWORD = "macro";
(* Reserved until 0.7.1 *)
YUL_MAPPING_KEYWORD = "mapping";
(* Reserved until 0.7.1 *)
YUL_MATCH_KEYWORD = "match";
(* Reserved until 0.7.1 *)
YUL_MEMORY_KEYWORD = "memory";
(* Reserved until 0.7.1 *)
YUL_MINUTES_KEYWORD = "minutes";
(* Introduced in 0.8.24 *)
(* Reserved in 0.8.25 *)
YUL_M_COPY_KEYWORD = "mcopy";
YUL_M_LOAD_KEYWORD = "mload";
YUL_MOD_KEYWORD = "mod";
(* Reserved until 0.7.1 *)
YUL_MODIFIER_KEYWORD = "modifier";
YUL_M_SIZE_KEYWORD = "msize";
YUL_M_STORE_KEYWORD = "mstore";
YUL_M_STORE_8_KEYWORD = "mstore8";
YUL_MUL_KEYWORD = "mul";
YUL_MUL_MOD_KEYWORD = "mulmod";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_MUTABLE_KEYWORD = "mutable";
(* Reserved until 0.7.1 *)
YUL_NEW_KEYWORD = "new";
YUL_NOT_KEYWORD = "not";
(* Reserved until 0.7.1 *)
YUL_NULL_KEYWORD = "null";
YUL_NUMBER_KEYWORD = "number";
(* Reserved until 0.7.1 *)
YUL_OF_KEYWORD = "of";
YUL_OR_KEYWORD = "or";
YUL_ORIGIN_KEYWORD = "origin";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_OVERRIDE_KEYWORD = "override";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_PARTIAL_KEYWORD = "partial";
(* Reserved until 0.7.1 *)
YUL_PAYABLE_KEYWORD = "payable";
YUL_POP_KEYWORD = "pop";
(* Reserved until 0.7.1 *)
YUL_PRAGMA_KEYWORD = "pragma";
(* Introduced in 0.8.18 *)
(* Reserved in 0.8.18 *)
YUL_PREV_RANDAO_KEYWORD = "prevrandao";
(* Reserved until 0.7.1 *)
YUL_PRIVATE_KEYWORD = "private";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_PROMISE_KEYWORD = "promise";
(* Reserved until 0.7.1 *)
YUL_PUBLIC_KEYWORD = "public";
(* Reserved until 0.7.1 *)
YUL_PURE_KEYWORD = "pure";
(* Reserved from 0.6.0 until 0.7.1 *)
YUL_RECEIVE_KEYWORD = "receive";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_REFERENCE_KEYWORD = "reference";
(* Reserved until 0.7.1 *)
YUL_RELOCATABLE_KEYWORD = "relocatable";
(* Introduced in 0.4.12 *)
(* Reserved in 0.4.12 *)
YUL_RETURN_DATA_COPY_KEYWORD = "returndatacopy";
(* Introduced in 0.4.12 *)
(* Reserved in 0.4.12 *)
YUL_RETURN_DATA_SIZE_KEYWORD = "returndatasize";
YUL_RETURN_KEYWORD = "return";
(* Reserved until 0.7.1 *)
YUL_RETURNS_KEYWORD = "returns";
YUL_REVERT_KEYWORD = "revert";
(* Reserved in 0.4.21 *)
YUL_SAR_KEYWORD = "sar";
YUL_S_DIV_KEYWORD = "sdiv";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_SEALED_KEYWORD = "sealed";
(* Reserved until 0.7.1 *)
YUL_SECONDS_KEYWORD = "seconds";
(* Reserved in 0.5.12 *)
YUL_SELF_BALANCE_KEYWORD = "selfbalance";
YUL_SELF_DESTRUCT_KEYWORD = "selfdestruct";
YUL_SGT_KEYWORD = "sgt";
(* Deprecated in 0.5.0 *)
(* Reserved until 0.5.0 *)
YUL_SHA_3_KEYWORD = "sha3";
(* Reserved in 0.4.21 *)
YUL_SHL_KEYWORD = "shl";
(* Reserved in 0.4.21 *)
YUL_SHR_KEYWORD = "shr";
YUL_SIGN_EXTEND_KEYWORD = "signextend";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_SIZE_OF_KEYWORD = "sizeof";
YUL_S_LOAD_KEYWORD = "sload";
YUL_SLT_KEYWORD = "slt";
YUL_S_MOD_KEYWORD = "smod";
YUL_S_STORE_KEYWORD = "sstore";
(* Introduced in 0.4.12 *)
(* Reserved in 0.4.12 *)
YUL_STATIC_CALL_KEYWORD = "staticcall";
(* Reserved until 0.7.1 *)
YUL_STATIC_KEYWORD = "static";
YUL_STOP_KEYWORD = "stop";
(* Reserved until 0.7.1 *)
YUL_STORAGE_KEYWORD = "storage";
(* Reserved until 0.7.1 *)
YUL_STRING_KEYWORD = "string";
(* Reserved until 0.7.1 *)
YUL_STRUCT_KEYWORD = "struct";
YUL_SUB_KEYWORD = "sub";
(* Deprecated in 0.5.0 *)
(* Reserved until 0.5.0 *)
YUL_SUICIDE_KEYWORD = "suicide";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_SUPPORTS_KEYWORD = "supports";
YUL_SWITCH_KEYWORD = "switch";
(* Reserved until 0.7.0 *)
YUL_SZABO_KEYWORD = "szabo";
YUL_TIMESTAMP_KEYWORD = "timestamp";
(* Reserved until 0.7.1 *)
YUL_THROW_KEYWORD = "throw";
(* Introduced in 0.8.24 *)
(* Reserved in 0.8.25 *)
YUL_T_LOAD_KEYWORD = "tload";
YUL_TRUE_KEYWORD = "true";
(* Introduced in 0.8.24 *)
(* Reserved in 0.8.25 *)
YUL_T_STORE_KEYWORD = "tstore";
(* Reserved until 0.7.1 *)
YUL_TRY_KEYWORD = "try";
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_TYPE_DEF_KEYWORD = "typedef";
(* Reserved until 0.7.1 *)
YUL_TYPE_KEYWORD = "type";
(* Reserved until 0.7.1 *)
YUL_TYPE_OF_KEYWORD = "typeof";
(* Reserved until 0.7.1 *)
YUL_UFIXED_KEYWORD = "ufixed";
(* Reserved until 0.7.1 *)
YUL_UFIXED_KEYWORD = "ufixed" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176") "x" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80");
(* Reserved until 0.7.1 *)
YUL_UFIXED_KEYWORD = "ufixed" ("184x8" | "184x16" | "184x24" | "184x32" | "184x40" | "184x48" | "184x56" | "184x64" | "184x72" | "192x8" | "192x16" | "192x24" | "192x32" | "192x40" | "192x48" | "192x56" | "192x64" | "200x8" | "200x16" | "200x24" | "200x32" | "200x40" | "200x48" | "200x56" | "208x8" | "208x16" | "208x24" | "208x32" | "208x40" | "208x48" | "216x8" | "216x16" | "216x24" | "216x32" | "216x40" | "224x8" | "224x16" | "224x24" | "224x32" | "232x8" | "232x16" | "232x24" | "240x8" | "240x16" | "248x8");
(* Reserved from 0.4.14 until 0.7.1 *)
YUL_UFIXED_KEYWORD = "ufixed" ("184x80" | "192x72" | "192x80" | "200x64" | "200x72" | "200x80" | "208x56" | "208x64" | "208x72" | "208x80" | "216x48" | "216x56" | "216x64" | "216x72" | "216x80" | "224x40" | "224x48" | "224x56" | "224x64" | "224x72" | "224x80" | "232x32" | "232x40" | "232x48" | "232x56" | "232x64" | "232x72" | "232x80" | "240x24" | "240x32" | "240x40" | "240x48" | "240x56" | "240x64" | "240x72" | "240x80" | "248x16" | "248x24" | "248x32" | "248x40" | "248x48" | "248x56" | "248x64" | "248x72" | "248x80" | "256x8" | "256x16" | "256x24" | "256x32" | "256x40" | "256x48" | "256x56" | "256x64" | "256x72" | "256x80");
(* Reserved from 0.4.14 until 0.7.1 *)
YUL_UFIXED_KEYWORD = "ufixed" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256") "x" ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "9" | "10" | "11" | "12" | "13" | "14" | "15" | "17" | "18" | "19" | "20" | "21" | "22" | "23" | "25" | "26" | "27" | "28" | "29" | "30" | "31" | "33" | "34" | "35" | "36" | "37" | "38" | "39" | "41" | "42" | "43" | "44" | "45" | "46" | "47" | "49" | "50" | "51" | "52" | "53" | "54" | "55" | "57" | "58" | "59" | "60" | "61" | "62" | "63" | "65" | "66" | "67" | "68" | "69" | "70" | "71" | "73" | "74" | "75" | "76" | "77" | "78" | "79");
(* Reserved until 0.7.1 *)
YUL_UINT_KEYWORD = "uint" ("8" | "16" | "24" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256")?;
(* Reserved from 0.5.0 until 0.7.1 *)
YUL_UNCHECKED_KEYWORD = "unchecked";
(* Reserved until 0.7.1 *)
YUL_USING_KEYWORD = "using";
(* Reserved until 0.6.5 *)
YUL_VAR_KEYWORD = "var";
(* Reserved until 0.7.1 *)
YUL_VIEW_KEYWORD = "view";
(* Reserved from 0.6.0 until 0.7.1 *)
YUL_VIRTUAL_KEYWORD = "virtual";
(* Reserved until 0.7.1 *)
YUL_WEEKS_KEYWORD = "weeks";
(* Reserved until 0.7.1 *)
YUL_WEI_KEYWORD = "wei";
(* Reserved until 0.7.1 *)
YUL_WHILE_KEYWORD = "while";
(* Reserved until 0.7.1 *)
YUL_YEARS_KEYWORD = "years";
YUL_XOR_KEYWORD = "xor";
Documentation#
Note
This section is under construction. You are more than welcome to contribute suggestions to our GitHub repository.