Sen API
Sen Libraries
Loading...
Searching...
No Matches
stl_statement.h
Go to the documentation of this file.
1// === stl_statement.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_STATEMENT_H
9#define SEN_CORE_LANG_STL_STATEMENT_H
10
11// sen
14
15// std
16#include <memory>
17#include <optional>
18
19namespace sen::lang
20{
21
24
29
31{
32 std::vector<StlToken> path;
33};
34
40
41using StlAttributeList = std::vector<StlAttribute>;
42
44{
45 std::vector<StlToken> path;
46 std::string qualifiedName;
47};
48
55
57{
59 std::vector<StlToken> description;
60 std::optional<StlTypeNameStatement> parentStructName;
61 std::vector<StlStructFieldStatement> fields;
62};
63
70
72{
74 std::vector<StlToken> description;
76 std::vector<StlEnumeratorStatement> enumerators;
77};
78
80{
82 std::vector<StlToken> description;
83};
84
86{
88 std::vector<StlToken> description;
89 std::vector<StlVariantElement> elements;
90};
91
93{
95 std::vector<StlToken> description;
98 std::optional<StlAttributeList> attributes;
99};
100
102{
104 std::vector<StlToken> description;
106 std::optional<StlToken> maxSize;
107 std::optional<StlAttributeList> attributes;
108};
109
111{
113 std::vector<StlToken> description;
116 std::optional<StlAttributeList> attributes;
117};
118
125
132
139
148
157
159{
161 std::vector<StlToken> description;
163 std::vector<StlArgStatement> arguments;
164};
165
167{
169 std::vector<StlToken> description;
170 std::vector<StlVarStatement> properties;
171 std::vector<StlFunctionStatement> functions;
172 std::vector<StlEventStatement> events;
173};
174
176{
177 bool isAbstract = false;
180 std::vector<StlTypeNameStatement> implements;
181};
182
183using StlStatement = std::variant<std::monostate,
196
202
204{
205 std::optional<StlTypeNameStatement> type;
207 std::shared_ptr<StlExpr> condition;
208};
209
211
212} // namespace sen::lang
213
214#endif // SEN_CORE_LANG_STL_STATEMENT_H
std::vector< StlStructFieldStatement > fields
Definition stl_statement.h:61
std::vector< StlArgStatement > arguments
Definition stl_statement.h:155
StlToken identifier
Definition stl_statement.h:121
StlToken identifier
Definition stl_statement.h:87
StlToken defaultValue
Definition stl_statement.h:143
std::vector< StlFunctionStatement > functions
Definition stl_statement.h:171
StlToken identifier
Definition stl_statement.h:103
std::vector< StlToken > description
Definition stl_statement.h:67
std::vector< StlToken > description
Definition stl_statement.h:130
std::vector< StlEnumeratorStatement > enumerators
Definition stl_statement.h:76
std::vector< StlToken > description
Definition stl_statement.h:95
std::vector< StlToken > description
Definition stl_statement.h:137
std::vector< StlToken > description
Definition stl_statement.h:82
std::vector< StlVarStatement > properties
Definition stl_statement.h:170
std::vector< StlToken > description
Definition stl_statement.h:74
std::optional< StlAttributeList > attributes
Definition stl_statement.h:107
StlTypeNameStatement typeName
Definition stl_statement.h:136
StlToken identifier
Definition stl_statement.h:58
StlTypeNameStatement typeName
Definition stl_statement.h:122
StlAttributeList attributes
Definition stl_statement.h:162
bool isAbstract
Definition stl_statement.h:177
StlTypeNameStatement elementTypeName
Definition stl_statement.h:114
StlToken identifier
Definition stl_statement.h:168
StlToken identifier
Definition stl_statement.h:160
StlTypeNameStatement storageTypeName
Definition stl_statement.h:75
std::optional< StlTypeNameStatement > parentStructName
Definition stl_statement.h:60
StlToken identifier
Definition stl_statement.h:151
StlTypeNameStatement extends
Definition stl_statement.h:179
StlTypeNameStatement typeName
Definition stl_statement.h:81
StlToken unitName
Definition stl_statement.h:97
StlToken identifier
Definition stl_statement.h:135
std::vector< StlVariantElement > elements
Definition stl_statement.h:89
std::vector< StlArgStatement > arguments
Definition stl_statement.h:163
std::vector< StlToken > description
Definition stl_statement.h:169
std::vector< StlToken > description
Definition stl_statement.h:152
std::vector< StlToken > description
Definition stl_statement.h:161
std::vector< StlToken > description
Definition stl_statement.h:113
std::vector< StlToken > description
Definition stl_statement.h:104
StlToken identifier
Definition stl_statement.h:73
std::vector< StlToken > path
Definition stl_statement.h:45
StlToken name
Definition stl_statement.h:37
std::optional< StlTypeNameStatement > type
Definition stl_statement.h:205
StlTypeNameStatement typeName
Definition stl_statement.h:146
std::vector< StlToken > description
Definition stl_statement.h:123
std::optional< StlAttributeList > attributes
Definition stl_statement.h:116
StlToken session
Definition stl_statement.h:199
std::string qualifiedName
Definition stl_statement.h:46
StlAttributeList attributes
Definition stl_statement.h:145
StlToken identifier
Definition stl_statement.h:142
StlToken identifier
Definition stl_statement.h:66
StlTypeNameStatement returnTypeName
Definition stl_statement.h:154
StlToken identifier
Definition stl_statement.h:52
std::shared_ptr< StlExpr > condition
Definition stl_statement.h:207
std::vector< StlToken > description
Definition stl_statement.h:88
StlToken value
Definition stl_statement.h:38
std::vector< StlToken > path
Definition stl_statement.h:32
std::optional< StlToken > maxSize
Definition stl_statement.h:106
StlToken identifier
Definition stl_statement.h:112
StlToken bus
Definition stl_statement.h:200
StlTypeNameStatement typeName
Definition stl_statement.h:129
StlTypeNameStatement valueTypeName
Definition stl_statement.h:96
std::vector< StlEventStatement > events
Definition stl_statement.h:172
std::vector< StlToken > description
Definition stl_statement.h:53
StlTypeNameStatement elementTypeName
Definition stl_statement.h:105
StlToken identifier
Definition stl_statement.h:94
std::optional< StlAttributeList > attributes
Definition stl_statement.h:98
StlAttributeList attributes
Definition stl_statement.h:153
StlTypeNameStatement typeName
Definition stl_statement.h:51
StlToken fileName
Definition stl_statement.h:27
StlAttributeList attributes
Definition stl_statement.h:68
StlToken size
Definition stl_statement.h:115
std::vector< StlToken > description
Definition stl_statement.h:144
StlInterfaceStatement members
Definition stl_statement.h:178
std::vector< StlTypeNameStatement > implements
Definition stl_statement.h:180
BusNameStatement bus
Definition stl_statement.h:206
StlToken identifier
Definition stl_statement.h:128
std::vector< StlToken > description
Definition stl_statement.h:59
std::variant< std::monostate, StlImportStatement, StlPackageStatement, StlStructStatement, StlEnumStatement, StlVariantStatement, StlSequenceStatement, StlArrayStatement, StlQuantityStatement, StlTypeAliasStatement, StlOptionalTypeStatement, StlClassStatement, StlInterfaceStatement > StlStatement
Definition stl_statement.h:183
std::vector< StlAttribute > StlAttributeList
Definition stl_statement.h:41
Definition stl_statement.h:198
Definition stl_statement.h:204
Definition stl_statement.h:134
Definition stl_statement.h:111
Definition stl_statement.h:36
Definition stl_statement.h:176
Definition stl_statement.h:72
Definition stl_statement.h:65
Definition stl_statement.h:159
Definition stl_statement.h:150
Definition stl_statement.h:26
Definition stl_statement.h:167
Definition stl_statement.h:127
Definition stl_statement.h:31
Definition stl_statement.h:93
Definition stl_statement.h:102
Definition stl_statement.h:50
Definition stl_statement.h:57
Definition stl_statement.h:120
Definition stl_statement.h:44
Definition stl_statement.h:141
Definition stl_statement.h:80
Definition stl_statement.h:86
Definition code_location.h:14
Definition stl_token.h:98