Enum moore_svlog_syntax::ast::ExprData [−][src]
pub enum ExprData<'a> {
Show 30 variants
DummyExpr,
LiteralExpr(Lit),
IdentExpr(Spanned<Name>),
SysIdentExpr(Spanned<Name>),
ThisExpr,
DollarExpr,
NullExpr,
ScopeExpr(Box<Expr<'a>>, Spanned<Name>),
IndexExpr {
indexee: Box<Expr<'a>>,
index: Box<Expr<'a>>,
},
UnaryExpr {
op: Op,
expr: Box<Expr<'a>>,
postfix: bool,
},
BinaryExpr {
op: Op,
lhs: Box<Expr<'a>>,
rhs: Box<Expr<'a>>,
},
TernaryExpr {
cond: Box<Expr<'a>>,
true_expr: Box<Expr<'a>>,
false_expr: Box<Expr<'a>>,
},
AssignExpr {
op: AssignOp,
lhs: Box<Expr<'a>>,
rhs: Box<Expr<'a>>,
},
CallExpr(Box<Expr<'a>>, Vec<CallArg<'a>>),
TypeExpr(Box<Type<'a>>),
ConstructorCallExpr(Vec<CallArg<'a>>),
ClassNewExpr(Option<Box<Expr<'a>>>),
ArrayNewExpr(Box<Expr<'a>>, Option<Box<Expr<'a>>>),
EmptyQueueExpr,
StreamConcatExpr {
slice: Option<StreamConcatSlice<'a>>,
exprs: Vec<StreamExpr<'a>>,
},
ConcatExpr {
repeat: Option<Box<Expr<'a>>>,
exprs: Vec<Expr<'a>>,
},
MinTypMaxExpr {
min: Box<Expr<'a>>,
typ: Box<Expr<'a>>,
max: Box<Expr<'a>>,
},
RangeExpr {
mode: RangeMode,
lhs: Box<Expr<'a>>,
rhs: Box<Expr<'a>>,
},
MemberExpr {
expr: Box<Expr<'a>>,
name: Spanned<Name>,
},
PatternExpr(Vec<PatternField<'a>>),
InsideExpr(Box<Expr<'a>>, Vec<ValueRange<'a>>),
CastExpr(Type<'a>, Box<Expr<'a>>),
CastSizeExpr(Box<Expr<'a>>, Box<Expr<'a>>),
CastSignExpr(Spanned<TypeSign>, Box<Expr<'a>>),
BitsExpr {
name: Spanned<Name>,
arg: TypeOrExpr<'a>,
},
}Expand description
An expression.
Variants
LiteralExpr(Lit)Tuple Fields of LiteralExpr
0: LitAn identifier, like foo.
A system identifier, like $foo.
Fields of StreamConcatExpr
slice: Option<StreamConcatSlice<'a>>exprs: Vec<StreamExpr<'a>>A member expression, like a.b.
PatternExpr(Vec<PatternField<'a>>)Tuple Fields of PatternExpr
0: Vec<PatternField<'a>>InsideExpr(Box<Expr<'a>>, Vec<ValueRange<'a>>)Tuple Fields of InsideExpr
0: Box<Expr<'a>>1: Vec<ValueRange<'a>>A $bits call.
Fields of BitsExpr
name: Spanned<Name>arg: TypeOrExpr<'a>Trait Implementations
Get this node’s name, or None if it does not have one.
Describe this node for diagnostics in indefinite form, e.g. “entity”. Read more
Describe this node for diagnostics in definite form, e.g. “entity ‘top’”. Read more
Describe this node for diagnostics in indefinite form, e.g. “entity”.
Describe this node for diagnostics in definite form, e.g. “entity ‘top’”. Read more
Describe this node for diagnostics in indefinite form, e.g. “entity”.
Describe this node for diagnostics in definite form, e.g. “entity ‘top’”. Read more
Apply a function to each child node.
Apply a function to this node.
Auto Trait Implementations
impl<'a> !RefUnwindSafe for ExprData<'a>
impl<'a> !UnwindSafe for ExprData<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more