From 10c4bf42a4902dfada4445fec1a6676b40f4bf02 Mon Sep 17 00:00:00 2001 From: kaarik <martti.kaarik@elvior.com> Date: Thu, 5 Oct 2017 15:11:30 +0300 Subject: [PATCH] Diagram label grammar updated according to 968ea3c Change-Id: I2f80ed3a020feffadfde26a421d05a2838930c1c --- .../etsi/mts/tdl/graphical/labels/Data.xtext | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext b/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext index ef5b5206..48cfb0b7 100644 --- a/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext +++ b/plugins/org.etsi.mts.tdl.graphical.labels.data/src/org/etsi/mts/tdl/graphical/labels/Data.xtext @@ -48,18 +48,22 @@ EString returns ecore::EString: DataInstanceUse returns DataInstanceUse: dataInstance=[DataInstance|EString] ('(' argument+=ParameterBinding ( "," argument+=ParameterBinding)* ')' )? - ('.' reduction+=[Member|EString])* + ('.' reduction+=MemberReference)* //TODO: if for some reason the data instance use does have a name //it will cause problems... same applies for other scenarios //TODO: create a more elegant way to handle that gracefully) //(name=EString)? ; +MemberReference returns MemberReference: + member=[Member|EString] +; + FormalParameterUse returns FormalParameterUse: parameter=[FormalParameter|EString] ('(' argument+=ParameterBinding ( "," argument+=ParameterBinding)* ')' )? - ( "." reduction+=[Member|EString])* + ( "." reduction+=MemberReference)* ; FunctionCall returns FunctionCall: @@ -67,7 +71,7 @@ FunctionCall returns FunctionCall: '(' (argument+=ParameterBinding ( "," argument+=ParameterBinding)*)? ')' - ('.' reduction+=[Member|EString])* + ('.' reduction+=MemberReference)* ; VariableUse returns VariableUse: @@ -75,7 +79,7 @@ VariableUse returns VariableUse: '->' variable=[Variable|EString] ('(' argument+=ParameterBinding ( "," argument+=ParameterBinding)* ')' )? - ("." reduction+=[Member|EString])* + ("." reduction+=MemberReference)* ; TimeLabelUse returns TimeLabelUse: @@ -518,7 +522,7 @@ Variable returns Variable: Interaction returns Message: sourceGate=[GateReference|EStringDot] ('sends' | isTrigger=Trigger) - argument+=DataUse + argument=DataUse 'to' target+=Target ( "," target+=Target)* ( @@ -540,7 +544,7 @@ Trigger returns ecore::EBoolean : Target returns Target: targetGate=[GateReference|EStringDot] - ('where it is' 'assigned' 'to' variable+=[Variable|EString])? + ('where it is' 'assigned' 'to' variable=[Variable|EString])? ( 'with' '{' @@ -600,11 +604,17 @@ Behaviour returns Behaviour: ; Block returns Block: - ('[' guard=DataUse ']')? + ('[' guard+=LocalExpression ']')? '{' behaviour+=Behaviour ( behaviour+=Behaviour)* '}' ; + +LocalExpression returns LocalExpression: + expression=DataUse +; + + CompoundBehaviour returns CompoundBehaviour: block=Block ; @@ -634,7 +644,7 @@ TimerStart returns TimerStart: BoundedLoopBehaviour returns BoundedLoopBehaviour: 'repeat' - numIteration=DataUse + numIteration+=LocalExpression 'times' // 'from' startValue=DataInstanceSpecification // 'to' endValue=DataInstanceSpecification -- GitLab