Skip to content

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.