Skip to content

Commit d4f25bc

Browse files
committed
SYSML2_-159 Revised SysML grammar for SendNode
- No longer creates empty parameters for missing arguments if not necessary. - Updated validation for send action parameters. - Updated ActionTest for newly allowed send node syntax.
1 parent a5e4159 commit d4f25bc

11 files changed

Lines changed: 9870 additions & 9020 deletions

File tree

org.omg.sysml.xpect.tests/src/org/omg/sysml/xpect/tests/simpletests/ActionTest.sysml.xt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ XPECT_SETUP org.omg.sysml.xpect.tests.simpletests.SysMLTests
2121
File {from ="/library.systems/Ports.sysml"}
2222
File {from ="/library.systems/Actions.sysml"}
2323
File {from ="/library.systems/Calculations.sysml"}
24+
File {from ="/library.systems/Connections.sysml"}
2425
File {from ="/library.domain/Quantities and Units/Quantities.sysml"}
2526
File {from ="/library.domain/Quantities and Units/MeasurementReferences.sysml"}
2627
File {from ="/library.domain/Quantities and Units/ISQ.sysml"}
@@ -51,6 +52,7 @@ XPECT_SETUP org.omg.sysml.xpect.tests.simpletests.SysMLTests
5152
File {from ="/library.systems/Ports.sysml"}
5253
File {from ="/library.systems/Actions.sysml"}
5354
File {from ="/library.systems/Calculations.sysml"}
55+
File {from ="/library.systems/Connections.sysml"}
5456
File {from ="/library.domain/Quantities and Units/Quantities.sysml"}
5557
File {from ="/library.domain/Quantities and Units/MeasurementReferences.sysml"}
5658
File {from ="/library.domain/Quantities and Units/ISQ.sysml"}
@@ -90,6 +92,19 @@ package ActionTest {
9092
else done;
9193
}
9294

