Enum rtlola_parser::ast::ExpressionKind [−][src]
pub enum ExpressionKind {
Show 16 variants
Lit(Literal),
Ident(Ident),
StreamAccess(Box<Expression>, StreamAccessKind),
Default(Box<Expression>, Box<Expression>),
Offset(Box<Expression>, Offset),
DiscreteWindowAggregation {
expr: Box<Expression>,
duration: Box<Expression>,
wait: bool,
aggregation: WindowOperation,
},
SlidingWindowAggregation {
expr: Box<Expression>,
duration: Box<Expression>,
wait: bool,
aggregation: WindowOperation,
},
Binary(BinOp, Box<Expression>, Box<Expression>),
Unary(UnOp, Box<Expression>),
Ite(Box<Expression>, Box<Expression>, Box<Expression>),
ParenthesizedExpression(Option<Box<Parenthesis>>, Box<Expression>, Option<Box<Parenthesis>>),
MissingExpression,
Tuple(Vec<Expression>),
Field(Box<Expression>, Ident),
Method(Box<Expression>, FunctionName, Vec<Type>, Vec<Expression>),
Function(FunctionName, Vec<Type>, Vec<Expression>),
}
Expand description
The Ast representation of a single expression
Variants
Lit(Literal)
A literal, e.g., 1
, "foo"
Tuple Fields of Lit
0: Literal
Ident(Ident)
An identifier, e.g., foo
Tuple Fields of Ident
0: Ident
StreamAccess(Box<Expression>, StreamAccessKind)
Accessing a stream
Tuple Fields of StreamAccess
0: Box<Expression>
1: StreamAccessKind
Default(Box<Expression>, Box<Expression>)
A default expression, e.g., a.defaults(to: 0)
Tuple Fields of Default
0: Box<Expression>
1: Box<Expression>
Offset(Box<Expression>, Offset)
An offset expression, e.g., a.offset(by: -1)
Tuple Fields of Offset
0: Box<Expression>
1: Offset
A discrete window with a duration duration
as an integer constant and aggregation function aggregation
Fields of DiscreteWindowAggregation
expr: Box<Expression>
The accesses stream
duration: Box<Expression>
The duration of the window
wait: bool
Flag to mark that the window returns only a value if the complete duration has passed
aggregation: WindowOperation
The aggregation function
A sliding window with duration duration
and aggregation function aggregation
Fields of SlidingWindowAggregation
expr: Box<Expression>
The accesses stream
duration: Box<Expression>
The duration of the window
wait: bool
Flag to mark that the window returns only a value if the complete duration has passed
aggregation: WindowOperation
The aggregation function
Binary(BinOp, Box<Expression>, Box<Expression>)
A binary operation (For example: a + b
, a * b
)
Tuple Fields of Binary
Unary(UnOp, Box<Expression>)
A unary operation (For example: !x
, *x
)
Tuple Fields of Unary
0: UnOp
1: Box<Expression>
Ite(Box<Expression>, Box<Expression>, Box<Expression>)
An if-then-else expression
Tuple Fields of Ite
ParenthesizedExpression(Option<Box<Parenthesis>>, Box<Expression>, Option<Box<Parenthesis>>)
An expression enveloped in parentheses
Tuple Fields of ParenthesizedExpression
An expression was expected, e.g., after an operator like *
Tuple(Vec<Expression>)
A tuple expression
Tuple Fields of Tuple
0: Vec<Expression>
Field(Box<Expression>, Ident)
Access of a named (obj.foo
) or unnamed (obj.0
) struct field
Tuple Fields of Field
0: Box<Expression>
1: Ident
Method(Box<Expression>, FunctionName, Vec<Type>, Vec<Expression>)
A method call, e.g., foo.bar(-1)
Tuple Fields of Method
Function(FunctionName, Vec<Type>, Vec<Expression>)
A function call
Tuple Fields of Function
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for ExpressionKind
impl Send for ExpressionKind
impl Sync for ExpressionKind
impl Unpin for ExpressionKind
impl UnwindSafe for ExpressionKind
Blanket Implementations
Mutably borrows from an owned value. Read more