Enum syn_solidity::Expr
source · pub enum Expr {
Show 18 variants
Array(ExprArray),
Binary(ExprBinary),
Call(ExprCall),
CallOptions(ExprCallOptions),
Delete(ExprDelete),
Ident(SolIdent),
Index(ExprIndex),
Lit(Lit),
LitDenominated(LitDenominated),
Member(ExprMember),
New(ExprNew),
Payable(ExprPayable),
Postfix(ExprPostfix),
Ternary(ExprTernary),
Tuple(ExprTuple),
Type(Type),
TypeCall(ExprTypeCall),
Unary(ExprUnary),
}Expand description
An expression.
Solidity reference: https://docs.soliditylang.org/en/latest/grammar.html#a4.SolidityParser.expression
Variants§
Array(ExprArray)
An array literal expression: [a, b, c, d].
Binary(ExprBinary)
A binary operation: a + b, a += b.
Call(ExprCall)
A function call expression: foo(42) or foo({ bar: 42 }).
CallOptions(ExprCallOptions)
Function call options: foo.bar{ value: 1, gas: 2 }.
Delete(ExprDelete)
A unary delete expression: delete vector.
Ident(SolIdent)
An identifier: foo.
Index(ExprIndex)
A square bracketed indexing expression: vector[2].
Lit(Lit)
A literal: hex"1234".
LitDenominated(LitDenominated)
A number literal with a sub-denomination: 1 ether.
Member(ExprMember)
Access of a named member: obj.k.
New(ExprNew)
A new expression: new Contract.
Payable(ExprPayable)
A payable expression: payable(address(0x...)).
Postfix(ExprPostfix)
A postfix unary expression: foo++.
Ternary(ExprTernary)
A ternary (AKA conditional) expression: foo ? bar : baz.
Tuple(ExprTuple)
A tuple expression: (a, b, c, d).
Type(Type)
A type name.
Cannot be Custom, as custom identifiers are parsed as Ident instead.
TypeCall(ExprTypeCall)
A type() expression: type(uint256)
Unary(ExprUnary)
A unary operation: !x, -x.