sysmlpy 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sysmlpy/__init__.py +226 -0
- sysmlpy/__main__.py +75 -0
- sysmlpy/antlr/README.md +146 -0
- sysmlpy/antlr/SysMLv2Lexer.interp +695 -0
- sysmlpy/antlr/SysMLv2Lexer.py +1123 -0
- sysmlpy/antlr/SysMLv2Lexer.tokens +444 -0
- sysmlpy/antlr/SysMLv2Parser.interp +960 -0
- sysmlpy/antlr/SysMLv2Parser.py +40750 -0
- sysmlpy/antlr/SysMLv2Parser.tokens +444 -0
- sysmlpy/antlr/SysMLv2ParserListener.py +4485 -0
- sysmlpy/antlr/SysMLv2ParserVisitor.py +2498 -0
- sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +695 -0
- sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.py +1123 -0
- sysmlpy/antlr/src/sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +444 -0
- sysmlpy/antlr_parser.py +185 -0
- sysmlpy/antlr_visitor.py +10864 -0
- sysmlpy/definition.py +1115 -0
- sysmlpy/examples/attribute_values.py +161 -0
- sysmlpy/examples/part_attributes.py +139 -0
- sysmlpy/examples/tuples_sequences.py +231 -0
- sysmlpy/formatting.py +47 -0
- sysmlpy/grammar/antlr4/README.md +30 -0
- sysmlpy/grammar/antlr4/SysMLv2Lexer.g4 +931 -0
- sysmlpy/grammar/antlr4/SysMLv2Lexer.interp +695 -0
- sysmlpy/grammar/antlr4/SysMLv2Lexer.py +1123 -0
- sysmlpy/grammar/antlr4/SysMLv2Lexer.tokens +444 -0
- sysmlpy/grammar/antlr4/SysMLv2Parser.g4 +2432 -0
- sysmlpy/grammar/antlr4/SysMLv2Parser.interp +960 -0
- sysmlpy/grammar/antlr4/SysMLv2Parser.py +40750 -0
- sysmlpy/grammar/antlr4/SysMLv2Parser.tokens +444 -0
- sysmlpy/grammar/antlr4/SysMLv2ParserListener.py +4485 -0
- sysmlpy/grammar/antlr4/SysMLv2ParserVisitor.py +2498 -0
- sysmlpy/grammar/antlr4/desc.xml +7 -0
- sysmlpy/grammar/antlr4/examples/camera.sysml +14 -0
- sysmlpy/grammar/antlr4/examples/toaster-system.sysml +193 -0
- sysmlpy/grammar/antlr4/examples/vehicle-model.sysml +118 -0
- sysmlpy/grammar/antlr4/pom.xml +59 -0
- sysmlpy/grammar/classes.py +8610 -0
- sysmlpy/library/LICENSE +165 -0
- sysmlpy/library/README.md +52 -0
- sysmlpy/library/__init__.py +0 -0
- sysmlpy/library/domain/Analysis/AnalysisTooling.sysml +34 -0
- sysmlpy/library/domain/Analysis/SampledFunctions.sysml +119 -0
- sysmlpy/library/domain/Analysis/StateSpaceRepresentation.sysml +143 -0
- sysmlpy/library/domain/Analysis/TradeStudies.sysml +171 -0
- sysmlpy/library/domain/Cause and Effect/CausationConnections.sysml +83 -0
- sysmlpy/library/domain/Cause and Effect/CauseAndEffect.sysml +81 -0
- sysmlpy/library/domain/Geometry/ShapeItems.sysml +899 -0
- sysmlpy/library/domain/Geometry/SpatialItems.sysml +168 -0
- sysmlpy/library/domain/Metadata/ImageMetadata.sysml +78 -0
- sysmlpy/library/domain/Metadata/ModelingMetadata.sysml +143 -0
- sysmlpy/library/domain/Metadata/ParametersOfInterestMetadata.sysml +39 -0
- sysmlpy/library/domain/Metadata/RiskMetadata.sysml +100 -0
- sysmlpy/library/domain/Quantities and Units/ISQ.sysml +42 -0
- sysmlpy/library/domain/Quantities and Units/ISQAcoustics.sysml +439 -0
- sysmlpy/library/domain/Quantities and Units/ISQAtomicNuclear.sysml +2726 -0
- sysmlpy/library/domain/Quantities and Units/ISQBase.sysml +206 -0
- sysmlpy/library/domain/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -0
- sysmlpy/library/domain/Quantities and Units/ISQChemistryMolecular.sysml +1353 -0
- sysmlpy/library/domain/Quantities and Units/ISQCondensedMatter.sysml +1223 -0
- sysmlpy/library/domain/Quantities and Units/ISQElectromagnetism.sysml +2333 -0
- sysmlpy/library/domain/Quantities and Units/ISQInformation.sysml +958 -0
- sysmlpy/library/domain/Quantities and Units/ISQLight.sysml +1537 -0
- sysmlpy/library/domain/Quantities and Units/ISQMechanics.sysml +1564 -0
- sysmlpy/library/domain/Quantities and Units/ISQSpaceTime.sysml +1169 -0
- sysmlpy/library/domain/Quantities and Units/ISQThermodynamics.sysml +1256 -0
- sysmlpy/library/domain/Quantities and Units/MeasurementRefCalculations.sysml +30 -0
- sysmlpy/library/domain/Quantities and Units/MeasurementReferences.sysml +526 -0
- sysmlpy/library/domain/Quantities and Units/Quantities.sysml +107 -0
- sysmlpy/library/domain/Quantities and Units/QuantityCalculations.sysml +70 -0
- sysmlpy/library/domain/Quantities and Units/SI.sysml +378 -0
- sysmlpy/library/domain/Quantities and Units/SIPrefixes.sysml +48 -0
- sysmlpy/library/domain/Quantities and Units/TensorCalculations.sysml +50 -0
- sysmlpy/library/domain/Quantities and Units/Time.sysml +274 -0
- sysmlpy/library/domain/Quantities and Units/USCustomaryUnits.sysml +260 -0
- sysmlpy/library/domain/Quantities and Units/VectorCalculations.sysml +62 -0
- sysmlpy/library/domain/Requirement Derivation/DerivationConnections.sysml +63 -0
- sysmlpy/library/domain/Requirement Derivation/RequirementDerivation.sysml +39 -0
- sysmlpy/library/kernel/Base.kerml +95 -0
- sysmlpy/library/kernel/BaseFunctions.kerml +80 -0
- sysmlpy/library/kernel/BooleanFunctions.kerml +22 -0
- sysmlpy/library/kernel/Clocks.kerml +156 -0
- sysmlpy/library/kernel/CollectionFunctions.kerml +68 -0
- sysmlpy/library/kernel/Collections.kerml +147 -0
- sysmlpy/library/kernel/ComplexFunctions.kerml +47 -0
- sysmlpy/library/kernel/ControlFunctions.kerml +117 -0
- sysmlpy/library/kernel/ControlPerformances.kerml +135 -0
- sysmlpy/library/kernel/DataFunctions.kerml +43 -0
- sysmlpy/library/kernel/FeatureReferencingPerformances.kerml +190 -0
- sysmlpy/library/kernel/IntegerFunctions.kerml +43 -0
- sysmlpy/library/kernel/KerML.kerml +483 -0
- sysmlpy/library/kernel/Links.kerml +67 -0
- sysmlpy/library/kernel/Metaobjects.kerml +58 -0
- sysmlpy/library/kernel/NaturalFunctions.kerml +27 -0
- sysmlpy/library/kernel/NumericalFunctions.kerml +43 -0
- sysmlpy/library/kernel/Objects.kerml +212 -0
- sysmlpy/library/kernel/Observation.kerml +161 -0
- sysmlpy/library/kernel/OccurrenceFunctions.kerml +154 -0
- sysmlpy/library/kernel/Occurrences.kerml +992 -0
- sysmlpy/library/kernel/Performances.kerml +293 -0
- sysmlpy/library/kernel/RationalFunctions.kerml +49 -0
- sysmlpy/library/kernel/RealFunctions.kerml +56 -0
- sysmlpy/library/kernel/ScalarFunctions.kerml +33 -0
- sysmlpy/library/kernel/ScalarValues.kerml +23 -0
- sysmlpy/library/kernel/SequenceFunctions.kerml +111 -0
- sysmlpy/library/kernel/SpatialFrames.kerml +197 -0
- sysmlpy/library/kernel/StatePerformances.kerml +145 -0
- sysmlpy/library/kernel/StringFunctions.kerml +25 -0
- sysmlpy/library/kernel/Transfers.kerml +281 -0
- sysmlpy/library/kernel/TransitionPerformances.kerml +66 -0
- sysmlpy/library/kernel/TrigFunctions.kerml +35 -0
- sysmlpy/library/kernel/Triggers.kerml +188 -0
- sysmlpy/library/kernel/VectorFunctions.kerml +273 -0
- sysmlpy/library/kernel/VectorValues.kerml +64 -0
- sysmlpy/library/systems/Actions.sysml +552 -0
- sysmlpy/library/systems/Allocations.sysml +29 -0
- sysmlpy/library/systems/AnalysisCases.sysml +38 -0
- sysmlpy/library/systems/Attributes.sysml +25 -0
- sysmlpy/library/systems/Calculations.sysml +37 -0
- sysmlpy/library/systems/Cases.sysml +71 -0
- sysmlpy/library/systems/Connections.sysml +60 -0
- sysmlpy/library/systems/Constraints.sysml +44 -0
- sysmlpy/library/systems/Flows.sysml +126 -0
- sysmlpy/library/systems/Interfaces.sysml +89 -0
- sysmlpy/library/systems/Items.sysml +153 -0
- sysmlpy/library/systems/Metadata.sysml +32 -0
- sysmlpy/library/systems/Parts.sysml +81 -0
- sysmlpy/library/systems/Ports.sysml +54 -0
- sysmlpy/library/systems/Requirements.sysml +194 -0
- sysmlpy/library/systems/StandardViewDefinitions.sysml +123 -0
- sysmlpy/library/systems/States.sysml +103 -0
- sysmlpy/library/systems/SysML.sysml +539 -0
- sysmlpy/library/systems/UseCases.sysml +57 -0
- sysmlpy/library/systems/VerificationCases.sysml +103 -0
- sysmlpy/library/systems/Views.sysml +164 -0
- sysmlpy/navigate.py +272 -0
- sysmlpy/store.py +547 -0
- sysmlpy/usage.py +2978 -0
- sysmlpy-0.1.0.dist-info/METADATA +230 -0
- sysmlpy-0.1.0.dist-info/RECORD +143 -0
- sysmlpy-0.1.0.dist-info/WHEEL +4 -0
- sysmlpy-0.1.0.dist-info/entry_points.txt +3 -0
- sysmlpy-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,2432 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* SysML v2 ANTLR4 Grammar
|
|
3
|
+
* Derived from the OMG SysML v2 specification (KEBNF format).
|
|
4
|
+
* Source: https://github.com/Systems-Modeling/SysML-v2-Release
|
|
5
|
+
* Generator: https://github.com/daltskin/sysml-v2-grammar
|
|
6
|
+
* License: MIT
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
parser grammar SysMLv2Parser;
|
|
10
|
+
|
|
11
|
+
options {
|
|
12
|
+
tokenVocab = SysMLv2Lexer;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// $antlr-format alignTrailingComments true, columnLimit 150, useTab false
|
|
16
|
+
// $antlr-format allowShortRulesOnASingleLine false, allowShortBlocksOnASingleLine true
|
|
17
|
+
// $antlr-format alignSemicolons hanging, alignColons hanging
|
|
18
|
+
// $antlr-format minEmptyLines 1, maxEmptyLinesToKeep 1, reflowComments false
|
|
19
|
+
|
|
20
|
+
// ===== Expression rules (precedence-climbing) =====
|
|
21
|
+
|
|
22
|
+
ownedExpression
|
|
23
|
+
: IF ownedExpression QUESTION ownedExpression ELSE ownedExpression
|
|
24
|
+
| ownedExpression QUESTION_QUESTION ownedExpression
|
|
25
|
+
| ownedExpression IMPLIES ownedExpression
|
|
26
|
+
| ownedExpression OR ownedExpression
|
|
27
|
+
| ownedExpression AND ownedExpression
|
|
28
|
+
| ownedExpression XOR ownedExpression
|
|
29
|
+
| ownedExpression PIPE ownedExpression
|
|
30
|
+
| ownedExpression AMP ownedExpression
|
|
31
|
+
| ownedExpression ( EQ_EQ | BANG_EQ | EQ_EQ_EQ | BANG_EQ_EQ) ownedExpression
|
|
32
|
+
| ownedExpression ( LT | GT | LE | GE) ownedExpression
|
|
33
|
+
| ownedExpression DOT_DOT ownedExpression
|
|
34
|
+
| ownedExpression ( PLUS | MINUS) ownedExpression
|
|
35
|
+
| ownedExpression ( STAR | SLASH | PERCENT) ownedExpression
|
|
36
|
+
| <assoc = right> ownedExpression ( STAR_STAR | CARET) ownedExpression
|
|
37
|
+
| ( PLUS | MINUS | TILDE | NOT) ownedExpression
|
|
38
|
+
| ( AT_SIGN | AT_AT) typeReference
|
|
39
|
+
| ownedExpression ( ISTYPE | HASTYPE | AT_SIGN) typeReference
|
|
40
|
+
| ownedExpression AS typeReference
|
|
41
|
+
| ownedExpression AT_AT typeReference
|
|
42
|
+
| ownedExpression META typeReference
|
|
43
|
+
| ownedExpression LBRACK sequenceExpressionList? RBRACK
|
|
44
|
+
| ownedExpression HASH LPAREN sequenceExpressionList? RPAREN
|
|
45
|
+
| ownedExpression argumentList
|
|
46
|
+
| ownedExpression DOT qualifiedName
|
|
47
|
+
| ownedExpression DOT bodyExpression
|
|
48
|
+
| ownedExpression DOT_QUESTION bodyExpression
|
|
49
|
+
| ownedExpression ARROW qualifiedName ( bodyExpression | argumentList)
|
|
50
|
+
| ALL typeReference
|
|
51
|
+
| baseExpression
|
|
52
|
+
;
|
|
53
|
+
|
|
54
|
+
typeReference
|
|
55
|
+
: qualifiedName
|
|
56
|
+
;
|
|
57
|
+
|
|
58
|
+
sequenceExpressionList
|
|
59
|
+
: ownedExpression (COMMA ownedExpression)*
|
|
60
|
+
;
|
|
61
|
+
|
|
62
|
+
baseExpression
|
|
63
|
+
: nullExpression
|
|
64
|
+
| REGULAR_COMMENT // ignore block comments used as expression placeholders
|
|
65
|
+
| literalExpression
|
|
66
|
+
| qualifiedName (argumentList | DOT METADATA)? // merged featureRef/metadataAccess/invocation
|
|
67
|
+
| constructorExpression
|
|
68
|
+
| bodyExpression
|
|
69
|
+
| LPAREN AS typeReference RPAREN // cast expression: (as Type)
|
|
70
|
+
| LPAREN sequenceExpressionList? RPAREN
|
|
71
|
+
;
|
|
72
|
+
|
|
73
|
+
nullExpression
|
|
74
|
+
: NULL
|
|
75
|
+
| LPAREN RPAREN
|
|
76
|
+
;
|
|
77
|
+
|
|
78
|
+
featureReferenceExpression
|
|
79
|
+
: qualifiedName
|
|
80
|
+
;
|
|
81
|
+
|
|
82
|
+
metadataAccessExpression
|
|
83
|
+
: qualifiedName DOT METADATA
|
|
84
|
+
;
|
|
85
|
+
|
|
86
|
+
invocationExpression
|
|
87
|
+
: qualifiedName argumentList
|
|
88
|
+
;
|
|
89
|
+
|
|
90
|
+
constructorExpression
|
|
91
|
+
: NEW qualifiedName argumentList
|
|
92
|
+
;
|
|
93
|
+
|
|
94
|
+
bodyExpression
|
|
95
|
+
: LBRACE functionBodyPart RBRACE
|
|
96
|
+
;
|
|
97
|
+
|
|
98
|
+
argumentList
|
|
99
|
+
: LPAREN (positionalArgumentList | namedArgumentList)? RPAREN
|
|
100
|
+
;
|
|
101
|
+
|
|
102
|
+
positionalArgumentList
|
|
103
|
+
: ownedExpression (COMMA ownedExpression)*
|
|
104
|
+
;
|
|
105
|
+
|
|
106
|
+
namedArgumentList
|
|
107
|
+
: namedArgument (COMMA namedArgument)*
|
|
108
|
+
;
|
|
109
|
+
|
|
110
|
+
namedArgument
|
|
111
|
+
: qualifiedName EQ ownedExpression
|
|
112
|
+
;
|
|
113
|
+
|
|
114
|
+
literalExpression
|
|
115
|
+
: literalBoolean
|
|
116
|
+
| literalString
|
|
117
|
+
| literalInteger
|
|
118
|
+
| literalReal
|
|
119
|
+
| literalInfinity
|
|
120
|
+
;
|
|
121
|
+
|
|
122
|
+
literalBoolean
|
|
123
|
+
: TRUE
|
|
124
|
+
| FALSE
|
|
125
|
+
;
|
|
126
|
+
|
|
127
|
+
literalString
|
|
128
|
+
: DOUBLE_STRING
|
|
129
|
+
;
|
|
130
|
+
|
|
131
|
+
literalInteger
|
|
132
|
+
: INTEGER
|
|
133
|
+
;
|
|
134
|
+
|
|
135
|
+
literalReal
|
|
136
|
+
: REAL
|
|
137
|
+
;
|
|
138
|
+
|
|
139
|
+
literalInfinity
|
|
140
|
+
: STAR
|
|
141
|
+
;
|
|
142
|
+
|
|
143
|
+
argumentMember
|
|
144
|
+
: ownedExpression
|
|
145
|
+
;
|
|
146
|
+
|
|
147
|
+
argumentExpressionMember
|
|
148
|
+
: ownedExpression
|
|
149
|
+
;
|
|
150
|
+
|
|
151
|
+
// ===== Name rule (Identifier or UnrestrictedName) =====
|
|
152
|
+
|
|
153
|
+
name
|
|
154
|
+
: IDENTIFIER
|
|
155
|
+
| STRING
|
|
156
|
+
| unreservedKeyword
|
|
157
|
+
;
|
|
158
|
+
|
|
159
|
+
// Keywords that appear as names in the official OMG standard library.
|
|
160
|
+
// These are contextually unreserved — valid as identifiers in name positions.
|
|
161
|
+
unreservedKeyword
|
|
162
|
+
: TYPE
|
|
163
|
+
| MULTIPLICITY
|
|
164
|
+
| VAR
|
|
165
|
+
| LANGUAGE
|
|
166
|
+
| LOCALE
|
|
167
|
+
| CROSSES
|
|
168
|
+
| STEP
|
|
169
|
+
| FEATURE
|
|
170
|
+
| BEHAVIOR
|
|
171
|
+
| FUNCTION
|
|
172
|
+
| MEMBER
|
|
173
|
+
| PREDICATE
|
|
174
|
+
| INTERACTION
|
|
175
|
+
| METACLASS
|
|
176
|
+
;
|
|
177
|
+
|
|
178
|
+
// ===== Parser rules =====
|
|
179
|
+
|
|
180
|
+
identification
|
|
181
|
+
: LT name GT name
|
|
182
|
+
| LT name GT
|
|
183
|
+
| name
|
|
184
|
+
;
|
|
185
|
+
|
|
186
|
+
relationshipBody
|
|
187
|
+
: SEMI
|
|
188
|
+
| LBRACE relationshipOwnedElement* RBRACE
|
|
189
|
+
| LBRACE ( ownedAnnotation)* RBRACE
|
|
190
|
+
;
|
|
191
|
+
|
|
192
|
+
relationshipOwnedElement
|
|
193
|
+
: ownedRelatedElement
|
|
194
|
+
| ownedAnnotation
|
|
195
|
+
;
|
|
196
|
+
|
|
197
|
+
ownedRelatedElement
|
|
198
|
+
: nonFeatureElement
|
|
199
|
+
| featureElement
|
|
200
|
+
;
|
|
201
|
+
|
|
202
|
+
dependency
|
|
203
|
+
: (prefixMetadataAnnotation)* DEPENDENCY (identification? FROM)? qualifiedName (
|
|
204
|
+
COMMA qualifiedName
|
|
205
|
+
)* TO qualifiedName (COMMA qualifiedName)* relationshipBody
|
|
206
|
+
| (prefixMetadataAnnotation)* DEPENDENCY dependencyDeclaration relationshipBody
|
|
207
|
+
;
|
|
208
|
+
|
|
209
|
+
annotation
|
|
210
|
+
: qualifiedName
|
|
211
|
+
;
|
|
212
|
+
|
|
213
|
+
ownedAnnotation
|
|
214
|
+
: annotatingElement
|
|
215
|
+
;
|
|
216
|
+
|
|
217
|
+
annotatingElement
|
|
218
|
+
: comment
|
|
219
|
+
| documentation
|
|
220
|
+
| textualRepresentation
|
|
221
|
+
| metadataFeature
|
|
222
|
+
;
|
|
223
|
+
|
|
224
|
+
comment
|
|
225
|
+
: (COMMENT identification? ( ABOUT annotation ( COMMA annotation)*)?)? (LOCALE DOUBLE_STRING)? REGULAR_COMMENT
|
|
226
|
+
;
|
|
227
|
+
|
|
228
|
+
documentation
|
|
229
|
+
: DOC identification? (LOCALE DOUBLE_STRING)? REGULAR_COMMENT
|
|
230
|
+
;
|
|
231
|
+
|
|
232
|
+
textualRepresentation
|
|
233
|
+
: (REP identification?)? LANGUAGE DOUBLE_STRING REGULAR_COMMENT
|
|
234
|
+
;
|
|
235
|
+
|
|
236
|
+
rootNamespace
|
|
237
|
+
: packageBodyElement* EOF
|
|
238
|
+
;
|
|
239
|
+
|
|
240
|
+
namespace
|
|
241
|
+
: (prefixMetadataMember)* namespaceDeclaration namespaceBody
|
|
242
|
+
;
|
|
243
|
+
|
|
244
|
+
namespaceDeclaration
|
|
245
|
+
: NAMESPACE identification?
|
|
246
|
+
;
|
|
247
|
+
|
|
248
|
+
namespaceBody
|
|
249
|
+
: SEMI
|
|
250
|
+
| LBRACE namespaceBodyElement* RBRACE
|
|
251
|
+
;
|
|
252
|
+
|
|
253
|
+
namespaceBodyElement
|
|
254
|
+
: namespaceMember
|
|
255
|
+
| aliasMember
|
|
256
|
+
| importRule
|
|
257
|
+
;
|
|
258
|
+
|
|
259
|
+
memberPrefix
|
|
260
|
+
: (visibilityIndicator)?
|
|
261
|
+
;
|
|
262
|
+
|
|
263
|
+
visibilityIndicator
|
|
264
|
+
: PUBLIC
|
|
265
|
+
| PRIVATE
|
|
266
|
+
| PROTECTED
|
|
267
|
+
;
|
|
268
|
+
|
|
269
|
+
namespaceMember
|
|
270
|
+
: nonFeatureMember
|
|
271
|
+
| namespaceFeatureMember
|
|
272
|
+
;
|
|
273
|
+
|
|
274
|
+
nonFeatureMember
|
|
275
|
+
: memberPrefix memberElement
|
|
276
|
+
;
|
|
277
|
+
|
|
278
|
+
namespaceFeatureMember
|
|
279
|
+
: memberPrefix featureElement
|
|
280
|
+
;
|
|
281
|
+
|
|
282
|
+
aliasMember
|
|
283
|
+
: memberPrefix ALIAS (LT name GT)? (name)? FOR qualifiedName relationshipBody
|
|
284
|
+
;
|
|
285
|
+
|
|
286
|
+
qualifiedName
|
|
287
|
+
: (DOLLAR COLON_COLON)? (name COLON_COLON)* name
|
|
288
|
+
;
|
|
289
|
+
|
|
290
|
+
importRule
|
|
291
|
+
: (visibilityIndicator)? IMPORT (ALL)? importDeclaration relationshipBody
|
|
292
|
+
;
|
|
293
|
+
|
|
294
|
+
importDeclaration
|
|
295
|
+
: membershipImport
|
|
296
|
+
| namespaceImport
|
|
297
|
+
;
|
|
298
|
+
|
|
299
|
+
membershipImport
|
|
300
|
+
: qualifiedName (COLON_COLON STAR_STAR)?
|
|
301
|
+
;
|
|
302
|
+
|
|
303
|
+
namespaceImport
|
|
304
|
+
: qualifiedName COLON_COLON STAR (COLON_COLON STAR_STAR)?
|
|
305
|
+
| filterPackage
|
|
306
|
+
;
|
|
307
|
+
|
|
308
|
+
filterPackage
|
|
309
|
+
: filterPackageImportDeclaration (filterPackageMember)+
|
|
310
|
+
| filterPackageImport ( filterPackageMember)+
|
|
311
|
+
;
|
|
312
|
+
|
|
313
|
+
filterPackageMember
|
|
314
|
+
: LBRACK ownedExpression RBRACK
|
|
315
|
+
;
|
|
316
|
+
|
|
317
|
+
memberElement
|
|
318
|
+
: annotatingElement
|
|
319
|
+
| nonFeatureElement
|
|
320
|
+
;
|
|
321
|
+
|
|
322
|
+
nonFeatureElement
|
|
323
|
+
: dependency
|
|
324
|
+
| namespace
|
|
325
|
+
| type
|
|
326
|
+
| classifier
|
|
327
|
+
| dataType
|
|
328
|
+
| class
|
|
329
|
+
| structure
|
|
330
|
+
| metaclass
|
|
331
|
+
| association
|
|
332
|
+
| associationStructure
|
|
333
|
+
| interaction
|
|
334
|
+
| behavior
|
|
335
|
+
| function
|
|
336
|
+
| predicate
|
|
337
|
+
| multiplicity
|
|
338
|
+
| package
|
|
339
|
+
| libraryPackage
|
|
340
|
+
| specialization
|
|
341
|
+
| conjugation
|
|
342
|
+
| subclassification
|
|
343
|
+
| disjoining
|
|
344
|
+
| featureInverting
|
|
345
|
+
| featureTyping
|
|
346
|
+
| subsetting
|
|
347
|
+
| redefinition
|
|
348
|
+
| typeFeaturing
|
|
349
|
+
;
|
|
350
|
+
|
|
351
|
+
featureElement
|
|
352
|
+
: feature
|
|
353
|
+
| step
|
|
354
|
+
| expression
|
|
355
|
+
| booleanExpression
|
|
356
|
+
| invariant
|
|
357
|
+
| connector
|
|
358
|
+
| bindingConnector
|
|
359
|
+
| succession
|
|
360
|
+
| flow
|
|
361
|
+
| successionFlow
|
|
362
|
+
;
|
|
363
|
+
|
|
364
|
+
type
|
|
365
|
+
: typePrefix TYPE typeDeclaration typeBody
|
|
366
|
+
;
|
|
367
|
+
|
|
368
|
+
typePrefix
|
|
369
|
+
: (ABSTRACT)? (prefixMetadataMember)*
|
|
370
|
+
;
|
|
371
|
+
|
|
372
|
+
typeDeclaration
|
|
373
|
+
: (ALL)? identification? (ownedMultiplicity)? (specializationPart | conjugationPart)+ typeRelationshipPart*
|
|
374
|
+
;
|
|
375
|
+
|
|
376
|
+
specializationPart
|
|
377
|
+
: (COLON_GT | SPECIALIZES) ownedSpecialization (COMMA ownedSpecialization)*
|
|
378
|
+
;
|
|
379
|
+
|
|
380
|
+
conjugationPart
|
|
381
|
+
: (TILDE | CONJUGATES) ownedConjugation
|
|
382
|
+
;
|
|
383
|
+
|
|
384
|
+
typeRelationshipPart
|
|
385
|
+
: disjoiningPart
|
|
386
|
+
| unioningPart
|
|
387
|
+
| intersectingPart
|
|
388
|
+
| differencingPart
|
|
389
|
+
;
|
|
390
|
+
|
|
391
|
+
disjoiningPart
|
|
392
|
+
: DISJOINT FROM ownedDisjoining (COMMA ownedDisjoining)*
|
|
393
|
+
;
|
|
394
|
+
|
|
395
|
+
unioningPart
|
|
396
|
+
: UNIONS unioning (COMMA unioning)*
|
|
397
|
+
;
|
|
398
|
+
|
|
399
|
+
intersectingPart
|
|
400
|
+
: INTERSECTS intersecting (COMMA intersecting)*
|
|
401
|
+
;
|
|
402
|
+
|
|
403
|
+
differencingPart
|
|
404
|
+
: DIFFERENCES differencing (COMMA differencing)*
|
|
405
|
+
;
|
|
406
|
+
|
|
407
|
+
typeBody
|
|
408
|
+
: SEMI
|
|
409
|
+
| LBRACE typeBodyElement* RBRACE
|
|
410
|
+
;
|
|
411
|
+
|
|
412
|
+
typeBodyElement
|
|
413
|
+
: nonFeatureMember
|
|
414
|
+
| featureMember
|
|
415
|
+
| aliasMember
|
|
416
|
+
| importRule
|
|
417
|
+
;
|
|
418
|
+
|
|
419
|
+
specialization
|
|
420
|
+
: (SPECIALIZATION identification?)? SUBTYPE specificType (COLON_GT | SPECIALIZES) generalType relationshipBody
|
|
421
|
+
;
|
|
422
|
+
|
|
423
|
+
ownedSpecialization
|
|
424
|
+
: generalType
|
|
425
|
+
;
|
|
426
|
+
|
|
427
|
+
specificType
|
|
428
|
+
: qualifiedName (DOT qualifiedName)*
|
|
429
|
+
;
|
|
430
|
+
|
|
431
|
+
generalType
|
|
432
|
+
: qualifiedName (DOT qualifiedName)*
|
|
433
|
+
;
|
|
434
|
+
|
|
435
|
+
conjugation
|
|
436
|
+
: (CONJUGATION identification?)? CONJUGATE qualifiedName (DOT qualifiedName)* (
|
|
437
|
+
TILDE
|
|
438
|
+
| CONJUGATES
|
|
439
|
+
) qualifiedName (DOT qualifiedName)* relationshipBody
|
|
440
|
+
;
|
|
441
|
+
|
|
442
|
+
ownedConjugation
|
|
443
|
+
: qualifiedName (DOT qualifiedName)*
|
|
444
|
+
;
|
|
445
|
+
|
|
446
|
+
disjoining
|
|
447
|
+
: (DISJOINING identification?)? DISJOINT qualifiedName (DOT qualifiedName)* FROM qualifiedName (
|
|
448
|
+
DOT qualifiedName
|
|
449
|
+
)* relationshipBody
|
|
450
|
+
;
|
|
451
|
+
|
|
452
|
+
ownedDisjoining
|
|
453
|
+
: qualifiedName (DOT qualifiedName)*
|
|
454
|
+
;
|
|
455
|
+
|
|
456
|
+
unioning
|
|
457
|
+
: qualifiedName (DOT qualifiedName)*
|
|
458
|
+
;
|
|
459
|
+
|
|
460
|
+
intersecting
|
|
461
|
+
: qualifiedName (DOT qualifiedName)*
|
|
462
|
+
;
|
|
463
|
+
|
|
464
|
+
differencing
|
|
465
|
+
: qualifiedName (DOT qualifiedName)*
|
|
466
|
+
;
|
|
467
|
+
|
|
468
|
+
featureMember
|
|
469
|
+
: typeFeatureMember
|
|
470
|
+
| ownedFeatureMember
|
|
471
|
+
;
|
|
472
|
+
|
|
473
|
+
typeFeatureMember
|
|
474
|
+
: memberPrefix MEMBER featureElement
|
|
475
|
+
;
|
|
476
|
+
|
|
477
|
+
ownedFeatureMember
|
|
478
|
+
: memberPrefix featureElement
|
|
479
|
+
;
|
|
480
|
+
|
|
481
|
+
classifier
|
|
482
|
+
: typePrefix CLASSIFIER classifierDeclaration typeBody
|
|
483
|
+
;
|
|
484
|
+
|
|
485
|
+
classifierDeclaration
|
|
486
|
+
: (ALL)? identification? (ownedMultiplicity)? (superclassingPart | conjugationPart)? typeRelationshipPart*
|
|
487
|
+
;
|
|
488
|
+
|
|
489
|
+
superclassingPart
|
|
490
|
+
: (COLON_GT | SPECIALIZES) ownedSubclassification (COMMA ownedSubclassification)*
|
|
491
|
+
;
|
|
492
|
+
|
|
493
|
+
subclassification
|
|
494
|
+
: (SPECIALIZATION identification?)? SUBCLASSIFIER qualifiedName (COLON_GT | SPECIALIZES) qualifiedName relationshipBody
|
|
495
|
+
;
|
|
496
|
+
|
|
497
|
+
ownedSubclassification
|
|
498
|
+
: qualifiedName
|
|
499
|
+
;
|
|
500
|
+
|
|
501
|
+
feature
|
|
502
|
+
: (
|
|
503
|
+
featurePrefix ( FEATURE | prefixMetadataMember) featureDeclaration?
|
|
504
|
+
| ( endFeaturePrefix | basicFeaturePrefix) ( REF)? featureDeclaration
|
|
505
|
+
) valuePart? typeBody
|
|
506
|
+
;
|
|
507
|
+
|
|
508
|
+
endFeaturePrefix
|
|
509
|
+
: (CONST)? END
|
|
510
|
+
;
|
|
511
|
+
|
|
512
|
+
basicFeaturePrefix
|
|
513
|
+
: (featureDirection)? (DERIVED)? (ABSTRACT)? (COMPOSITE | PORTION)? (VAR | CONST)?
|
|
514
|
+
;
|
|
515
|
+
|
|
516
|
+
featurePrefix
|
|
517
|
+
: (endFeaturePrefix ownedCrossFeatureMember | basicFeaturePrefix) (prefixMetadataMember)*
|
|
518
|
+
;
|
|
519
|
+
|
|
520
|
+
ownedCrossFeatureMember
|
|
521
|
+
: ownedCrossFeature
|
|
522
|
+
;
|
|
523
|
+
|
|
524
|
+
ownedCrossFeature
|
|
525
|
+
: basicFeaturePrefix featureDeclaration
|
|
526
|
+
| basicUsagePrefix usageDeclaration?
|
|
527
|
+
;
|
|
528
|
+
|
|
529
|
+
featureDirection
|
|
530
|
+
: IN
|
|
531
|
+
| OUT
|
|
532
|
+
| INOUT
|
|
533
|
+
;
|
|
534
|
+
|
|
535
|
+
featureDeclaration
|
|
536
|
+
: (ALL)? (
|
|
537
|
+
featureIdentification ( featureSpecializationPart | conjugationPart)?
|
|
538
|
+
| featureSpecializationPart
|
|
539
|
+
| conjugationPart
|
|
540
|
+
) featureRelationshipPart*
|
|
541
|
+
;
|
|
542
|
+
|
|
543
|
+
featureIdentification
|
|
544
|
+
: LT name GT (name)?
|
|
545
|
+
| name
|
|
546
|
+
;
|
|
547
|
+
|
|
548
|
+
featureRelationshipPart
|
|
549
|
+
: typeRelationshipPart
|
|
550
|
+
| chainingPart
|
|
551
|
+
| invertingPart
|
|
552
|
+
| typeFeaturingPart
|
|
553
|
+
;
|
|
554
|
+
|
|
555
|
+
chainingPart
|
|
556
|
+
: CHAINS qualifiedName (DOT qualifiedName)*
|
|
557
|
+
;
|
|
558
|
+
|
|
559
|
+
invertingPart
|
|
560
|
+
: INVERSE OF ownedFeatureInverting
|
|
561
|
+
;
|
|
562
|
+
|
|
563
|
+
typeFeaturingPart
|
|
564
|
+
: FEATURED BY ownedTypeFeaturing (COMMA ownedTypeFeaturing)*
|
|
565
|
+
;
|
|
566
|
+
|
|
567
|
+
featureSpecializationPart
|
|
568
|
+
: featureSpecialization+ multiplicityPart? featureSpecialization*
|
|
569
|
+
| multiplicityPart featureSpecialization*
|
|
570
|
+
;
|
|
571
|
+
|
|
572
|
+
multiplicityPart
|
|
573
|
+
: ownedMultiplicity (ORDERED ( NONUNIQUE)? | NONUNIQUE ( ORDERED)?)?
|
|
574
|
+
| ( ORDERED ( NONUNIQUE)? | NONUNIQUE ( ORDERED)?)
|
|
575
|
+
;
|
|
576
|
+
|
|
577
|
+
featureSpecialization
|
|
578
|
+
: typings
|
|
579
|
+
| subsettings
|
|
580
|
+
| references
|
|
581
|
+
| crosses
|
|
582
|
+
| redefinitions
|
|
583
|
+
;
|
|
584
|
+
|
|
585
|
+
typings
|
|
586
|
+
: typedBy (COMMA featureTyping)*
|
|
587
|
+
;
|
|
588
|
+
|
|
589
|
+
typedBy
|
|
590
|
+
: (COLON | TYPED BY | DEFINED BY) featureTyping
|
|
591
|
+
;
|
|
592
|
+
|
|
593
|
+
subsettings
|
|
594
|
+
: subsets (COMMA ownedSubsetting)*
|
|
595
|
+
;
|
|
596
|
+
|
|
597
|
+
subsets
|
|
598
|
+
: (COLON_GT | SUBSETS) ownedSubsetting
|
|
599
|
+
;
|
|
600
|
+
|
|
601
|
+
references
|
|
602
|
+
: (COLON_COLON_GT | REFERENCES) ownedReferenceSubsetting
|
|
603
|
+
;
|
|
604
|
+
|
|
605
|
+
crosses
|
|
606
|
+
: (FAT_ARROW | CROSSES) ownedCrossSubsetting
|
|
607
|
+
;
|
|
608
|
+
|
|
609
|
+
redefinitions
|
|
610
|
+
: redefines (COMMA ownedRedefinition)*
|
|
611
|
+
;
|
|
612
|
+
|
|
613
|
+
redefines
|
|
614
|
+
: (COLON_GT_GT | REDEFINES) ownedRedefinition
|
|
615
|
+
;
|
|
616
|
+
|
|
617
|
+
featureTyping
|
|
618
|
+
: (SPECIALIZATION identification?)? TYPING qualifiedName (COLON | TYPED BY) generalType relationshipBody
|
|
619
|
+
| ownedFeatureTyping
|
|
620
|
+
| conjugatedPortTyping
|
|
621
|
+
;
|
|
622
|
+
|
|
623
|
+
ownedFeatureTyping
|
|
624
|
+
: qualifiedName (DOT qualifiedName)*
|
|
625
|
+
;
|
|
626
|
+
|
|
627
|
+
subsetting
|
|
628
|
+
: (SPECIALIZATION identification?)? SUBSET specificType (COLON_GT | SUBSETS) generalType relationshipBody
|
|
629
|
+
;
|
|
630
|
+
|
|
631
|
+
ownedSubsetting
|
|
632
|
+
: qualifiedName (DOT qualifiedName)*
|
|
633
|
+
;
|
|
634
|
+
|
|
635
|
+
ownedReferenceSubsetting
|
|
636
|
+
: qualifiedName (DOT qualifiedName)*
|
|
637
|
+
;
|
|
638
|
+
|
|
639
|
+
ownedCrossSubsetting
|
|
640
|
+
: qualifiedName (DOT qualifiedName)*
|
|
641
|
+
;
|
|
642
|
+
|
|
643
|
+
redefinition
|
|
644
|
+
: (SPECIALIZATION identification?)? REDEFINITION specificType (COLON_GT_GT | REDEFINES) generalType relationshipBody
|
|
645
|
+
;
|
|
646
|
+
|
|
647
|
+
ownedRedefinition
|
|
648
|
+
: qualifiedName (DOT qualifiedName)*
|
|
649
|
+
;
|
|
650
|
+
|
|
651
|
+
ownedFeatureChain
|
|
652
|
+
: featureChain
|
|
653
|
+
| ownedFeatureChaining ( DOT ownedFeatureChaining)+
|
|
654
|
+
;
|
|
655
|
+
|
|
656
|
+
featureChain
|
|
657
|
+
: ownedFeatureChaining (DOT ownedFeatureChaining)+
|
|
658
|
+
;
|
|
659
|
+
|
|
660
|
+
ownedFeatureChaining
|
|
661
|
+
: qualifiedName
|
|
662
|
+
;
|
|
663
|
+
|
|
664
|
+
featureInverting
|
|
665
|
+
: (INVERTING identification?)? INVERSE qualifiedName (DOT qualifiedName)* OF qualifiedName (
|
|
666
|
+
DOT qualifiedName
|
|
667
|
+
)* relationshipBody
|
|
668
|
+
;
|
|
669
|
+
|
|
670
|
+
ownedFeatureInverting
|
|
671
|
+
: qualifiedName (DOT qualifiedName)*
|
|
672
|
+
;
|
|
673
|
+
|
|
674
|
+
typeFeaturing
|
|
675
|
+
: FEATURING (identification? OF)? qualifiedName BY qualifiedName relationshipBody
|
|
676
|
+
;
|
|
677
|
+
|
|
678
|
+
ownedTypeFeaturing
|
|
679
|
+
: qualifiedName
|
|
680
|
+
;
|
|
681
|
+
|
|
682
|
+
dataType
|
|
683
|
+
: typePrefix DATATYPE classifierDeclaration typeBody
|
|
684
|
+
;
|
|
685
|
+
|
|
686
|
+
class
|
|
687
|
+
: typePrefix CLASS classifierDeclaration typeBody
|
|
688
|
+
;
|
|
689
|
+
|
|
690
|
+
structure
|
|
691
|
+
: typePrefix STRUCT classifierDeclaration typeBody
|
|
692
|
+
;
|
|
693
|
+
|
|
694
|
+
association
|
|
695
|
+
: typePrefix ASSOC classifierDeclaration typeBody
|
|
696
|
+
;
|
|
697
|
+
|
|
698
|
+
associationStructure
|
|
699
|
+
: typePrefix ASSOC STRUCT classifierDeclaration typeBody
|
|
700
|
+
;
|
|
701
|
+
|
|
702
|
+
connector
|
|
703
|
+
: featurePrefix CONNECTOR (featureDeclaration? valuePart? | connectorDeclaration) typeBody
|
|
704
|
+
;
|
|
705
|
+
|
|
706
|
+
connectorDeclaration
|
|
707
|
+
: binaryConnectorDeclaration
|
|
708
|
+
| naryConnectorDeclaration
|
|
709
|
+
;
|
|
710
|
+
|
|
711
|
+
binaryConnectorDeclaration
|
|
712
|
+
: (featureDeclaration? FROM | ALL FROM?)? connectorEndMember TO connectorEndMember
|
|
713
|
+
;
|
|
714
|
+
|
|
715
|
+
naryConnectorDeclaration
|
|
716
|
+
: featureDeclaration? LPAREN connectorEndMember COMMA connectorEndMember (
|
|
717
|
+
COMMA connectorEndMember
|
|
718
|
+
)* RPAREN
|
|
719
|
+
;
|
|
720
|
+
|
|
721
|
+
connectorEndMember
|
|
722
|
+
: connectorEnd
|
|
723
|
+
;
|
|
724
|
+
|
|
725
|
+
connectorEnd
|
|
726
|
+
: (ownedCrossMultiplicityMember)? (name ( COLON_COLON_GT | REFERENCES))? ownedReferenceSubsetting ownedMultiplicity?
|
|
727
|
+
;
|
|
728
|
+
|
|
729
|
+
ownedCrossMultiplicityMember
|
|
730
|
+
: ownedCrossMultiplicity
|
|
731
|
+
;
|
|
732
|
+
|
|
733
|
+
ownedCrossMultiplicity
|
|
734
|
+
: ownedMultiplicity
|
|
735
|
+
;
|
|
736
|
+
|
|
737
|
+
bindingConnector
|
|
738
|
+
: featurePrefix BINDING bindingConnectorDeclaration typeBody
|
|
739
|
+
;
|
|
740
|
+
|
|
741
|
+
bindingConnectorDeclaration
|
|
742
|
+
: featureDeclaration (OF connectorEndMember EQ connectorEndMember)?
|
|
743
|
+
| ( ALL)? ( OF? connectorEndMember EQ connectorEndMember)?
|
|
744
|
+
;
|
|
745
|
+
|
|
746
|
+
succession
|
|
747
|
+
: featurePrefix SUCCESSION successionDeclaration typeBody
|
|
748
|
+
;
|
|
749
|
+
|
|
750
|
+
successionDeclaration
|
|
751
|
+
: featureDeclaration (FIRST connectorEndMember THEN connectorEndMember)?
|
|
752
|
+
| ( ALL)? ( FIRST? connectorEndMember THEN connectorEndMember)?
|
|
753
|
+
;
|
|
754
|
+
|
|
755
|
+
behavior
|
|
756
|
+
: typePrefix BEHAVIOR classifierDeclaration typeBody
|
|
757
|
+
;
|
|
758
|
+
|
|
759
|
+
step
|
|
760
|
+
: featurePrefix STEP featureDeclaration valuePart? typeBody
|
|
761
|
+
;
|
|
762
|
+
|
|
763
|
+
function
|
|
764
|
+
: typePrefix FUNCTION classifierDeclaration functionBody
|
|
765
|
+
;
|
|
766
|
+
|
|
767
|
+
functionBody
|
|
768
|
+
: SEMI
|
|
769
|
+
| LBRACE functionBodyPart RBRACE
|
|
770
|
+
;
|
|
771
|
+
|
|
772
|
+
functionBodyPart
|
|
773
|
+
: (definitionBodyItem | typeBodyElement | returnFeatureMember)* (resultExpressionMember)?
|
|
774
|
+
;
|
|
775
|
+
|
|
776
|
+
returnFeatureMember
|
|
777
|
+
: memberPrefix RETURN featureElement
|
|
778
|
+
;
|
|
779
|
+
|
|
780
|
+
resultExpressionMember
|
|
781
|
+
: memberPrefix ownedExpression
|
|
782
|
+
;
|
|
783
|
+
|
|
784
|
+
expression
|
|
785
|
+
: featurePrefix EXPR featureDeclaration valuePart? functionBody
|
|
786
|
+
;
|
|
787
|
+
|
|
788
|
+
predicate
|
|
789
|
+
: typePrefix PREDICATE classifierDeclaration functionBody
|
|
790
|
+
;
|
|
791
|
+
|
|
792
|
+
booleanExpression
|
|
793
|
+
: featurePrefix BOOL featureDeclaration valuePart? functionBody
|
|
794
|
+
;
|
|
795
|
+
|
|
796
|
+
invariant
|
|
797
|
+
: featurePrefix INV (TRUE | FALSE)? featureDeclaration valuePart? functionBody
|
|
798
|
+
;
|
|
799
|
+
|
|
800
|
+
ownedExpressionMember
|
|
801
|
+
: ownedExpression
|
|
802
|
+
;
|
|
803
|
+
|
|
804
|
+
metadataReference
|
|
805
|
+
: elementReferenceMember
|
|
806
|
+
;
|
|
807
|
+
|
|
808
|
+
typeReferenceMember
|
|
809
|
+
: typeReference
|
|
810
|
+
;
|
|
811
|
+
|
|
812
|
+
typeResultMember
|
|
813
|
+
: typeReference
|
|
814
|
+
;
|
|
815
|
+
|
|
816
|
+
referenceTyping
|
|
817
|
+
: qualifiedName
|
|
818
|
+
;
|
|
819
|
+
|
|
820
|
+
emptyResultMember
|
|
821
|
+
: emptyFeature_
|
|
822
|
+
;
|
|
823
|
+
|
|
824
|
+
sequenceOperatorExpression
|
|
825
|
+
: ownedExpressionMember COMMA sequenceExpressionListMember
|
|
826
|
+
;
|
|
827
|
+
|
|
828
|
+
sequenceExpressionListMember
|
|
829
|
+
: sequenceExpressionList
|
|
830
|
+
;
|
|
831
|
+
|
|
832
|
+
bodyArgumentMember
|
|
833
|
+
: bodyArgument
|
|
834
|
+
;
|
|
835
|
+
|
|
836
|
+
bodyArgument
|
|
837
|
+
: bodyArgumentValue
|
|
838
|
+
;
|
|
839
|
+
|
|
840
|
+
bodyArgumentValue
|
|
841
|
+
: bodyExpression
|
|
842
|
+
;
|
|
843
|
+
|
|
844
|
+
functionReferenceArgumentMember
|
|
845
|
+
: functionReferenceArgument
|
|
846
|
+
;
|
|
847
|
+
|
|
848
|
+
functionReferenceArgument
|
|
849
|
+
: functionReferenceArgumentValue
|
|
850
|
+
;
|
|
851
|
+
|
|
852
|
+
functionReferenceArgumentValue
|
|
853
|
+
: functionReferenceExpression
|
|
854
|
+
;
|
|
855
|
+
|
|
856
|
+
functionReferenceExpression
|
|
857
|
+
: functionReferenceMember
|
|
858
|
+
;
|
|
859
|
+
|
|
860
|
+
functionReferenceMember
|
|
861
|
+
: functionReference
|
|
862
|
+
;
|
|
863
|
+
|
|
864
|
+
functionReference
|
|
865
|
+
: referenceTyping
|
|
866
|
+
;
|
|
867
|
+
|
|
868
|
+
featureChainMember
|
|
869
|
+
: qualifiedName (DOT qualifiedName)*
|
|
870
|
+
;
|
|
871
|
+
|
|
872
|
+
ownedFeatureChainMember
|
|
873
|
+
: featureChain
|
|
874
|
+
| ownedFeatureChain
|
|
875
|
+
;
|
|
876
|
+
|
|
877
|
+
featureReferenceMember
|
|
878
|
+
: featureReference
|
|
879
|
+
;
|
|
880
|
+
|
|
881
|
+
featureReference
|
|
882
|
+
: qualifiedName
|
|
883
|
+
;
|
|
884
|
+
|
|
885
|
+
elementReferenceMember
|
|
886
|
+
: qualifiedName
|
|
887
|
+
;
|
|
888
|
+
|
|
889
|
+
constructorResultMember
|
|
890
|
+
: constructorResult
|
|
891
|
+
;
|
|
892
|
+
|
|
893
|
+
constructorResult
|
|
894
|
+
: argumentList
|
|
895
|
+
;
|
|
896
|
+
|
|
897
|
+
instantiatedTypeMember
|
|
898
|
+
: qualifiedName (DOT qualifiedName)*
|
|
899
|
+
;
|
|
900
|
+
|
|
901
|
+
instantiatedTypeReference
|
|
902
|
+
: qualifiedName
|
|
903
|
+
;
|
|
904
|
+
|
|
905
|
+
namedArgumentMember
|
|
906
|
+
: namedArgument
|
|
907
|
+
;
|
|
908
|
+
|
|
909
|
+
parameterRedefinition
|
|
910
|
+
: qualifiedName
|
|
911
|
+
;
|
|
912
|
+
|
|
913
|
+
expressionBodyMember
|
|
914
|
+
: expressionBody
|
|
915
|
+
;
|
|
916
|
+
|
|
917
|
+
expressionBody
|
|
918
|
+
: LBRACE functionBodyPart RBRACE
|
|
919
|
+
;
|
|
920
|
+
|
|
921
|
+
booleanValue
|
|
922
|
+
: TRUE
|
|
923
|
+
| FALSE
|
|
924
|
+
;
|
|
925
|
+
|
|
926
|
+
realValue
|
|
927
|
+
: INTEGER? DOT (INTEGER | REAL)
|
|
928
|
+
| REAL
|
|
929
|
+
;
|
|
930
|
+
|
|
931
|
+
interaction
|
|
932
|
+
: typePrefix INTERACTION classifierDeclaration typeBody
|
|
933
|
+
;
|
|
934
|
+
|
|
935
|
+
flow
|
|
936
|
+
: featurePrefix FLOW flowDeclaration typeBody
|
|
937
|
+
;
|
|
938
|
+
|
|
939
|
+
successionFlow
|
|
940
|
+
: featurePrefix SUCCESSION FLOW flowDeclaration typeBody
|
|
941
|
+
;
|
|
942
|
+
|
|
943
|
+
flowDeclaration
|
|
944
|
+
: featureDeclaration valuePart? (OF payloadFeatureMember)? (
|
|
945
|
+
FROM flowEndMember TO flowEndMember
|
|
946
|
+
)?
|
|
947
|
+
| ( ALL)? flowEndMember TO flowEndMember
|
|
948
|
+
| usageDeclaration? valuePart? (OF flowPayloadFeatureMember)? (
|
|
949
|
+
FROM flowEndMember TO flowEndMember
|
|
950
|
+
)?
|
|
951
|
+
;
|
|
952
|
+
|
|
953
|
+
payloadFeatureMember
|
|
954
|
+
: payloadFeature
|
|
955
|
+
;
|
|
956
|
+
|
|
957
|
+
payloadFeature
|
|
958
|
+
: identification? valuePart
|
|
959
|
+
| identification? payloadFeatureSpecializationPart valuePart?
|
|
960
|
+
| ownedFeatureTyping ( ownedMultiplicity)?
|
|
961
|
+
| ownedMultiplicity ( ownedFeatureTyping)?
|
|
962
|
+
;
|
|
963
|
+
|
|
964
|
+
payloadFeatureSpecializationPart
|
|
965
|
+
: featureSpecialization+ multiplicityPart? featureSpecialization*
|
|
966
|
+
| multiplicityPart featureSpecialization+
|
|
967
|
+
;
|
|
968
|
+
|
|
969
|
+
flowEndMember
|
|
970
|
+
: flowEnd
|
|
971
|
+
;
|
|
972
|
+
|
|
973
|
+
flowEnd
|
|
974
|
+
: qualifiedName (DOT qualifiedName)*
|
|
975
|
+
;
|
|
976
|
+
|
|
977
|
+
flowFeatureMember
|
|
978
|
+
: flowFeature
|
|
979
|
+
;
|
|
980
|
+
|
|
981
|
+
flowFeature
|
|
982
|
+
: flowFeatureRedefinition
|
|
983
|
+
;
|
|
984
|
+
|
|
985
|
+
flowFeatureRedefinition
|
|
986
|
+
: qualifiedName
|
|
987
|
+
;
|
|
988
|
+
|
|
989
|
+
valuePart
|
|
990
|
+
: featureValue
|
|
991
|
+
;
|
|
992
|
+
|
|
993
|
+
featureValue
|
|
994
|
+
: (EQ | COLON_EQ | DEFAULT ( EQ | COLON_EQ)?) ownedExpression
|
|
995
|
+
;
|
|
996
|
+
|
|
997
|
+
multiplicity
|
|
998
|
+
: multiplicitySubset
|
|
999
|
+
| multiplicityRange
|
|
1000
|
+
;
|
|
1001
|
+
|
|
1002
|
+
multiplicitySubset
|
|
1003
|
+
: MULTIPLICITY identification? subsets typeBody
|
|
1004
|
+
;
|
|
1005
|
+
|
|
1006
|
+
multiplicityRange
|
|
1007
|
+
: MULTIPLICITY identification? multiplicityBounds typeBody
|
|
1008
|
+
;
|
|
1009
|
+
|
|
1010
|
+
ownedMultiplicity
|
|
1011
|
+
: ownedMultiplicityRange
|
|
1012
|
+
;
|
|
1013
|
+
|
|
1014
|
+
ownedMultiplicityRange
|
|
1015
|
+
: multiplicityBounds
|
|
1016
|
+
;
|
|
1017
|
+
|
|
1018
|
+
multiplicityBounds
|
|
1019
|
+
: LBRACK (multiplicityExpressionMember DOT_DOT)? multiplicityExpressionMember RBRACK
|
|
1020
|
+
;
|
|
1021
|
+
|
|
1022
|
+
multiplicityExpressionMember
|
|
1023
|
+
: (literalExpression | featureReferenceExpression)
|
|
1024
|
+
;
|
|
1025
|
+
|
|
1026
|
+
metaclass
|
|
1027
|
+
: typePrefix METACLASS classifierDeclaration typeBody
|
|
1028
|
+
;
|
|
1029
|
+
|
|
1030
|
+
prefixMetadataAnnotation
|
|
1031
|
+
: HASH prefixMetadataFeature
|
|
1032
|
+
| HASH prefixMetadataUsage
|
|
1033
|
+
;
|
|
1034
|
+
|
|
1035
|
+
prefixMetadataMember
|
|
1036
|
+
: HASH prefixMetadataFeature
|
|
1037
|
+
| HASH prefixMetadataUsage
|
|
1038
|
+
;
|
|
1039
|
+
|
|
1040
|
+
prefixMetadataFeature
|
|
1041
|
+
: ownedFeatureTyping
|
|
1042
|
+
;
|
|
1043
|
+
|
|
1044
|
+
metadataFeature
|
|
1045
|
+
: (prefixMetadataMember)* (AT_SIGN | METADATA) metadataFeatureDeclaration (
|
|
1046
|
+
ABOUT annotation ( COMMA annotation)*
|
|
1047
|
+
)? metadataBody
|
|
1048
|
+
;
|
|
1049
|
+
|
|
1050
|
+
metadataFeatureDeclaration
|
|
1051
|
+
: (identification? ( COLON | TYPED BY))? ownedFeatureTyping
|
|
1052
|
+
;
|
|
1053
|
+
|
|
1054
|
+
metadataBody
|
|
1055
|
+
: SEMI
|
|
1056
|
+
| LBRACE ( metadataBodyElement)* RBRACE
|
|
1057
|
+
| LBRACE (definitionMember | metadataBodyUsageMember | aliasMember | importRule)* RBRACE
|
|
1058
|
+
;
|
|
1059
|
+
|
|
1060
|
+
metadataBodyElement
|
|
1061
|
+
: nonFeatureMember
|
|
1062
|
+
| metadataBodyFeatureMember
|
|
1063
|
+
| aliasMember
|
|
1064
|
+
| importRule
|
|
1065
|
+
;
|
|
1066
|
+
|
|
1067
|
+
metadataBodyFeatureMember
|
|
1068
|
+
: metadataBodyFeature
|
|
1069
|
+
;
|
|
1070
|
+
|
|
1071
|
+
metadataBodyFeature
|
|
1072
|
+
: FEATURE? (COLON_GT_GT | REDEFINES)? ownedRedefinition featureSpecializationPart? valuePart? metadataBody
|
|
1073
|
+
;
|
|
1074
|
+
|
|
1075
|
+
package
|
|
1076
|
+
: (prefixMetadataMember)* packageDeclaration packageBody
|
|
1077
|
+
;
|
|
1078
|
+
|
|
1079
|
+
libraryPackage
|
|
1080
|
+
: (STANDARD)? LIBRARY (prefixMetadataMember)* packageDeclaration packageBody
|
|
1081
|
+
;
|
|
1082
|
+
|
|
1083
|
+
packageDeclaration
|
|
1084
|
+
: PACKAGE identification?
|
|
1085
|
+
;
|
|
1086
|
+
|
|
1087
|
+
packageBody
|
|
1088
|
+
: SEMI
|
|
1089
|
+
| LBRACE packageBodyElement* RBRACE
|
|
1090
|
+
;
|
|
1091
|
+
|
|
1092
|
+
elementFilterMember
|
|
1093
|
+
: memberPrefix FILTER ownedExpression SEMI
|
|
1094
|
+
;
|
|
1095
|
+
|
|
1096
|
+
dependencyDeclaration
|
|
1097
|
+
: (identification? FROM)? qualifiedName (COMMA qualifiedName)* TO qualifiedName (
|
|
1098
|
+
COMMA qualifiedName
|
|
1099
|
+
)*
|
|
1100
|
+
;
|
|
1101
|
+
|
|
1102
|
+
annotatingMember
|
|
1103
|
+
: annotatingElement
|
|
1104
|
+
;
|
|
1105
|
+
|
|
1106
|
+
packageBodyElement
|
|
1107
|
+
: packageMember
|
|
1108
|
+
| elementFilterMember
|
|
1109
|
+
| aliasMember
|
|
1110
|
+
| importRule
|
|
1111
|
+
;
|
|
1112
|
+
|
|
1113
|
+
packageMember
|
|
1114
|
+
: memberPrefix (definitionElement | usageElement)
|
|
1115
|
+
;
|
|
1116
|
+
|
|
1117
|
+
definitionElement
|
|
1118
|
+
: package
|
|
1119
|
+
| libraryPackage
|
|
1120
|
+
| annotatingElement
|
|
1121
|
+
| dependency
|
|
1122
|
+
| attributeDefinition
|
|
1123
|
+
| enumerationDefinition
|
|
1124
|
+
| occurrenceDefinition
|
|
1125
|
+
| individualDefinition
|
|
1126
|
+
| itemDefinition
|
|
1127
|
+
| partDefinition
|
|
1128
|
+
| connectionDefinition
|
|
1129
|
+
| flowDefinition
|
|
1130
|
+
| interfaceDefinition
|
|
1131
|
+
| portDefinition
|
|
1132
|
+
| actionDefinition
|
|
1133
|
+
| calculationDefinition
|
|
1134
|
+
| stateDefinition
|
|
1135
|
+
| constraintDefinition
|
|
1136
|
+
| requirementDefinition
|
|
1137
|
+
| concernDefinition
|
|
1138
|
+
| caseDefinition
|
|
1139
|
+
| analysisCaseDefinition
|
|
1140
|
+
| verificationCaseDefinition
|
|
1141
|
+
| useCaseDefinition
|
|
1142
|
+
| viewDefinition
|
|
1143
|
+
| viewpointDefinition
|
|
1144
|
+
| renderingDefinition
|
|
1145
|
+
| metadataDefinition
|
|
1146
|
+
| allocationDefinition
|
|
1147
|
+
| extendedDefinition
|
|
1148
|
+
;
|
|
1149
|
+
|
|
1150
|
+
usageElement
|
|
1151
|
+
: nonOccurrenceUsageElement
|
|
1152
|
+
| occurrenceUsageElement
|
|
1153
|
+
;
|
|
1154
|
+
|
|
1155
|
+
basicDefinitionPrefix
|
|
1156
|
+
: ABSTRACT
|
|
1157
|
+
| VARIATION
|
|
1158
|
+
;
|
|
1159
|
+
|
|
1160
|
+
definitionExtensionKeyword
|
|
1161
|
+
: prefixMetadataMember
|
|
1162
|
+
;
|
|
1163
|
+
|
|
1164
|
+
definitionPrefix
|
|
1165
|
+
: basicDefinitionPrefix? definitionExtensionKeyword*
|
|
1166
|
+
;
|
|
1167
|
+
|
|
1168
|
+
definition
|
|
1169
|
+
: definitionDeclaration definitionBody
|
|
1170
|
+
;
|
|
1171
|
+
|
|
1172
|
+
definitionDeclaration
|
|
1173
|
+
: identification? subclassificationPart?
|
|
1174
|
+
;
|
|
1175
|
+
|
|
1176
|
+
definitionBody
|
|
1177
|
+
: SEMI
|
|
1178
|
+
| LBRACE definitionBodyItem* RBRACE
|
|
1179
|
+
;
|
|
1180
|
+
|
|
1181
|
+
definitionBodyItem
|
|
1182
|
+
: importRule
|
|
1183
|
+
| memberPrefix definitionBodyItemContent
|
|
1184
|
+
| ( sourceSuccessionMember)? memberPrefix endOccurrenceUsageElement
|
|
1185
|
+
| ( sourceSuccessionMember)? memberPrefix occurrenceUsageElement
|
|
1186
|
+
;
|
|
1187
|
+
|
|
1188
|
+
// Factored dispatch: after memberPrefix is consumed, the next token
|
|
1189
|
+
// (ALIAS, VARIANT, keyword, or identifier) unambiguously selects the branch.
|
|
1190
|
+
// This reduces the SLL prediction DFA from 6 nullable-prefix alternatives to 3+4.
|
|
1191
|
+
definitionBodyItemContent
|
|
1192
|
+
: ALIAS (LT name GT)? (name)? FOR qualifiedName relationshipBody
|
|
1193
|
+
| VARIANT variantUsageElement
|
|
1194
|
+
| definitionElement
|
|
1195
|
+
| nonOccurrenceUsageElement
|
|
1196
|
+
;
|
|
1197
|
+
|
|
1198
|
+
definitionMember
|
|
1199
|
+
: memberPrefix definitionElement
|
|
1200
|
+
;
|
|
1201
|
+
|
|
1202
|
+
variantUsageMember
|
|
1203
|
+
: memberPrefix VARIANT variantUsageElement
|
|
1204
|
+
;
|
|
1205
|
+
|
|
1206
|
+
nonOccurrenceUsageMember
|
|
1207
|
+
: memberPrefix nonOccurrenceUsageElement
|
|
1208
|
+
;
|
|
1209
|
+
|
|
1210
|
+
occurrenceUsageMember
|
|
1211
|
+
: memberPrefix occurrenceUsageElement
|
|
1212
|
+
;
|
|
1213
|
+
|
|
1214
|
+
structureUsageMember
|
|
1215
|
+
: memberPrefix structureUsageElement
|
|
1216
|
+
;
|
|
1217
|
+
|
|
1218
|
+
behaviorUsageMember
|
|
1219
|
+
: memberPrefix behaviorUsageElement
|
|
1220
|
+
;
|
|
1221
|
+
|
|
1222
|
+
refPrefix
|
|
1223
|
+
: (featureDirection)? (DERIVED)? (ABSTRACT | VARIATION)? (CONSTANT)?
|
|
1224
|
+
;
|
|
1225
|
+
|
|
1226
|
+
basicUsagePrefix
|
|
1227
|
+
: refPrefix (REF)?
|
|
1228
|
+
;
|
|
1229
|
+
|
|
1230
|
+
endUsagePrefix
|
|
1231
|
+
: END ownedCrossFeatureMember
|
|
1232
|
+
;
|
|
1233
|
+
|
|
1234
|
+
usageExtensionKeyword
|
|
1235
|
+
: prefixMetadataMember
|
|
1236
|
+
;
|
|
1237
|
+
|
|
1238
|
+
unextendedUsagePrefix
|
|
1239
|
+
: endUsagePrefix
|
|
1240
|
+
| basicUsagePrefix
|
|
1241
|
+
;
|
|
1242
|
+
|
|
1243
|
+
usagePrefix
|
|
1244
|
+
: unextendedUsagePrefix usageExtensionKeyword*
|
|
1245
|
+
;
|
|
1246
|
+
|
|
1247
|
+
usage
|
|
1248
|
+
: usageDeclaration? usageCompletion
|
|
1249
|
+
;
|
|
1250
|
+
|
|
1251
|
+
usageDeclaration
|
|
1252
|
+
: identification featureSpecializationPart?
|
|
1253
|
+
| featureSpecializationPart
|
|
1254
|
+
;
|
|
1255
|
+
|
|
1256
|
+
usageCompletion
|
|
1257
|
+
: valuePart? usageBody
|
|
1258
|
+
;
|
|
1259
|
+
|
|
1260
|
+
usageBody
|
|
1261
|
+
: definitionBody
|
|
1262
|
+
;
|
|
1263
|
+
|
|
1264
|
+
defaultReferenceUsage
|
|
1265
|
+
: refPrefix usage
|
|
1266
|
+
;
|
|
1267
|
+
|
|
1268
|
+
referenceUsage
|
|
1269
|
+
: (endUsagePrefix | refPrefix) REF usage
|
|
1270
|
+
;
|
|
1271
|
+
|
|
1272
|
+
// Unnamed end feature with specialization (e.g., end :>> QualifiedName;)
|
|
1273
|
+
// Handles end features in connection/flow/interface definition bodies
|
|
1274
|
+
// where no name is given, only a redefines/subsets/typing.
|
|
1275
|
+
endFeatureUsage
|
|
1276
|
+
: endUsagePrefix featureDeclaration usageCompletion
|
|
1277
|
+
;
|
|
1278
|
+
|
|
1279
|
+
variantReference
|
|
1280
|
+
: ownedReferenceSubsetting featureSpecialization* usageBody
|
|
1281
|
+
;
|
|
1282
|
+
|
|
1283
|
+
nonOccurrenceUsageElement
|
|
1284
|
+
: referenceUsage
|
|
1285
|
+
| endFeatureUsage
|
|
1286
|
+
| attributeUsage
|
|
1287
|
+
| enumerationUsage
|
|
1288
|
+
| bindingConnectorAsUsage
|
|
1289
|
+
| successionAsUsage
|
|
1290
|
+
| extendedUsage
|
|
1291
|
+
| defaultReferenceUsage
|
|
1292
|
+
;
|
|
1293
|
+
|
|
1294
|
+
// end [multiplicity] <occurrence-keyword> — e.g. end [1] port p : P;
|
|
1295
|
+
// The END keyword marks a feature as a connection/interface/flow endpoint.
|
|
1296
|
+
// The optional multiplicity constrains the end feature cardinality.
|
|
1297
|
+
endOccurrenceUsageElement
|
|
1298
|
+
: END (name)? (ownedCrossMultiplicityMember)? (NONUNIQUE)? occurrenceUsageElement
|
|
1299
|
+
;
|
|
1300
|
+
|
|
1301
|
+
occurrenceUsageElement
|
|
1302
|
+
: structureUsageElement
|
|
1303
|
+
| behaviorUsageElement
|
|
1304
|
+
;
|
|
1305
|
+
|
|
1306
|
+
structureUsageElement
|
|
1307
|
+
: occurrenceUsage
|
|
1308
|
+
| individualUsage
|
|
1309
|
+
| portionUsage
|
|
1310
|
+
| eventOccurrenceUsage
|
|
1311
|
+
| itemUsage
|
|
1312
|
+
| partUsage
|
|
1313
|
+
| viewUsage
|
|
1314
|
+
| renderingUsage
|
|
1315
|
+
| portUsage
|
|
1316
|
+
| connectionUsage
|
|
1317
|
+
| interfaceUsage
|
|
1318
|
+
| allocationUsage
|
|
1319
|
+
| message
|
|
1320
|
+
| flowUsage
|
|
1321
|
+
| successionFlowUsage
|
|
1322
|
+
;
|
|
1323
|
+
|
|
1324
|
+
behaviorUsageElement
|
|
1325
|
+
: actionUsage
|
|
1326
|
+
| calculationUsage
|
|
1327
|
+
| stateUsage
|
|
1328
|
+
| constraintUsage
|
|
1329
|
+
| requirementUsage
|
|
1330
|
+
| concernUsage
|
|
1331
|
+
| caseUsage
|
|
1332
|
+
| analysisCaseUsage
|
|
1333
|
+
| verificationCaseUsage
|
|
1334
|
+
| useCaseUsage
|
|
1335
|
+
| viewpointUsage
|
|
1336
|
+
| performActionUsage
|
|
1337
|
+
| exhibitStateUsage
|
|
1338
|
+
| includeUseCaseUsage
|
|
1339
|
+
| assertConstraintUsage
|
|
1340
|
+
| satisfyRequirementUsage
|
|
1341
|
+
;
|
|
1342
|
+
|
|
1343
|
+
variantUsageElement
|
|
1344
|
+
: variantReference
|
|
1345
|
+
| referenceUsage
|
|
1346
|
+
| attributeUsage
|
|
1347
|
+
| bindingConnectorAsUsage
|
|
1348
|
+
| successionAsUsage
|
|
1349
|
+
| occurrenceUsage
|
|
1350
|
+
| individualUsage
|
|
1351
|
+
| portionUsage
|
|
1352
|
+
| eventOccurrenceUsage
|
|
1353
|
+
| itemUsage
|
|
1354
|
+
| partUsage
|
|
1355
|
+
| viewUsage
|
|
1356
|
+
| renderingUsage
|
|
1357
|
+
| portUsage
|
|
1358
|
+
| connectionUsage
|
|
1359
|
+
| interfaceUsage
|
|
1360
|
+
| allocationUsage
|
|
1361
|
+
| message
|
|
1362
|
+
| flowUsage
|
|
1363
|
+
| successionFlowUsage
|
|
1364
|
+
| behaviorUsageElement
|
|
1365
|
+
;
|
|
1366
|
+
|
|
1367
|
+
subclassificationPart
|
|
1368
|
+
: (COLON_GT | SPECIALIZES) ownedSubclassification (COMMA ownedSubclassification)*
|
|
1369
|
+
;
|
|
1370
|
+
|
|
1371
|
+
attributeDefinition
|
|
1372
|
+
: definitionPrefix ATTRIBUTE DEF definition
|
|
1373
|
+
;
|
|
1374
|
+
|
|
1375
|
+
attributeUsage
|
|
1376
|
+
: usagePrefix ATTRIBUTE usage
|
|
1377
|
+
;
|
|
1378
|
+
|
|
1379
|
+
enumerationDefinition
|
|
1380
|
+
: definitionExtensionKeyword* ENUM DEF definitionDeclaration enumerationBody
|
|
1381
|
+
;
|
|
1382
|
+
|
|
1383
|
+
enumerationBody
|
|
1384
|
+
: SEMI
|
|
1385
|
+
| LBRACE ( annotatingMember | enumerationUsageMember)* RBRACE
|
|
1386
|
+
;
|
|
1387
|
+
|
|
1388
|
+
enumerationUsageMember
|
|
1389
|
+
: (prefixMetadataMember)* memberPrefix enumeratedValue
|
|
1390
|
+
;
|
|
1391
|
+
|
|
1392
|
+
enumeratedValue
|
|
1393
|
+
: ENUM? usage
|
|
1394
|
+
;
|
|
1395
|
+
|
|
1396
|
+
enumerationUsage
|
|
1397
|
+
: usagePrefix ENUM usage
|
|
1398
|
+
;
|
|
1399
|
+
|
|
1400
|
+
occurrenceDefinitionPrefix
|
|
1401
|
+
: basicDefinitionPrefix? (INDIVIDUAL emptyMultiplicityMember)? definitionExtensionKeyword*
|
|
1402
|
+
;
|
|
1403
|
+
|
|
1404
|
+
occurrenceDefinition
|
|
1405
|
+
: occurrenceDefinitionPrefix OCCURRENCE DEF definition
|
|
1406
|
+
;
|
|
1407
|
+
|
|
1408
|
+
individualDefinition
|
|
1409
|
+
: basicDefinitionPrefix? INDIVIDUAL definitionExtensionKeyword* DEF definition emptyMultiplicityMember
|
|
1410
|
+
;
|
|
1411
|
+
|
|
1412
|
+
emptyMultiplicityMember
|
|
1413
|
+
: emptyMultiplicity_
|
|
1414
|
+
;
|
|
1415
|
+
|
|
1416
|
+
occurrenceUsagePrefix
|
|
1417
|
+
: basicUsagePrefix (INDIVIDUAL)? (portionKind)? usageExtensionKeyword*
|
|
1418
|
+
;
|
|
1419
|
+
|
|
1420
|
+
occurrenceUsage
|
|
1421
|
+
: occurrenceUsagePrefix OCCURRENCE usage
|
|
1422
|
+
;
|
|
1423
|
+
|
|
1424
|
+
individualUsage
|
|
1425
|
+
: basicUsagePrefix INDIVIDUAL usageExtensionKeyword* usage
|
|
1426
|
+
;
|
|
1427
|
+
|
|
1428
|
+
portionUsage
|
|
1429
|
+
: basicUsagePrefix (INDIVIDUAL)? portionKind usageExtensionKeyword* usage
|
|
1430
|
+
;
|
|
1431
|
+
|
|
1432
|
+
portionKind
|
|
1433
|
+
: SNAPSHOT
|
|
1434
|
+
| TIMESLICE
|
|
1435
|
+
;
|
|
1436
|
+
|
|
1437
|
+
eventOccurrenceUsage
|
|
1438
|
+
: occurrenceUsagePrefix EVENT (
|
|
1439
|
+
ownedReferenceSubsetting featureSpecializationPart?
|
|
1440
|
+
| OCCURRENCE usageDeclaration?
|
|
1441
|
+
) usageCompletion
|
|
1442
|
+
;
|
|
1443
|
+
|
|
1444
|
+
sourceSuccessionMember
|
|
1445
|
+
: THEN sourceSuccession
|
|
1446
|
+
;
|
|
1447
|
+
|
|
1448
|
+
sourceSuccession
|
|
1449
|
+
: sourceEndMember
|
|
1450
|
+
;
|
|
1451
|
+
|
|
1452
|
+
sourceEndMember
|
|
1453
|
+
: sourceEnd
|
|
1454
|
+
;
|
|
1455
|
+
|
|
1456
|
+
sourceEnd
|
|
1457
|
+
: (ownedMultiplicity)?
|
|
1458
|
+
;
|
|
1459
|
+
|
|
1460
|
+
itemDefinition
|
|
1461
|
+
: occurrenceDefinitionPrefix ITEM DEF definition
|
|
1462
|
+
;
|
|
1463
|
+
|
|
1464
|
+
itemUsage
|
|
1465
|
+
: occurrenceUsagePrefix ITEM usage
|
|
1466
|
+
;
|
|
1467
|
+
|
|
1468
|
+
partDefinition
|
|
1469
|
+
: occurrenceDefinitionPrefix PART DEF definition
|
|
1470
|
+
;
|
|
1471
|
+
|
|
1472
|
+
partUsage
|
|
1473
|
+
: occurrenceUsagePrefix PART usage
|
|
1474
|
+
;
|
|
1475
|
+
|
|
1476
|
+
portDefinition
|
|
1477
|
+
: definitionPrefix PORT DEF definition conjugatedPortDefinitionMember
|
|
1478
|
+
;
|
|
1479
|
+
|
|
1480
|
+
conjugatedPortDefinitionMember
|
|
1481
|
+
: conjugatedPortDefinition
|
|
1482
|
+
;
|
|
1483
|
+
|
|
1484
|
+
conjugatedPortDefinition
|
|
1485
|
+
: portConjugation
|
|
1486
|
+
;
|
|
1487
|
+
|
|
1488
|
+
portUsage
|
|
1489
|
+
: occurrenceUsagePrefix PORT usage
|
|
1490
|
+
;
|
|
1491
|
+
|
|
1492
|
+
conjugatedPortTyping
|
|
1493
|
+
: TILDE qualifiedName
|
|
1494
|
+
;
|
|
1495
|
+
|
|
1496
|
+
connectionDefinition
|
|
1497
|
+
: occurrenceDefinitionPrefix CONNECTION DEF definition
|
|
1498
|
+
;
|
|
1499
|
+
|
|
1500
|
+
connectionUsage
|
|
1501
|
+
: occurrenceUsagePrefix (
|
|
1502
|
+
CONNECTION usageDeclaration? valuePart? ( CONNECT connectorPart)?
|
|
1503
|
+
| CONNECT connectorPart
|
|
1504
|
+
) usageBody
|
|
1505
|
+
;
|
|
1506
|
+
|
|
1507
|
+
connectorPart
|
|
1508
|
+
: binaryConnectorPart
|
|
1509
|
+
| naryConnectorPart
|
|
1510
|
+
;
|
|
1511
|
+
|
|
1512
|
+
binaryConnectorPart
|
|
1513
|
+
: connectorEndMember TO connectorEndMember
|
|
1514
|
+
;
|
|
1515
|
+
|
|
1516
|
+
naryConnectorPart
|
|
1517
|
+
: LPAREN connectorEndMember COMMA connectorEndMember (COMMA connectorEndMember)* RPAREN
|
|
1518
|
+
;
|
|
1519
|
+
|
|
1520
|
+
bindingConnectorAsUsage
|
|
1521
|
+
: usagePrefix (BINDING usageDeclaration?)? BIND connectorEndMember EQ connectorEndMember usageBody
|
|
1522
|
+
;
|
|
1523
|
+
|
|
1524
|
+
successionAsUsage
|
|
1525
|
+
: usagePrefix (SUCCESSION usageDeclaration?)? FIRST connectorEndMember THEN connectorEndMember usageBody
|
|
1526
|
+
;
|
|
1527
|
+
|
|
1528
|
+
interfaceDefinition
|
|
1529
|
+
: occurrenceDefinitionPrefix INTERFACE DEF definitionDeclaration interfaceBody
|
|
1530
|
+
;
|
|
1531
|
+
|
|
1532
|
+
interfaceBody
|
|
1533
|
+
: SEMI
|
|
1534
|
+
| LBRACE interfaceBodyItem* RBRACE
|
|
1535
|
+
;
|
|
1536
|
+
|
|
1537
|
+
interfaceBodyItem
|
|
1538
|
+
: definitionMember
|
|
1539
|
+
| variantUsageMember
|
|
1540
|
+
| interfaceNonOccurrenceUsageMember
|
|
1541
|
+
| ( sourceSuccessionMember)? interfaceOccurrenceUsageMember
|
|
1542
|
+
| aliasMember
|
|
1543
|
+
| importRule
|
|
1544
|
+
;
|
|
1545
|
+
|
|
1546
|
+
interfaceNonOccurrenceUsageMember
|
|
1547
|
+
: memberPrefix interfaceNonOccurrenceUsageElement
|
|
1548
|
+
;
|
|
1549
|
+
|
|
1550
|
+
interfaceNonOccurrenceUsageElement
|
|
1551
|
+
: referenceUsage
|
|
1552
|
+
| attributeUsage
|
|
1553
|
+
| enumerationUsage
|
|
1554
|
+
| bindingConnectorAsUsage
|
|
1555
|
+
| successionAsUsage
|
|
1556
|
+
;
|
|
1557
|
+
|
|
1558
|
+
interfaceOccurrenceUsageMember
|
|
1559
|
+
: memberPrefix interfaceOccurrenceUsageElement
|
|
1560
|
+
;
|
|
1561
|
+
|
|
1562
|
+
interfaceOccurrenceUsageElement
|
|
1563
|
+
: defaultInterfaceEnd
|
|
1564
|
+
| endOccurrenceUsageElement
|
|
1565
|
+
| structureUsageElement
|
|
1566
|
+
| behaviorUsageElement
|
|
1567
|
+
;
|
|
1568
|
+
|
|
1569
|
+
defaultInterfaceEnd
|
|
1570
|
+
: END usage
|
|
1571
|
+
;
|
|
1572
|
+
|
|
1573
|
+
interfaceUsage
|
|
1574
|
+
: occurrenceUsagePrefix INTERFACE interfaceUsageDeclaration interfaceBody
|
|
1575
|
+
;
|
|
1576
|
+
|
|
1577
|
+
interfaceUsageDeclaration
|
|
1578
|
+
: usageDeclaration? valuePart? (CONNECT interfacePart)?
|
|
1579
|
+
| interfacePart
|
|
1580
|
+
;
|
|
1581
|
+
|
|
1582
|
+
interfacePart
|
|
1583
|
+
: binaryInterfacePart
|
|
1584
|
+
| naryInterfacePart
|
|
1585
|
+
;
|
|
1586
|
+
|
|
1587
|
+
binaryInterfacePart
|
|
1588
|
+
: interfaceEndMember TO interfaceEndMember
|
|
1589
|
+
;
|
|
1590
|
+
|
|
1591
|
+
naryInterfacePart
|
|
1592
|
+
: LPAREN interfaceEndMember COMMA interfaceEndMember (COMMA interfaceEndMember)* RPAREN
|
|
1593
|
+
;
|
|
1594
|
+
|
|
1595
|
+
interfaceEndMember
|
|
1596
|
+
: interfaceEnd
|
|
1597
|
+
;
|
|
1598
|
+
|
|
1599
|
+
interfaceEnd
|
|
1600
|
+
: (ownedCrossMultiplicityMember)? (name ( COLON_COLON_GT | REFERENCES))? ownedReferenceSubsetting ownedMultiplicity?
|
|
1601
|
+
;
|
|
1602
|
+
|
|
1603
|
+
allocationDefinition
|
|
1604
|
+
: occurrenceDefinitionPrefix ALLOCATION DEF definition
|
|
1605
|
+
;
|
|
1606
|
+
|
|
1607
|
+
allocationUsage
|
|
1608
|
+
: occurrenceUsagePrefix allocationUsageDeclaration usageBody
|
|
1609
|
+
;
|
|
1610
|
+
|
|
1611
|
+
allocationUsageDeclaration
|
|
1612
|
+
: ALLOCATION usageDeclaration? (ALLOCATE connectorPart)?
|
|
1613
|
+
| ALLOCATE connectorPart
|
|
1614
|
+
;
|
|
1615
|
+
|
|
1616
|
+
flowDefinition
|
|
1617
|
+
: occurrenceDefinitionPrefix FLOW DEF definition
|
|
1618
|
+
;
|
|
1619
|
+
|
|
1620
|
+
message
|
|
1621
|
+
: occurrenceUsagePrefix MESSAGE messageDeclaration definitionBody
|
|
1622
|
+
;
|
|
1623
|
+
|
|
1624
|
+
messageDeclaration
|
|
1625
|
+
: usageDeclaration? valuePart? (OF flowPayloadFeatureMember)? (
|
|
1626
|
+
FROM messageEventMember TO messageEventMember
|
|
1627
|
+
)?
|
|
1628
|
+
| messageEventMember TO messageEventMember
|
|
1629
|
+
;
|
|
1630
|
+
|
|
1631
|
+
messageEventMember
|
|
1632
|
+
: messageEvent
|
|
1633
|
+
;
|
|
1634
|
+
|
|
1635
|
+
messageEvent
|
|
1636
|
+
: ownedReferenceSubsetting
|
|
1637
|
+
;
|
|
1638
|
+
|
|
1639
|
+
flowUsage
|
|
1640
|
+
: occurrenceUsagePrefix FLOW flowDeclaration definitionBody
|
|
1641
|
+
;
|
|
1642
|
+
|
|
1643
|
+
successionFlowUsage
|
|
1644
|
+
: occurrenceUsagePrefix SUCCESSION FLOW flowDeclaration definitionBody
|
|
1645
|
+
;
|
|
1646
|
+
|
|
1647
|
+
flowPayloadFeatureMember
|
|
1648
|
+
: flowPayloadFeature
|
|
1649
|
+
;
|
|
1650
|
+
|
|
1651
|
+
flowPayloadFeature
|
|
1652
|
+
: payloadFeature
|
|
1653
|
+
;
|
|
1654
|
+
|
|
1655
|
+
flowEndSubsetting
|
|
1656
|
+
: qualifiedName
|
|
1657
|
+
| featureChainPrefix
|
|
1658
|
+
;
|
|
1659
|
+
|
|
1660
|
+
featureChainPrefix
|
|
1661
|
+
: (ownedFeatureChaining DOT)+ ownedFeatureChaining DOT
|
|
1662
|
+
;
|
|
1663
|
+
|
|
1664
|
+
actionDefinition
|
|
1665
|
+
: occurrenceDefinitionPrefix ACTION DEF definitionDeclaration actionBody
|
|
1666
|
+
;
|
|
1667
|
+
|
|
1668
|
+
actionBody
|
|
1669
|
+
: SEMI
|
|
1670
|
+
| LBRACE actionBodyItem* RBRACE
|
|
1671
|
+
;
|
|
1672
|
+
|
|
1673
|
+
actionBodyItem
|
|
1674
|
+
: nonBehaviorBodyItem
|
|
1675
|
+
| initialNodeMember ( actionTargetSuccessionMember)*
|
|
1676
|
+
| (sourceSuccessionMember)? actionBehaviorMember (actionTargetSuccessionMember)*
|
|
1677
|
+
| guardedSuccessionMember
|
|
1678
|
+
;
|
|
1679
|
+
|
|
1680
|
+
nonBehaviorBodyItem
|
|
1681
|
+
: importRule
|
|
1682
|
+
| aliasMember
|
|
1683
|
+
| definitionMember
|
|
1684
|
+
| variantUsageMember
|
|
1685
|
+
| nonOccurrenceUsageMember
|
|
1686
|
+
| ( sourceSuccessionMember)? structureUsageMember
|
|
1687
|
+
;
|
|
1688
|
+
|
|
1689
|
+
actionBehaviorMember
|
|
1690
|
+
: actionNodeMember
|
|
1691
|
+
| behaviorUsageMember
|
|
1692
|
+
;
|
|
1693
|
+
|
|
1694
|
+
initialNodeMember
|
|
1695
|
+
: memberPrefix FIRST qualifiedName relationshipBody
|
|
1696
|
+
;
|
|
1697
|
+
|
|
1698
|
+
actionNodeMember
|
|
1699
|
+
: memberPrefix actionNode
|
|
1700
|
+
;
|
|
1701
|
+
|
|
1702
|
+
actionTargetSuccessionMember
|
|
1703
|
+
: memberPrefix actionTargetSuccession
|
|
1704
|
+
;
|
|
1705
|
+
|
|
1706
|
+
guardedSuccessionMember
|
|
1707
|
+
: memberPrefix guardedSuccession
|
|
1708
|
+
;
|
|
1709
|
+
|
|
1710
|
+
actionUsage
|
|
1711
|
+
: occurrenceUsagePrefix ACTION actionUsageDeclaration actionBody
|
|
1712
|
+
;
|
|
1713
|
+
|
|
1714
|
+
actionUsageDeclaration
|
|
1715
|
+
: usageDeclaration? valuePart?
|
|
1716
|
+
;
|
|
1717
|
+
|
|
1718
|
+
performActionUsage
|
|
1719
|
+
: occurrenceUsagePrefix PERFORM performActionUsageDeclaration actionBody
|
|
1720
|
+
;
|
|
1721
|
+
|
|
1722
|
+
performActionUsageDeclaration
|
|
1723
|
+
: (ownedReferenceSubsetting featureSpecializationPart? | ACTION usageDeclaration?) valuePart?
|
|
1724
|
+
;
|
|
1725
|
+
|
|
1726
|
+
actionNode
|
|
1727
|
+
: controlNode
|
|
1728
|
+
| sendNode
|
|
1729
|
+
| acceptNode
|
|
1730
|
+
| assignmentNode
|
|
1731
|
+
| terminateNode
|
|
1732
|
+
| ifNode
|
|
1733
|
+
| whileLoopNode
|
|
1734
|
+
| forLoopNode
|
|
1735
|
+
;
|
|
1736
|
+
|
|
1737
|
+
actionNodeUsageDeclaration
|
|
1738
|
+
: ACTION usageDeclaration?
|
|
1739
|
+
;
|
|
1740
|
+
|
|
1741
|
+
actionNodePrefix
|
|
1742
|
+
: occurrenceUsagePrefix actionNodeUsageDeclaration?
|
|
1743
|
+
;
|
|
1744
|
+
|
|
1745
|
+
controlNode
|
|
1746
|
+
: mergeNode
|
|
1747
|
+
| decisionNode
|
|
1748
|
+
| joinNode
|
|
1749
|
+
| forkNode
|
|
1750
|
+
;
|
|
1751
|
+
|
|
1752
|
+
controlNodePrefix
|
|
1753
|
+
: refPrefix (INDIVIDUAL)? (portionKind)? usageExtensionKeyword*
|
|
1754
|
+
;
|
|
1755
|
+
|
|
1756
|
+
mergeNode
|
|
1757
|
+
: controlNodePrefix MERGE usageDeclaration? actionBody
|
|
1758
|
+
;
|
|
1759
|
+
|
|
1760
|
+
decisionNode
|
|
1761
|
+
: controlNodePrefix DECIDE usageDeclaration? actionBody
|
|
1762
|
+
;
|
|
1763
|
+
|
|
1764
|
+
joinNode
|
|
1765
|
+
: controlNodePrefix JOIN usageDeclaration? actionBody
|
|
1766
|
+
;
|
|
1767
|
+
|
|
1768
|
+
forkNode
|
|
1769
|
+
: controlNodePrefix FORK usageDeclaration? actionBody
|
|
1770
|
+
;
|
|
1771
|
+
|
|
1772
|
+
acceptNode
|
|
1773
|
+
: occurrenceUsagePrefix acceptNodeDeclaration actionBody
|
|
1774
|
+
;
|
|
1775
|
+
|
|
1776
|
+
acceptNodeDeclaration
|
|
1777
|
+
: actionNodeUsageDeclaration? ACCEPT acceptParameterPart
|
|
1778
|
+
;
|
|
1779
|
+
|
|
1780
|
+
acceptParameterPart
|
|
1781
|
+
: payloadParameterMember (VIA nodeParameterMember)?
|
|
1782
|
+
;
|
|
1783
|
+
|
|
1784
|
+
payloadParameterMember
|
|
1785
|
+
: payloadParameter
|
|
1786
|
+
;
|
|
1787
|
+
|
|
1788
|
+
payloadParameter
|
|
1789
|
+
: payloadFeature
|
|
1790
|
+
| identification? payloadFeatureSpecializationPart? triggerValuePart
|
|
1791
|
+
;
|
|
1792
|
+
|
|
1793
|
+
triggerValuePart
|
|
1794
|
+
: triggerFeatureValue
|
|
1795
|
+
;
|
|
1796
|
+
|
|
1797
|
+
triggerFeatureValue
|
|
1798
|
+
: triggerExpression
|
|
1799
|
+
;
|
|
1800
|
+
|
|
1801
|
+
triggerExpression
|
|
1802
|
+
: (AT | AFTER) argumentMember
|
|
1803
|
+
| WHEN argumentExpressionMember
|
|
1804
|
+
;
|
|
1805
|
+
|
|
1806
|
+
sendNode
|
|
1807
|
+
: occurrenceUsagePrefix (actionNodeUsageDeclaration | actionUsageDeclaration) SEND (
|
|
1808
|
+
nodeParameterMember senderReceiverPart?
|
|
1809
|
+
| emptyParameterMember senderReceiverPart?
|
|
1810
|
+
) actionBody
|
|
1811
|
+
;
|
|
1812
|
+
|
|
1813
|
+
sendNodeDeclaration
|
|
1814
|
+
: actionNodeUsageDeclaration? SEND nodeParameterMember senderReceiverPart?
|
|
1815
|
+
;
|
|
1816
|
+
|
|
1817
|
+
senderReceiverPart
|
|
1818
|
+
: VIA nodeParameterMember (TO nodeParameterMember)?
|
|
1819
|
+
| emptyParameterMember TO nodeParameterMember
|
|
1820
|
+
;
|
|
1821
|
+
|
|
1822
|
+
nodeParameterMember
|
|
1823
|
+
: nodeParameter
|
|
1824
|
+
;
|
|
1825
|
+
|
|
1826
|
+
nodeParameter
|
|
1827
|
+
: featureBinding
|
|
1828
|
+
;
|
|
1829
|
+
|
|
1830
|
+
featureBinding
|
|
1831
|
+
: ownedExpression
|
|
1832
|
+
;
|
|
1833
|
+
|
|
1834
|
+
emptyParameterMember
|
|
1835
|
+
: emptyUsage_
|
|
1836
|
+
;
|
|
1837
|
+
|
|
1838
|
+
assignmentNode
|
|
1839
|
+
: occurrenceUsagePrefix assignmentNodeDeclaration actionBody
|
|
1840
|
+
;
|
|
1841
|
+
|
|
1842
|
+
assignmentNodeDeclaration
|
|
1843
|
+
: (actionNodeUsageDeclaration)? ASSIGN assignmentTargetMember featureChainMember COLON_EQ nodeParameterMember
|
|
1844
|
+
;
|
|
1845
|
+
|
|
1846
|
+
assignmentTargetMember
|
|
1847
|
+
: assignmentTargetParameter
|
|
1848
|
+
;
|
|
1849
|
+
|
|
1850
|
+
assignmentTargetParameter
|
|
1851
|
+
: (assignmentTargetBinding DOT)?
|
|
1852
|
+
;
|
|
1853
|
+
|
|
1854
|
+
assignmentTargetBinding
|
|
1855
|
+
: nonFeatureChainPrimaryExpression
|
|
1856
|
+
;
|
|
1857
|
+
|
|
1858
|
+
terminateNode
|
|
1859
|
+
: occurrenceUsagePrefix actionNodeUsageDeclaration? TERMINATE (nodeParameterMember)? actionBody
|
|
1860
|
+
;
|
|
1861
|
+
|
|
1862
|
+
ifNode
|
|
1863
|
+
: actionNodePrefix IF expressionParameterMember actionBodyParameterMember (
|
|
1864
|
+
ELSE ( actionBodyParameterMember | ifNodeParameterMember)
|
|
1865
|
+
)?
|
|
1866
|
+
;
|
|
1867
|
+
|
|
1868
|
+
expressionParameterMember
|
|
1869
|
+
: ownedExpression
|
|
1870
|
+
;
|
|
1871
|
+
|
|
1872
|
+
actionBodyParameterMember
|
|
1873
|
+
: actionBodyParameter
|
|
1874
|
+
;
|
|
1875
|
+
|
|
1876
|
+
actionBodyParameter
|
|
1877
|
+
: (ACTION usageDeclaration?)? LBRACE actionBodyItem* RBRACE
|
|
1878
|
+
;
|
|
1879
|
+
|
|
1880
|
+
ifNodeParameterMember
|
|
1881
|
+
: ifNode
|
|
1882
|
+
;
|
|
1883
|
+
|
|
1884
|
+
whileLoopNode
|
|
1885
|
+
: actionNodePrefix (WHILE expressionParameterMember | LOOP emptyParameterMember) actionBodyParameterMember (
|
|
1886
|
+
UNTIL expressionParameterMember SEMI
|
|
1887
|
+
)?
|
|
1888
|
+
;
|
|
1889
|
+
|
|
1890
|
+
forLoopNode
|
|
1891
|
+
: actionNodePrefix FOR forVariableDeclarationMember IN nodeParameterMember actionBodyParameterMember
|
|
1892
|
+
;
|
|
1893
|
+
|
|
1894
|
+
forVariableDeclarationMember
|
|
1895
|
+
: usageDeclaration?
|
|
1896
|
+
;
|
|
1897
|
+
|
|
1898
|
+
forVariableDeclaration
|
|
1899
|
+
: usageDeclaration?
|
|
1900
|
+
;
|
|
1901
|
+
|
|
1902
|
+
actionTargetSuccession
|
|
1903
|
+
: (targetSuccession | guardedTargetSuccession | defaultTargetSuccession) usageBody
|
|
1904
|
+
;
|
|
1905
|
+
|
|
1906
|
+
targetSuccession
|
|
1907
|
+
: sourceEndMember THEN connectorEndMember
|
|
1908
|
+
;
|
|
1909
|
+
|
|
1910
|
+
guardedTargetSuccession
|
|
1911
|
+
: guardExpressionMember THEN transitionSuccessionMember
|
|
1912
|
+
;
|
|
1913
|
+
|
|
1914
|
+
defaultTargetSuccession
|
|
1915
|
+
: ELSE transitionSuccessionMember
|
|
1916
|
+
;
|
|
1917
|
+
|
|
1918
|
+
guardedSuccession
|
|
1919
|
+
: (SUCCESSION usageDeclaration?)? FIRST featureChainMember guardExpressionMember THEN transitionSuccessionMember usageBody
|
|
1920
|
+
;
|
|
1921
|
+
|
|
1922
|
+
stateDefinition
|
|
1923
|
+
: occurrenceDefinitionPrefix STATE DEF definitionDeclaration stateDefBody
|
|
1924
|
+
;
|
|
1925
|
+
|
|
1926
|
+
stateDefBody
|
|
1927
|
+
: SEMI
|
|
1928
|
+
| ( PARALLEL)? LBRACE stateBodyItem* RBRACE
|
|
1929
|
+
;
|
|
1930
|
+
|
|
1931
|
+
stateBodyItem
|
|
1932
|
+
: nonBehaviorBodyItem
|
|
1933
|
+
| (sourceSuccessionMember)? behaviorUsageMember (targetTransitionUsageMember)*
|
|
1934
|
+
| transitionUsageMember
|
|
1935
|
+
| entryActionMember ( entryTransitionMember)*
|
|
1936
|
+
| doActionMember
|
|
1937
|
+
| exitActionMember
|
|
1938
|
+
;
|
|
1939
|
+
|
|
1940
|
+
entryActionMember
|
|
1941
|
+
: memberPrefix ENTRY stateActionUsage
|
|
1942
|
+
;
|
|
1943
|
+
|
|
1944
|
+
doActionMember
|
|
1945
|
+
: memberPrefix DO stateActionUsage
|
|
1946
|
+
;
|
|
1947
|
+
|
|
1948
|
+
exitActionMember
|
|
1949
|
+
: memberPrefix EXIT stateActionUsage
|
|
1950
|
+
;
|
|
1951
|
+
|
|
1952
|
+
entryTransitionMember
|
|
1953
|
+
: memberPrefix (guardedTargetSuccession | THEN transitionSuccessionMember) SEMI
|
|
1954
|
+
;
|
|
1955
|
+
|
|
1956
|
+
stateActionUsage
|
|
1957
|
+
: emptyActionUsage_ SEMI
|
|
1958
|
+
| statePerformActionUsage
|
|
1959
|
+
| stateAcceptActionUsage
|
|
1960
|
+
| stateSendActionUsage
|
|
1961
|
+
| stateAssignmentActionUsage
|
|
1962
|
+
;
|
|
1963
|
+
|
|
1964
|
+
statePerformActionUsage
|
|
1965
|
+
: performActionUsageDeclaration actionBody
|
|
1966
|
+
;
|
|
1967
|
+
|
|
1968
|
+
stateAcceptActionUsage
|
|
1969
|
+
: acceptNodeDeclaration actionBody
|
|
1970
|
+
;
|
|
1971
|
+
|
|
1972
|
+
stateSendActionUsage
|
|
1973
|
+
: sendNodeDeclaration actionBody
|
|
1974
|
+
;
|
|
1975
|
+
|
|
1976
|
+
stateAssignmentActionUsage
|
|
1977
|
+
: assignmentNodeDeclaration actionBody
|
|
1978
|
+
;
|
|
1979
|
+
|
|
1980
|
+
transitionUsageMember
|
|
1981
|
+
: memberPrefix transitionUsage
|
|
1982
|
+
;
|
|
1983
|
+
|
|
1984
|
+
targetTransitionUsageMember
|
|
1985
|
+
: memberPrefix targetTransitionUsage
|
|
1986
|
+
;
|
|
1987
|
+
|
|
1988
|
+
stateUsage
|
|
1989
|
+
: occurrenceUsagePrefix STATE actionUsageDeclaration stateUsageBody
|
|
1990
|
+
;
|
|
1991
|
+
|
|
1992
|
+
stateUsageBody
|
|
1993
|
+
: SEMI
|
|
1994
|
+
| ( PARALLEL)? LBRACE stateBodyItem* RBRACE
|
|
1995
|
+
;
|
|
1996
|
+
|
|
1997
|
+
exhibitStateUsage
|
|
1998
|
+
: occurrenceUsagePrefix EXHIBIT (
|
|
1999
|
+
ownedReferenceSubsetting featureSpecializationPart?
|
|
2000
|
+
| STATE usageDeclaration?
|
|
2001
|
+
) valuePart? stateUsageBody
|
|
2002
|
+
;
|
|
2003
|
+
|
|
2004
|
+
transitionUsage
|
|
2005
|
+
: TRANSITION (usageDeclaration? FIRST)? featureChainMember emptyParameterMember (
|
|
2006
|
+
emptyParameterMember triggerActionMember
|
|
2007
|
+
)? (guardExpressionMember)? (effectBehaviorMember)? THEN transitionSuccessionMember actionBody
|
|
2008
|
+
;
|
|
2009
|
+
|
|
2010
|
+
targetTransitionUsage
|
|
2011
|
+
: emptyParameterMember (
|
|
2012
|
+
TRANSITION (emptyParameterMember triggerActionMember)? (guardExpressionMember)? (
|
|
2013
|
+
effectBehaviorMember
|
|
2014
|
+
)?
|
|
2015
|
+
| emptyParameterMember triggerActionMember (guardExpressionMember)? (effectBehaviorMember)?
|
|
2016
|
+
| guardExpressionMember ( effectBehaviorMember)?
|
|
2017
|
+
)? THEN transitionSuccessionMember actionBody
|
|
2018
|
+
;
|
|
2019
|
+
|
|
2020
|
+
triggerActionMember
|
|
2021
|
+
: ACCEPT triggerAction
|
|
2022
|
+
;
|
|
2023
|
+
|
|
2024
|
+
triggerAction
|
|
2025
|
+
: acceptParameterPart
|
|
2026
|
+
;
|
|
2027
|
+
|
|
2028
|
+
guardExpressionMember
|
|
2029
|
+
: IF ownedExpression
|
|
2030
|
+
;
|
|
2031
|
+
|
|
2032
|
+
effectBehaviorMember
|
|
2033
|
+
: DO effectBehaviorUsage
|
|
2034
|
+
;
|
|
2035
|
+
|
|
2036
|
+
effectBehaviorUsage
|
|
2037
|
+
: emptyActionUsage_
|
|
2038
|
+
| transitionPerformActionUsage
|
|
2039
|
+
| transitionAcceptActionUsage
|
|
2040
|
+
| transitionSendActionUsage
|
|
2041
|
+
| transitionAssignmentActionUsage
|
|
2042
|
+
;
|
|
2043
|
+
|
|
2044
|
+
transitionPerformActionUsage
|
|
2045
|
+
: performActionUsageDeclaration (LBRACE actionBodyItem* RBRACE)?
|
|
2046
|
+
;
|
|
2047
|
+
|
|
2048
|
+
transitionAcceptActionUsage
|
|
2049
|
+
: acceptNodeDeclaration (LBRACE actionBodyItem* RBRACE)?
|
|
2050
|
+
;
|
|
2051
|
+
|
|
2052
|
+
transitionSendActionUsage
|
|
2053
|
+
: sendNodeDeclaration (LBRACE actionBodyItem* RBRACE)?
|
|
2054
|
+
;
|
|
2055
|
+
|
|
2056
|
+
transitionAssignmentActionUsage
|
|
2057
|
+
: assignmentNodeDeclaration (LBRACE actionBodyItem* RBRACE)?
|
|
2058
|
+
;
|
|
2059
|
+
|
|
2060
|
+
transitionSuccessionMember
|
|
2061
|
+
: transitionSuccession
|
|
2062
|
+
;
|
|
2063
|
+
|
|
2064
|
+
transitionSuccession
|
|
2065
|
+
: emptyEndMember connectorEndMember
|
|
2066
|
+
;
|
|
2067
|
+
|
|
2068
|
+
emptyEndMember
|
|
2069
|
+
: emptyFeature_
|
|
2070
|
+
;
|
|
2071
|
+
|
|
2072
|
+
calculationDefinition
|
|
2073
|
+
: occurrenceDefinitionPrefix CALC DEF definitionDeclaration calculationBody
|
|
2074
|
+
;
|
|
2075
|
+
|
|
2076
|
+
calculationUsage
|
|
2077
|
+
: occurrenceUsagePrefix CALC actionUsageDeclaration calculationBody
|
|
2078
|
+
;
|
|
2079
|
+
|
|
2080
|
+
calculationBody
|
|
2081
|
+
: SEMI
|
|
2082
|
+
| LBRACE calculationBodyPart RBRACE
|
|
2083
|
+
;
|
|
2084
|
+
|
|
2085
|
+
calculationBodyPart
|
|
2086
|
+
: calculationBodyItem* (resultExpressionMember)?
|
|
2087
|
+
;
|
|
2088
|
+
|
|
2089
|
+
calculationBodyItem
|
|
2090
|
+
: actionBodyItem
|
|
2091
|
+
| returnParameterMember
|
|
2092
|
+
;
|
|
2093
|
+
|
|
2094
|
+
returnParameterMember
|
|
2095
|
+
: memberPrefix RETURN usageElement
|
|
2096
|
+
;
|
|
2097
|
+
|
|
2098
|
+
constraintDefinition
|
|
2099
|
+
: occurrenceDefinitionPrefix CONSTRAINT DEF definitionDeclaration calculationBody
|
|
2100
|
+
;
|
|
2101
|
+
|
|
2102
|
+
constraintUsage
|
|
2103
|
+
: occurrenceUsagePrefix CONSTRAINT constraintUsageDeclaration calculationBody
|
|
2104
|
+
;
|
|
2105
|
+
|
|
2106
|
+
assertConstraintUsage
|
|
2107
|
+
: occurrenceUsagePrefix ASSERT (NOT)? (
|
|
2108
|
+
ownedReferenceSubsetting featureSpecializationPart?
|
|
2109
|
+
| CONSTRAINT constraintUsageDeclaration
|
|
2110
|
+
) calculationBody
|
|
2111
|
+
;
|
|
2112
|
+
|
|
2113
|
+
constraintUsageDeclaration
|
|
2114
|
+
: usageDeclaration? valuePart?
|
|
2115
|
+
;
|
|
2116
|
+
|
|
2117
|
+
requirementDefinition
|
|
2118
|
+
: occurrenceDefinitionPrefix REQUIREMENT DEF definitionDeclaration requirementBody
|
|
2119
|
+
;
|
|
2120
|
+
|
|
2121
|
+
requirementBody
|
|
2122
|
+
: SEMI
|
|
2123
|
+
| LBRACE requirementBodyItem* RBRACE
|
|
2124
|
+
;
|
|
2125
|
+
|
|
2126
|
+
requirementBodyItem
|
|
2127
|
+
: definitionBodyItem
|
|
2128
|
+
| subjectMember
|
|
2129
|
+
| requirementConstraintMember
|
|
2130
|
+
| framedConcernMember
|
|
2131
|
+
| requirementVerificationMember
|
|
2132
|
+
| actorMember
|
|
2133
|
+
| stakeholderMember
|
|
2134
|
+
;
|
|
2135
|
+
|
|
2136
|
+
subjectMember
|
|
2137
|
+
: memberPrefix subjectUsage
|
|
2138
|
+
;
|
|
2139
|
+
|
|
2140
|
+
subjectUsage
|
|
2141
|
+
: SUBJECT usageExtensionKeyword* usage
|
|
2142
|
+
;
|
|
2143
|
+
|
|
2144
|
+
requirementConstraintMember
|
|
2145
|
+
: memberPrefix requirementKind requirementConstraintUsage
|
|
2146
|
+
;
|
|
2147
|
+
|
|
2148
|
+
requirementKind
|
|
2149
|
+
: ASSUME
|
|
2150
|
+
| REQUIRE
|
|
2151
|
+
;
|
|
2152
|
+
|
|
2153
|
+
requirementConstraintUsage
|
|
2154
|
+
: ownedReferenceSubsetting featureSpecializationPart? requirementBody
|
|
2155
|
+
| (usageExtensionKeyword* CONSTRAINT | usageExtensionKeyword+) constraintUsageDeclaration calculationBody
|
|
2156
|
+
;
|
|
2157
|
+
|
|
2158
|
+
framedConcernMember
|
|
2159
|
+
: memberPrefix FRAME framedConcernUsage
|
|
2160
|
+
;
|
|
2161
|
+
|
|
2162
|
+
framedConcernUsage
|
|
2163
|
+
: ownedReferenceSubsetting featureSpecializationPart? calculationBody
|
|
2164
|
+
| (usageExtensionKeyword* CONCERN | usageExtensionKeyword+) calculationUsageDeclaration calculationBody
|
|
2165
|
+
;
|
|
2166
|
+
|
|
2167
|
+
actorMember
|
|
2168
|
+
: memberPrefix actorUsage
|
|
2169
|
+
;
|
|
2170
|
+
|
|
2171
|
+
actorUsage
|
|
2172
|
+
: ACTOR usageExtensionKeyword* usage
|
|
2173
|
+
;
|
|
2174
|
+
|
|
2175
|
+
stakeholderMember
|
|
2176
|
+
: memberPrefix stakeholderUsage
|
|
2177
|
+
;
|
|
2178
|
+
|
|
2179
|
+
stakeholderUsage
|
|
2180
|
+
: STAKEHOLDER usageExtensionKeyword* usage
|
|
2181
|
+
;
|
|
2182
|
+
|
|
2183
|
+
requirementUsage
|
|
2184
|
+
: occurrenceUsagePrefix REQUIREMENT constraintUsageDeclaration requirementBody
|
|
2185
|
+
;
|
|
2186
|
+
|
|
2187
|
+
satisfyRequirementUsage
|
|
2188
|
+
: occurrenceUsagePrefix (ASSERT ( NOT)? | NOT)? SATISFY (
|
|
2189
|
+
ownedReferenceSubsetting featureSpecializationPart?
|
|
2190
|
+
| REQUIREMENT usageDeclaration?
|
|
2191
|
+
) valuePart? (BY satisfactionSubjectMember)? requirementBody
|
|
2192
|
+
;
|
|
2193
|
+
|
|
2194
|
+
satisfactionSubjectMember
|
|
2195
|
+
: satisfactionParameter
|
|
2196
|
+
;
|
|
2197
|
+
|
|
2198
|
+
satisfactionParameter
|
|
2199
|
+
: satisfactionFeatureValue
|
|
2200
|
+
;
|
|
2201
|
+
|
|
2202
|
+
satisfactionFeatureValue
|
|
2203
|
+
: satisfactionReferenceExpression
|
|
2204
|
+
;
|
|
2205
|
+
|
|
2206
|
+
satisfactionReferenceExpression
|
|
2207
|
+
: featureChainMember
|
|
2208
|
+
;
|
|
2209
|
+
|
|
2210
|
+
concernDefinition
|
|
2211
|
+
: occurrenceDefinitionPrefix CONCERN DEF definitionDeclaration requirementBody
|
|
2212
|
+
;
|
|
2213
|
+
|
|
2214
|
+
concernUsage
|
|
2215
|
+
: occurrenceUsagePrefix CONCERN constraintUsageDeclaration requirementBody
|
|
2216
|
+
;
|
|
2217
|
+
|
|
2218
|
+
caseDefinition
|
|
2219
|
+
: occurrenceDefinitionPrefix CASE DEF definitionDeclaration caseBody
|
|
2220
|
+
;
|
|
2221
|
+
|
|
2222
|
+
caseUsage
|
|
2223
|
+
: occurrenceUsagePrefix CASE constraintUsageDeclaration caseBody
|
|
2224
|
+
;
|
|
2225
|
+
|
|
2226
|
+
caseBody
|
|
2227
|
+
: SEMI
|
|
2228
|
+
| LBRACE caseBodyItem* ( resultExpressionMember)? RBRACE
|
|
2229
|
+
;
|
|
2230
|
+
|
|
2231
|
+
caseBodyItem
|
|
2232
|
+
: actionBodyItem
|
|
2233
|
+
| returnParameterMember
|
|
2234
|
+
| subjectMember
|
|
2235
|
+
| actorMember
|
|
2236
|
+
| objectiveMember
|
|
2237
|
+
;
|
|
2238
|
+
|
|
2239
|
+
objectiveMember
|
|
2240
|
+
: memberPrefix OBJECTIVE objectiveRequirementUsage
|
|
2241
|
+
;
|
|
2242
|
+
|
|
2243
|
+
objectiveRequirementUsage
|
|
2244
|
+
: usageExtensionKeyword* constraintUsageDeclaration requirementBody
|
|
2245
|
+
;
|
|
2246
|
+
|
|
2247
|
+
analysisCaseDefinition
|
|
2248
|
+
: occurrenceDefinitionPrefix ANALYSIS DEF definitionDeclaration caseBody
|
|
2249
|
+
;
|
|
2250
|
+
|
|
2251
|
+
analysisCaseUsage
|
|
2252
|
+
: occurrenceUsagePrefix ANALYSIS constraintUsageDeclaration caseBody
|
|
2253
|
+
;
|
|
2254
|
+
|
|
2255
|
+
verificationCaseDefinition
|
|
2256
|
+
: occurrenceDefinitionPrefix VERIFICATION DEF definitionDeclaration caseBody
|
|
2257
|
+
;
|
|
2258
|
+
|
|
2259
|
+
verificationCaseUsage
|
|
2260
|
+
: occurrenceUsagePrefix VERIFICATION constraintUsageDeclaration caseBody
|
|
2261
|
+
;
|
|
2262
|
+
|
|
2263
|
+
requirementVerificationMember
|
|
2264
|
+
: memberPrefix VERIFY requirementVerificationUsage
|
|
2265
|
+
;
|
|
2266
|
+
|
|
2267
|
+
requirementVerificationUsage
|
|
2268
|
+
: ownedReferenceSubsetting featureSpecialization* requirementBody
|
|
2269
|
+
| (usageExtensionKeyword* REQUIREMENT | usageExtensionKeyword+) constraintUsageDeclaration requirementBody
|
|
2270
|
+
;
|
|
2271
|
+
|
|
2272
|
+
useCaseDefinition
|
|
2273
|
+
: occurrenceDefinitionPrefix USE CASE DEF definitionDeclaration caseBody
|
|
2274
|
+
;
|
|
2275
|
+
|
|
2276
|
+
useCaseUsage
|
|
2277
|
+
: occurrenceUsagePrefix USE CASE constraintUsageDeclaration caseBody
|
|
2278
|
+
;
|
|
2279
|
+
|
|
2280
|
+
includeUseCaseUsage
|
|
2281
|
+
: occurrenceUsagePrefix INCLUDE (
|
|
2282
|
+
ownedReferenceSubsetting featureSpecializationPart?
|
|
2283
|
+
| USE CASE usageDeclaration?
|
|
2284
|
+
) valuePart? caseBody
|
|
2285
|
+
;
|
|
2286
|
+
|
|
2287
|
+
viewDefinition
|
|
2288
|
+
: occurrenceDefinitionPrefix VIEW DEF definitionDeclaration viewDefinitionBody
|
|
2289
|
+
;
|
|
2290
|
+
|
|
2291
|
+
viewDefinitionBody
|
|
2292
|
+
: SEMI
|
|
2293
|
+
| LBRACE viewDefinitionBodyItem* RBRACE
|
|
2294
|
+
;
|
|
2295
|
+
|
|
2296
|
+
viewDefinitionBodyItem
|
|
2297
|
+
: definitionBodyItem
|
|
2298
|
+
| elementFilterMember
|
|
2299
|
+
| viewRenderingMember
|
|
2300
|
+
;
|
|
2301
|
+
|
|
2302
|
+
viewRenderingMember
|
|
2303
|
+
: memberPrefix RENDER viewRenderingUsage
|
|
2304
|
+
;
|
|
2305
|
+
|
|
2306
|
+
viewRenderingUsage
|
|
2307
|
+
: ownedReferenceSubsetting featureSpecializationPart? usageBody
|
|
2308
|
+
| ( usageExtensionKeyword* RENDERING | usageExtensionKeyword+) usage
|
|
2309
|
+
;
|
|
2310
|
+
|
|
2311
|
+
viewUsage
|
|
2312
|
+
: occurrenceUsagePrefix VIEW usageDeclaration? valuePart? viewBody
|
|
2313
|
+
;
|
|
2314
|
+
|
|
2315
|
+
viewBody
|
|
2316
|
+
: SEMI
|
|
2317
|
+
| LBRACE viewBodyItem* RBRACE
|
|
2318
|
+
;
|
|
2319
|
+
|
|
2320
|
+
viewBodyItem
|
|
2321
|
+
: definitionBodyItem
|
|
2322
|
+
| elementFilterMember
|
|
2323
|
+
| viewRenderingMember
|
|
2324
|
+
| expose
|
|
2325
|
+
;
|
|
2326
|
+
|
|
2327
|
+
expose
|
|
2328
|
+
: EXPOSE (membershipExpose | namespaceExpose) relationshipBody
|
|
2329
|
+
;
|
|
2330
|
+
|
|
2331
|
+
membershipExpose
|
|
2332
|
+
: membershipImport
|
|
2333
|
+
;
|
|
2334
|
+
|
|
2335
|
+
namespaceExpose
|
|
2336
|
+
: namespaceImport
|
|
2337
|
+
;
|
|
2338
|
+
|
|
2339
|
+
viewpointDefinition
|
|
2340
|
+
: occurrenceDefinitionPrefix VIEWPOINT DEF definitionDeclaration requirementBody
|
|
2341
|
+
;
|
|
2342
|
+
|
|
2343
|
+
viewpointUsage
|
|
2344
|
+
: occurrenceUsagePrefix VIEWPOINT constraintUsageDeclaration requirementBody
|
|
2345
|
+
;
|
|
2346
|
+
|
|
2347
|
+
renderingDefinition
|
|
2348
|
+
: occurrenceDefinitionPrefix RENDERING DEF definition
|
|
2349
|
+
;
|
|
2350
|
+
|
|
2351
|
+
renderingUsage
|
|
2352
|
+
: occurrenceUsagePrefix RENDERING usage
|
|
2353
|
+
;
|
|
2354
|
+
|
|
2355
|
+
metadataDefinition
|
|
2356
|
+
: (ABSTRACT)? definitionExtensionKeyword* METADATA DEF definition
|
|
2357
|
+
;
|
|
2358
|
+
|
|
2359
|
+
prefixMetadataUsage
|
|
2360
|
+
: ownedFeatureTyping
|
|
2361
|
+
;
|
|
2362
|
+
|
|
2363
|
+
metadataUsage
|
|
2364
|
+
: usageExtensionKeyword* (AT_SIGN | METADATA) metadataUsageDeclaration (
|
|
2365
|
+
ABOUT annotation ( COMMA annotation)*
|
|
2366
|
+
)? metadataBody
|
|
2367
|
+
;
|
|
2368
|
+
|
|
2369
|
+
metadataUsageDeclaration
|
|
2370
|
+
: (identification? ( COLON | TYPED BY))? ownedFeatureTyping
|
|
2371
|
+
;
|
|
2372
|
+
|
|
2373
|
+
metadataBodyUsageMember
|
|
2374
|
+
: metadataBodyUsage
|
|
2375
|
+
;
|
|
2376
|
+
|
|
2377
|
+
metadataBodyUsage
|
|
2378
|
+
: REF? (COLON_GT_GT | REDEFINES)? ownedRedefinition featureSpecializationPart? valuePart? metadataBody
|
|
2379
|
+
;
|
|
2380
|
+
|
|
2381
|
+
extendedDefinition
|
|
2382
|
+
: basicDefinitionPrefix? definitionExtensionKeyword+ DEF definition
|
|
2383
|
+
;
|
|
2384
|
+
|
|
2385
|
+
extendedUsage
|
|
2386
|
+
: unextendedUsagePrefix usageExtensionKeyword+ usage
|
|
2387
|
+
;
|
|
2388
|
+
|
|
2389
|
+
filterPackageImportDeclaration
|
|
2390
|
+
: membershipImport
|
|
2391
|
+
| namespaceImportDirect
|
|
2392
|
+
;
|
|
2393
|
+
|
|
2394
|
+
namespaceImportDirect
|
|
2395
|
+
: qualifiedName COLON_COLON STAR (COLON_COLON STAR_STAR)?
|
|
2396
|
+
;
|
|
2397
|
+
|
|
2398
|
+
// ===== Stub rules for undefined references =====
|
|
2399
|
+
// These rules are referenced in the spec but not fully defined.
|
|
2400
|
+
// They need manual review and completion.
|
|
2401
|
+
|
|
2402
|
+
calculationUsageDeclaration
|
|
2403
|
+
: usageDeclaration? valuePart?
|
|
2404
|
+
;
|
|
2405
|
+
|
|
2406
|
+
emptyActionUsage_
|
|
2407
|
+
: /* epsilon */
|
|
2408
|
+
;
|
|
2409
|
+
|
|
2410
|
+
emptyFeature_
|
|
2411
|
+
: /* epsilon */
|
|
2412
|
+
;
|
|
2413
|
+
|
|
2414
|
+
emptyMultiplicity_
|
|
2415
|
+
: /* epsilon */
|
|
2416
|
+
;
|
|
2417
|
+
|
|
2418
|
+
emptyUsage_
|
|
2419
|
+
: /* epsilon */
|
|
2420
|
+
;
|
|
2421
|
+
|
|
2422
|
+
filterPackageImport
|
|
2423
|
+
: IDENTIFIER /* TODO: stub for filterPackageImport */
|
|
2424
|
+
;
|
|
2425
|
+
|
|
2426
|
+
nonFeatureChainPrimaryExpression
|
|
2427
|
+
: IDENTIFIER /* TODO: stub for nonFeatureChainPrimaryExpression */
|
|
2428
|
+
;
|
|
2429
|
+
|
|
2430
|
+
portConjugation
|
|
2431
|
+
: /* epsilon */
|
|
2432
|
+
;
|