Sen API
Sen Libraries
Loading...
Searching...
No Matches
stl_expression.h
Go to the documentation of this file.
1// === stl_expression.h ================================================================================================
2// Sen Infrastructure
3// Released under the Apache License v2.0 (SPDX-License-Identifier Apache-2.0).
4// See the LICENSE.txt file for more information.
5// © Airbus SAS, Airbus Helicopters, and Airbus Defence and Space SAU/GmbH/SAS.
6// =====================================================================================================================
7
8#ifndef SEN_CORE_LANG_STL_EXPRESSION_H
9#define SEN_CORE_LANG_STL_EXPRESSION_H
10
12
13namespace sen::lang
14{
15
18
19struct StlExpr;
20
27
30{
32 std::shared_ptr<StlExpr> expr;
33};
34
49
52{
53 std::shared_ptr<StlExpr> lhs;
55 std::shared_ptr<StlExpr> rhs;
56};
57
63
66{
67 std::shared_ptr<StlExpr> expr;
68};
69
76
79{
80 std::shared_ptr<StlExpr> lhs;
82 std::shared_ptr<StlExpr> rhs;
83};
84
87{
88 std::vector<StlToken> path;
89 std::string name;
90};
91
94{
95 std::shared_ptr<StlExpr> lhs;
96 std::shared_ptr<StlExpr> min;
97 std::shared_ptr<StlExpr> max;
98 bool notBetween = false;
99};
100
103{
104 std::shared_ptr<StlExpr> lhs;
105 std::vector<std::shared_ptr<StlExpr>> set;
106 bool notIn = false;
107};
108
110using StlExprVal = std::variant<std::monostate,
118 StlInExpr>;
119
122{
124};
125
127
128} // namespace sen::lang
129
130#endif // SEN_CORE_LANG_STL_EXPRESSION_H
bool notBetween
Definition stl_expression.h:98
std::shared_ptr< StlExpr > lhs
Definition stl_expression.h:95
std::shared_ptr< StlExpr > expr
Definition stl_expression.h:67
std::shared_ptr< StlExpr > expr
Definition stl_expression.h:32
std::shared_ptr< StlExpr > lhs
Definition stl_expression.h:80
std::shared_ptr< StlExpr > lhs
Definition stl_expression.h:104
std::shared_ptr< StlExpr > min
Definition stl_expression.h:96
StlExprVal value
Definition stl_expression.h:123
StlToken value
Definition stl_expression.h:61
std::shared_ptr< StlExpr > lhs
Definition stl_expression.h:53
StlUnaryOperator op
Definition stl_expression.h:31
std::shared_ptr< StlExpr > max
Definition stl_expression.h:97
std::shared_ptr< StlExpr > rhs
Definition stl_expression.h:82
std::shared_ptr< StlExpr > rhs
Definition stl_expression.h:55
StlLogicalOperator op
Definition stl_expression.h:81
std::vector< StlToken > path
Definition stl_expression.h:88
std::vector< std::shared_ptr< StlExpr > > set
Definition stl_expression.h:105
std::string name
Definition stl_expression.h:89
StlBinaryOperator op
Definition stl_expression.h:54
bool notIn
Definition stl_expression.h:106
std::variant< std::monostate, StlLiteralExpr, StlUnaryExpr, StlBinaryExpr, StlGroupingExpr, StlLogicalExpr, StlVariableExpr, StlBetweenExpr, StlInExpr > StlExprVal
A variant supporting all expressions.
Definition stl_expression.h:110
StlBinaryOperator
Kinds of binary operations.
Definition stl_expression.h:37
StlLogicalOperator
Logic.
Definition stl_expression.h:72
StlUnaryOperator
An operator on a single term.
Definition stl_expression.h:23
@ ge
Definition stl_expression.h:45
@ multiply
Definition stl_expression.h:40
@ gt
Definition stl_expression.h:44
@ add
Definition stl_expression.h:38
@ divide
Definition stl_expression.h:41
@ subtract
Definition stl_expression.h:39
@ ne
Definition stl_expression.h:47
@ le
Definition stl_expression.h:43
@ lt
Definition stl_expression.h:42
@ eq
Definition stl_expression.h:46
@ logicalOr
Definition stl_expression.h:74
@ logicalAnd
Definition stl_expression.h:73
@ negate
Definition stl_expression.h:25
@ logicalNot
Definition stl_expression.h:24
A BETWEEN expression.
Definition stl_expression.h:94
Binary expression.
Definition stl_expression.h:52
Wrapper for expression values.
Definition stl_expression.h:122
Groups.
Definition stl_expression.h:66
A IN expression.
Definition stl_expression.h:103
Literals.
Definition stl_expression.h:60
Binary logical operation.
Definition stl_expression.h:79
Unary operation.
Definition stl_expression.h:30
A variable.
Definition stl_expression.h:87
Definition code_location.h:14
Definition stl_token.h:98