macro_rules! custom_keywords {
($($name:ident),+ $(,)?) => {$(
syn::custom_keyword!($name);
impl $crate::Spanned for $name {
#[inline]
fn span(&self) -> ::proc_macro2::Span {
self.span
}
#[inline]
fn set_span(&mut self, span: ::proc_macro2::Span) {
self.span = span;
}
}
)+};
}
#[rustfmt::skip]
custom_keywords!(
memory,
storage,
calldata,
transient,
external,
public,
internal,
private,
pure,
view,
constant,
payable,
immutable,
contract,
interface,
library,
error,
panic,
event,
indexed,
anonymous,
constructor,
function,
fallback,
receive,
modifier,
returns,
tuple,
mapping,
import,
from,
pragma,
solidity,
abicoder,
experimental,
using,
global,
unicode,
hex,
wei,
gwei,
ether,
seconds,
minutes,
hours,
days,
weeks,
years,
assembly,
catch,
delete,
emit,
is,
new,
revert,
unchecked,
switch,
case,
default,
leave,
stop,
add,
sub,
mul,
div,
sdiv,
smod,
exp,
not,
lt,
gt,
slt,
sgt,
eq,
iszero,
and,
or,
xor,
byte,
shl,
shr,
sar,
addmod,
mulmod,
signextend,
keccak256,
pop,
mload,
mstore,
mstore8,
sload,
sstore,
msize,
gas,
address,
balance,
selfbalance,
caller,
callvalue,
calldataload,
calldatasize,
calldatacopy,
extcodesize,
extcodecopy,
returndatasize,
returndatacopy,
extcodehash,
create,
create2,
call,
callcode,
delegatecall,
staticcall,
selfdestruct,
invalid,
log0,
log1,
log2,
log3,
log4,
chainid,
origin,
gasprice,
blockhash,
coinbase,
timestamp,
number,
difficulty,
prevrandao,
gaslimit,
basefee,
);