95+
action a2 {
96+
in s : S;
97+
action aa {
98+
out part target;
99+
}
100+
flow aa.target to snd1.receiver;
101+
action snd1 send {
102+
:>> payload = s;
103+
}
104+
action snd2 send via this to aa.target;
105+
bind s = snd2.payload;
106+
}
107+
93108
action b {
94109
attribute f : ScalarValues::Boolean;
95110
ref action a : A;
233 Bytes
Binary file not shown.

org.omg.sysml.xtext/src-gen/org/omg/sysml/xtext/parser/antlr/internal/InternalSysML.g

Lines changed: 204 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -13905,28 +13905,143 @@ ruleSendNode returns [EObject current=null]
1390513905
$current = $this_OccurrenceUsagePrefix_0.current;
1390613906
afterParserOrEnumRuleCall();
1390713907
}
13908-
{
13909-
if ($current==null) {
13910-
$current = createModelElement(grammarAccess.getSendNodeRule());
13908+
(
13909+
{
13910+
if ($current==null) {
13911+
$current = createModelElement(grammarAccess.getSendNodeRule());
13912+
}
13913+
newCompositeNode(grammarAccess.getSendNodeAccess().getActionNodeUsageDeclarationParserRuleCall_1());
1391113914
}
13912-
newCompositeNode(grammarAccess.getSendNodeAccess().getSendNodeDeclarationParserRuleCall_1());
13913-
}
13914-
this_SendNodeDeclaration_1=ruleSendNodeDeclaration[$current]
13915-
{
13916-
$current = $this_SendNodeDeclaration_1.current;
13917-
afterParserOrEnumRuleCall();
13918-
}
13919-
{
13920-
if ($current==null) {
13921-
$current = createModelElement(grammarAccess.getSendNodeRule());
13915+
this_ActionNodeUsageDeclaration_1=ruleActionNodeUsageDeclaration[$current]
13916+
{
13917+
$current = $this_ActionNodeUsageDeclaration_1.current;
13918+
afterParserOrEnumRuleCall();
1392213919
}
13923-
newCompositeNode(grammarAccess.getSendNodeAccess().getActionBodyParserRuleCall_2());
13924-
}
13925-
this_ActionBody_2=ruleActionBody[$current]
13920+
)?
13921+
otherlv_2='send'
1392613922
{
13927-
$current = $this_ActionBody_2.current;
13928-
afterParserOrEnumRuleCall();
13923+
newLeafNode(otherlv_2, grammarAccess.getSendNodeAccess().getSendKeyword_2());
1392913924
}
13925+
(
13926+
{
13927+
if ($current==null) {
13928+
$current = createModelElement(grammarAccess.getSendNodeRule());
13929+
}
13930+
newCompositeNode(grammarAccess.getSendNodeAccess().getActionBodyParserRuleCall_3_0());
13931+
}
13932+
this_ActionBody_3=ruleActionBody[$current]
13933+
{
13934+
$current = $this_ActionBody_3.current;
13935+
afterParserOrEnumRuleCall();
13936+
}
13937+
|
13938+
(
13939+
(
13940+
((
13941+
(
13942+
(
13943+
(
13944+
ruleNodeParameterMember
13945+
)
13946+
)
13947+
(
13948+
ruleSenderReceiverPart[null]
13949+
)?
13950+
)
13951+
|
13952+
(
13953+
(
13954+
(
13955+
ruleEmptyParameterMember
13956+
)
13957+
)
13958+
ruleSenderReceiverPart[null]
13959+
)
13960+
)
13961+
)=>
13962+
(
13963+
(
13964+
(
13965+
(
13966+
{
13967+
newCompositeNode(grammarAccess.getSendNodeAccess().getOwnedRelationshipNodeParameterMemberParserRuleCall_3_1_0_0_0_0_0());
13968+
}
13969+
lv_ownedRelationship_4_0=ruleNodeParameterMember
13970+
{
13971+
if ($current==null) {
13972+
$current = createModelElementForParent(grammarAccess.getSendNodeRule());
13973+
}
13974+
add(
13975+
$current,
13976+
"ownedRelationship",
13977+
lv_ownedRelationship_4_0,
13978+
"org.omg.sysml.xtext.SysML.NodeParameterMember");
13979+
afterParserOrEnumRuleCall();
13980+
}
13981+
)
13982+
)
13983+
(
13984+
{
13985+
if ($current==null) {
13986+
$current = createModelElement(grammarAccess.getSendNodeRule());
13987+
}
13988+
newCompositeNode(grammarAccess.getSendNodeAccess().getSenderReceiverPartParserRuleCall_3_1_0_0_0_1());
13989+
}
13990+
this_SenderReceiverPart_5=ruleSenderReceiverPart[$current]
13991+
{
13992+
$current = $this_SenderReceiverPart_5.current;
13993+
afterParserOrEnumRuleCall();
13994+
}
13995+
)?
13996+
)
13997+
|
13998+
(
13999+
(
14000+
(
14001+
{
14002+
newCompositeNode(grammarAccess.getSendNodeAccess().getOwnedRelationshipEmptyParameterMemberParserRuleCall_3_1_0_0_1_0_0());
14003+
}
14004+
lv_ownedRelationship_6_0=ruleEmptyParameterMember
14005+
{
14006+
if ($current==null) {
14007+
$current = createModelElementForParent(grammarAccess.getSendNodeRule());
14008+
}
14009+
add(
14010+
$current,
14011+
"ownedRelationship",
14012+
lv_ownedRelationship_6_0,
14013+
"org.omg.sysml.xtext.SysML.EmptyParameterMember");
14014+
afterParserOrEnumRuleCall();
14015+
}
14016+
)
14017+
)
14018+
{
14019+
if ($current==null) {
14020+
$current = createModelElement(grammarAccess.getSendNodeRule());
14021+
}
14022+
newCompositeNode(grammarAccess.getSendNodeAccess().getSenderReceiverPartParserRuleCall_3_1_0_0_1_1());
14023+
}
14024+
this_SenderReceiverPart_7=ruleSenderReceiverPart[$current]
14025+
{
14026+
$current = $this_SenderReceiverPart_7.current;
14027+
afterParserOrEnumRuleCall();
14028+
}
14029+
)
14030+
)
14031+
)
14032+
{
14033+
if ($current==null) {
14034+
$current = createModelElement(grammarAccess.getSendNodeRule());
14035+
}
14036+
newCompositeNode(grammarAccess.getSendNodeAccess().getActionBodyParserRuleCall_3_1_1());
14037+
}
14038+
this_ActionBody_8=ruleActionBody[$current]
14039+
{
14040+
$current = $this_ActionBody_8.current;
14041+
afterParserOrEnumRuleCall();
14042+
}
14043+
)
14044+
)
1393014045
)
1393114046
;
1393214047

@@ -13977,98 +14092,125 @@ ruleSendNodeDeclaration[EObject in_current] returns [EObject current=in_current
1397714092
)
1397814093
)
1397914094
(
13980-
(
13981-
otherlv_3='via'
13982-
{
13983-
newLeafNode(otherlv_3, grammarAccess.getSendNodeDeclarationAccess().getViaKeyword_3_0_0());
14095+
{
14096+
if ($current==null) {
14097+
$current = createModelElement(grammarAccess.getSendNodeDeclarationRule());
1398414098
}
13985-
(
13986-
(
13987-
{
13988-
newCompositeNode(grammarAccess.getSendNodeDeclarationAccess().getOwnedRelationshipNodeParameterMemberParserRuleCall_3_0_1_0());
13989-
}
13990-
lv_ownedRelationship_4_0=ruleNodeParameterMember
13991-
{
13992-
if ($current==null) {
13993-
$current = createModelElementForParent(grammarAccess.getSendNodeDeclarationRule());
13994-
}
13995-
add(
13996-
$current,
13997-
"ownedRelationship",
13998-
lv_ownedRelationship_4_0,
13999-
"org.omg.sysml.xtext.SysML.NodeParameterMember");
14000-
afterParserOrEnumRuleCall();
14001-
}
14002-
)
14003-
)
14004-
)
14005-
|
14099+
newCompositeNode(grammarAccess.getSendNodeDeclarationAccess().getSenderReceiverPartParserRuleCall_3());
14100+
}
14101+
this_SenderReceiverPart_3=ruleSenderReceiverPart[$current]
14102+
{
14103+
$current = $this_SenderReceiverPart_3.current;
14104+
afterParserOrEnumRuleCall();
14105+
}
14106+
)?
14107+
)
14108+
;
14109+
14110+
14111+
// Rule SenderReceiverPart
14112+
ruleSenderReceiverPart[EObject in_current] returns [EObject current=in_current]
14113+
@init {
14114+
enterRule();
14115+
}
14116+
@after {
14117+
leaveRule();
14118+
}:
14119+
(
14120+
(
14121+
otherlv_0='via'
14122+
{
14123+
newLeafNode(otherlv_0, grammarAccess.getSenderReceiverPartAccess().getViaKeyword_0_0());
14124+
}
1400614125
(
1400714126
(
1400814127
{
14009-
newCompositeNode(grammarAccess.getSendNodeDeclarationAccess().getOwnedRelationshipEmptyParameterMemberParserRuleCall_3_1_0());
14128+
newCompositeNode(grammarAccess.getSenderReceiverPartAccess().getOwnedRelationshipNodeParameterMemberParserRuleCall_0_1_0());
1401014129
}
14011-
lv_ownedRelationship_5_0=ruleEmptyParameterMember
14130+
lv_ownedRelationship_1_0=ruleNodeParameterMember
1401214131
{
1401314132
if ($current==null) {
14014-
$current = createModelElementForParent(grammarAccess.getSendNodeDeclarationRule());
14133+
$current = createModelElementForParent(grammarAccess.getSenderReceiverPartRule());
1401514134
}
1401614135
add(
1401714136
$current,
1401814137
"ownedRelationship",
14019-
lv_ownedRelationship_5_0,
14020-
"org.omg.sysml.xtext.SysML.EmptyParameterMember");
14138+
lv_ownedRelationship_1_0,
14139+
"org.omg.sysml.xtext.SysML.NodeParameterMember");
1402114140
afterParserOrEnumRuleCall();
1402214141
}
1402314142
)
1402414143
)
14025-
)
14026-
(
1402714144
(
14028-
otherlv_6='to'
14145+
otherlv_2='to'
1402914146
{
14030-
newLeafNode(otherlv_6, grammarAccess.getSendNodeDeclarationAccess().getToKeyword_4_0_0());
14147+
newLeafNode(otherlv_2, grammarAccess.getSenderReceiverPartAccess().getToKeyword_0_2_0());
1403114148
}
1403214149
(
1403314150
(
1403414151
{
14035-
newCompositeNode(grammarAccess.getSendNodeDeclarationAccess().getOwnedRelationshipNodeParameterMemberParserRuleCall_4_0_1_0());
14152+
newCompositeNode(grammarAccess.getSenderReceiverPartAccess().getOwnedRelationshipNodeParameterMemberParserRuleCall_0_2_1_0());
1403614153
}
14037-
lv_ownedRelationship_7_0=ruleNodeParameterMember
14154+
lv_ownedRelationship_3_0=ruleNodeParameterMember
1403814155
{
1403914156
if ($current==null) {
14040-
$current = createModelElementForParent(grammarAccess.getSendNodeDeclarationRule());
14157+
$current = createModelElementForParent(grammarAccess.getSenderReceiverPartRule());
1404114158
}
1404214159
add(
1404314160
$current,
1404414161
"ownedRelationship",
14045-
lv_ownedRelationship_7_0,
14162+
lv_ownedRelationship_3_0,
1404614163
"org.omg.sysml.xtext.SysML.NodeParameterMember");
1404714164
afterParserOrEnumRuleCall();
1404814165
}
1404914166
)
1405014167
)
14051-
)
14052-
|
14168+
)?
14169+
)
14170+
|
14171+
(
1405314172
(
1405414173
(
1405514174
{
14056-
newCompositeNode(grammarAccess.getSendNodeDeclarationAccess().getOwnedRelationshipEmptyParameterMemberParserRuleCall_4_1_0());
14175+
newCompositeNode(grammarAccess.getSenderReceiverPartAccess().getOwnedRelationshipEmptyParameterMemberParserRuleCall_1_0_0());
1405714176
}
14058-
lv_ownedRelationship_8_0=ruleEmptyParameterMember
14177+
lv_ownedRelationship_4_0=ruleEmptyParameterMember
1405914178
{
1406014179
if ($current==null) {
14061-
$current = createModelElementForParent(grammarAccess.getSendNodeDeclarationRule());
14180+
$current = createModelElementForParent(grammarAccess.getSenderReceiverPartRule());
1406214181
}
1406314182
add(
1406414183
$current,
1406514184
"ownedRelationship",
14066-
lv_ownedRelationship_8_0,
14185+
lv_ownedRelationship_4_0,
1406714186
"org.omg.sysml.xtext.SysML.EmptyParameterMember");
1406814187
afterParserOrEnumRuleCall();
1406914188
}
1407014189
)
1407114190
)
14191+
otherlv_5='to'
14192+
{
14193+
newLeafNode(otherlv_5, grammarAccess.getSenderReceiverPartAccess().getToKeyword_1_1());
14194+
}
14195+
(
14196+
(
14197+
{
14198+
newCompositeNode(grammarAccess.getSenderReceiverPartAccess().getOwnedRelationshipNodeParameterMemberParserRuleCall_1_2_0());
14199+
}
14200+
lv_ownedRelationship_6_0=ruleNodeParameterMember
14201+
{
14202+
if ($current==null) {
14203+
$current = createModelElementForParent(grammarAccess.getSenderReceiverPartRule());
14204+
}
14205+
add(
14206+
$current,
14207+
"ownedRelationship",
14208+
lv_ownedRelationship_6_0,
14209+
"org.omg.sysml.xtext.SysML.NodeParameterMember");
14210+
afterParserOrEnumRuleCall();
14211+
}
14212+
)
14213+
)
1407214214
)
1407314215
)
1407414216
;

0 commit comments

Comments
 (0)