Loading plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +29 −40 Original line number Original line Diff line number Diff line Loading @@ -74,7 +74,7 @@ Comment returns tdl::Comment: ; ; Annotation returns tdl::Annotation: Annotation returns tdl::Annotation: key=[tdl::AnnotationType|Identifier] '@' key=[tdl::AnnotationType|Identifier] (':' value=EString)? (':' value=EString)? ; ; Loading @@ -87,12 +87,10 @@ AnnotationType returns tdl::AnnotationType: TestObjective returns tdl::TestObjective: TestObjective returns tdl::TestObjective: AnnotationCommentFragment AnnotationCommentFragment 'TestObjective' name=Identifier 'TestObjective' name=Identifier ( (BEGIN BEGIN ('Description:' description=EString)? ('Description:' description=EString)? ('References:' objectiveURI+=EString (',' objectiveURI+=EString)*)? ('References:' objectiveURI+=EString (',' objectiveURI+=EString)*)? END END)? )? ; ; Extension returns tdl::Extension: Extension returns tdl::Extension: Loading Loading @@ -127,11 +125,10 @@ DataElementMapping returns tdl::DataElementMapping: ('to' elementURI=EString)? ('to' elementURI=EString)? 'in' dataResourceMapping=[tdl::DataResourceMapping|Identifier] 'in' dataResourceMapping=[tdl::DataResourceMapping|Identifier] 'as' name=Identifier 'as' name=Identifier ( (BEGIN BEGIN //TODO: separator (parameterMapping+=ParameterMapping)* (parameterMapping+=ParameterMapping)* END END)? )? ; ; ParameterMapping returns tdl::ParameterMapping: ParameterMapping returns tdl::ParameterMapping: Loading Loading @@ -159,9 +156,7 @@ StructuredDataType returns tdl::StructuredDataType: ConstraintFragment? ConstraintFragment? 'Type' name=Identifier 'Type' name=Identifier extension=Extension? extension=Extension? '(' '(' (member+=Member (',' member+=Member)*)? ')' (member+=Member (',' member+=Member)*)? ')' ; ; Member returns tdl::Member: Member returns tdl::Member: Loading @@ -179,9 +174,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: name=Identifier name=Identifier //TODO: use keywords for unassigned member treatment? //TODO: use keywords for unassigned member treatment? (unassignedMember=UnassignedMemberTreatment)? (unassignedMember=UnassignedMemberTreatment)? '(' '(' (memberAssignment+=MemberAssignment (',' memberAssignment+=MemberAssignment)*)? ')' (memberAssignment+=MemberAssignment (',' memberAssignment+=MemberAssignment)*)? ')' ; ; MemberAssignment returns tdl::MemberAssignment: MemberAssignment returns tdl::MemberAssignment: Loading @@ -190,10 +183,6 @@ MemberAssignment returns tdl::MemberAssignment: '=' memberSpec=StaticDataUse '=' memberSpec=StaticDataUse ; ; //TODO: stick with existing syntax and address urgent issues or // invent new parts? -> stick with existing and refine!!!! // currently: a bit of reinvention CollectionDataType returns tdl::CollectionDataType: CollectionDataType returns tdl::CollectionDataType: AnnotationCommentFragment AnnotationCommentFragment ConstraintFragment? ConstraintFragment? Loading @@ -205,6 +194,7 @@ CollectionDataInstance returns tdl::CollectionDataInstance: AnnotationCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] dataType=[tdl::DataType|Identifier] name=Identifier name=Identifier //TODO: separators? '[' item+=StaticDataUse* ']' '[' item+=StaticDataUse* ']' ; ; Loading Loading @@ -293,7 +283,7 @@ EnumDataType returns tdl::EnumDataType: AnnotationCommentFragment AnnotationCommentFragment 'Enumerated' name=Identifier 'Enumerated' name=Identifier BEGIN BEGIN //TODO: without type specification? //TODO: without type specification? separator? (value+=SimpleDataInstance)+ (value+=SimpleDataInstance)+ END END ; ; Loading Loading @@ -332,7 +322,6 @@ DataInstanceUse returns tdl::DataInstanceUse: ('a' dataType=[tdl::StructuredDataType|Identifier])) ('a' dataType=[tdl::StructuredDataType|Identifier])) UnassignedFragment? UnassignedFragment? ParameterBindingFragment? ParameterBindingFragment? //TODO: what if PrefixFragment? ReductionFragment ReductionFragment ; ; Loading Loading @@ -385,7 +374,7 @@ AnyValue returns tdl::AnyValue: ('of' 'type' dataType=[tdl::DataType|Identifier])? ('of' 'type' dataType=[tdl::DataType|Identifier])? ; ; AnyValueOrOmit returns tdl::OmitValue: AnyValueOrOmit returns tdl::AnyValueOrOmit: name='*' name='*' ; ; Loading @@ -394,7 +383,6 @@ OmitValue returns tdl::OmitValue: ; ; LiteralValueUse returns tdl::LiteralValueUse: LiteralValueUse returns tdl::LiteralValueUse: //NOTE: Reduction and argument are excluded (value=STRING | intValue=BIGINTEGER | boolValue=BOOLEAN) (value=STRING | intValue=BIGINTEGER | boolValue=BOOLEAN) //TODO: add option to have the type after wards without any keyword e.g. 100 s? //TODO: add option to have the type after wards without any keyword e.g. 100 s? ('of' 'type' dataType=[tdl::DataType|Identifier])? ('of' 'type' dataType=[tdl::DataType|Identifier])? Loading Loading @@ -785,7 +773,6 @@ Interaction returns tdl::Interaction: Message returns tdl::Message: Message returns tdl::Message: AtomicPrefixFragment AtomicPrefixFragment sourceGate=[tdl::GateReference|IdentifierDot] sourceGate=[tdl::GateReference|IdentifierDot] // | sourceGate=[tdl::GateReference|Identifier] ('sends' | (isTrigger?='triggers')) ('sends' | (isTrigger?='triggers')) argument=DataUse argument=DataUse 'to' target+=TargetMessage ( "," target+=TargetMessage)* 'to' target+=TargetMessage ( "," target+=TargetMessage)* Loading @@ -794,7 +781,6 @@ Message returns tdl::Message: TargetMessage returns tdl::Target: TargetMessage returns tdl::Target: //NOTE: No name, annotations or comments //NOTE: No name, annotations or comments targetGate=[tdl::GateReference|IdentifierDot] targetGate=[tdl::GateReference|IdentifierDot] //TODO: check what the correct syntax shall be (valueAssignment+=ValueAssignmentMessage)? (valueAssignment+=ValueAssignmentMessage)? ; ; Loading Loading @@ -887,7 +873,6 @@ ActionReference returns tdl::ActionReference: InlineAction returns tdl::InlineAction: InlineAction returns tdl::InlineAction: AtomicPrefixFragment AtomicPrefixFragment //TODO: simplify syntax further 'perform' 'action' ':' body=EString 'perform' 'action' ':' body=EString ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ; ; Loading @@ -906,12 +891,12 @@ Assignment returns tdl::Assignment: //Element : Abstract //Element : Abstract fragment AnnotationFragment returns tdl::Element: fragment AnnotationFragment returns tdl::Element: ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment AnnotationCommentFragment returns tdl::Element: fragment AnnotationCommentFragment returns tdl::Element: (comment+=Comment)* (comment+=Comment)* ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment NameFragment returns tdl::Element: fragment NameFragment returns tdl::Element: Loading @@ -937,9 +922,18 @@ fragment WithNameFragment returns tdl::Element: //DataType: Abstract //DataType: Abstract fragment ConstraintFragment returns tdl::DataType: fragment ConstraintFragment returns tdl::DataType: //TODO: put braces into constraint? LBrace (constraint+=Constraint)+ RBrace ; //Member fragment MemberConstraintFragment returns tdl::Member: //TODO: put braces into constraint? LBrace (constraint+=Constraint)+ RBrace LBrace (constraint+=Constraint)+ RBrace ; ; //DataUse: Abstract //DataUse: Abstract fragment ReductionFragment returns tdl::DataUse: fragment ReductionFragment returns tdl::DataUse: Loading @@ -955,6 +949,7 @@ fragment BareParameterBindingFragment returns tdl::DataUse: =>(argument+=ParameterBinding ( "," argument+=ParameterBinding)*) =>(argument+=ParameterBinding ( "," argument+=ParameterBinding)*) ; ; //DataInstanceUse: Abstract fragment UnassignedFragment returns tdl::DataInstanceUse: fragment UnassignedFragment returns tdl::DataInstanceUse: //TODO: added angle brackets for disambiguation //TODO: added angle brackets for disambiguation Loading Loading @@ -1000,11 +995,6 @@ fragment UnassignedFragment returns tdl::DataInstanceUse: //Member fragment MemberConstraintFragment returns tdl::Member: LBrace (constraint+=Constraint)+ RBrace ; //Behaviour : Abstract //Behaviour : Abstract Loading @@ -1012,7 +1002,6 @@ fragment MemberConstraintFragment returns tdl::Member: fragment WithBehaviourFragment returns tdl::Behaviour: fragment WithBehaviourFragment returns tdl::Behaviour: 'with' 'with' BEGIN BEGIN //At least one element shall be provided? Ambiguity? NameFragment? NameFragment? ObjectiveFragment? ObjectiveFragment? (comment+=Comment)* (comment+=Comment)* Loading @@ -1028,7 +1017,7 @@ fragment ObjectiveFragment returns tdl::Behaviour: fragment TDPrefixFragment returns tdl::TestDescription: fragment TDPrefixFragment returns tdl::TestDescription: (comment+=Comment)* (comment+=Comment)* TDObjectiveFragment? TDObjectiveFragment? ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment TDObjectiveFragment returns tdl::TestDescription: fragment TDObjectiveFragment returns tdl::TestDescription: Loading @@ -1040,7 +1029,7 @@ fragment TDObjectiveFragment returns tdl::TestDescription: fragment AtomicPrefixFragment returns tdl::AtomicBehaviour: fragment AtomicPrefixFragment returns tdl::AtomicBehaviour: ObjectiveFragment? ObjectiveFragment? (comment+=Comment)* (comment+=Comment)* ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment WithAtomicFragment returns tdl::AtomicBehaviour: fragment WithAtomicFragment returns tdl::AtomicBehaviour: Loading Loading
plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +29 −40 Original line number Original line Diff line number Diff line Loading @@ -74,7 +74,7 @@ Comment returns tdl::Comment: ; ; Annotation returns tdl::Annotation: Annotation returns tdl::Annotation: key=[tdl::AnnotationType|Identifier] '@' key=[tdl::AnnotationType|Identifier] (':' value=EString)? (':' value=EString)? ; ; Loading @@ -87,12 +87,10 @@ AnnotationType returns tdl::AnnotationType: TestObjective returns tdl::TestObjective: TestObjective returns tdl::TestObjective: AnnotationCommentFragment AnnotationCommentFragment 'TestObjective' name=Identifier 'TestObjective' name=Identifier ( (BEGIN BEGIN ('Description:' description=EString)? ('Description:' description=EString)? ('References:' objectiveURI+=EString (',' objectiveURI+=EString)*)? ('References:' objectiveURI+=EString (',' objectiveURI+=EString)*)? END END)? )? ; ; Extension returns tdl::Extension: Extension returns tdl::Extension: Loading Loading @@ -127,11 +125,10 @@ DataElementMapping returns tdl::DataElementMapping: ('to' elementURI=EString)? ('to' elementURI=EString)? 'in' dataResourceMapping=[tdl::DataResourceMapping|Identifier] 'in' dataResourceMapping=[tdl::DataResourceMapping|Identifier] 'as' name=Identifier 'as' name=Identifier ( (BEGIN BEGIN //TODO: separator (parameterMapping+=ParameterMapping)* (parameterMapping+=ParameterMapping)* END END)? )? ; ; ParameterMapping returns tdl::ParameterMapping: ParameterMapping returns tdl::ParameterMapping: Loading Loading @@ -159,9 +156,7 @@ StructuredDataType returns tdl::StructuredDataType: ConstraintFragment? ConstraintFragment? 'Type' name=Identifier 'Type' name=Identifier extension=Extension? extension=Extension? '(' '(' (member+=Member (',' member+=Member)*)? ')' (member+=Member (',' member+=Member)*)? ')' ; ; Member returns tdl::Member: Member returns tdl::Member: Loading @@ -179,9 +174,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: name=Identifier name=Identifier //TODO: use keywords for unassigned member treatment? //TODO: use keywords for unassigned member treatment? (unassignedMember=UnassignedMemberTreatment)? (unassignedMember=UnassignedMemberTreatment)? '(' '(' (memberAssignment+=MemberAssignment (',' memberAssignment+=MemberAssignment)*)? ')' (memberAssignment+=MemberAssignment (',' memberAssignment+=MemberAssignment)*)? ')' ; ; MemberAssignment returns tdl::MemberAssignment: MemberAssignment returns tdl::MemberAssignment: Loading @@ -190,10 +183,6 @@ MemberAssignment returns tdl::MemberAssignment: '=' memberSpec=StaticDataUse '=' memberSpec=StaticDataUse ; ; //TODO: stick with existing syntax and address urgent issues or // invent new parts? -> stick with existing and refine!!!! // currently: a bit of reinvention CollectionDataType returns tdl::CollectionDataType: CollectionDataType returns tdl::CollectionDataType: AnnotationCommentFragment AnnotationCommentFragment ConstraintFragment? ConstraintFragment? Loading @@ -205,6 +194,7 @@ CollectionDataInstance returns tdl::CollectionDataInstance: AnnotationCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] dataType=[tdl::DataType|Identifier] name=Identifier name=Identifier //TODO: separators? '[' item+=StaticDataUse* ']' '[' item+=StaticDataUse* ']' ; ; Loading Loading @@ -293,7 +283,7 @@ EnumDataType returns tdl::EnumDataType: AnnotationCommentFragment AnnotationCommentFragment 'Enumerated' name=Identifier 'Enumerated' name=Identifier BEGIN BEGIN //TODO: without type specification? //TODO: without type specification? separator? (value+=SimpleDataInstance)+ (value+=SimpleDataInstance)+ END END ; ; Loading Loading @@ -332,7 +322,6 @@ DataInstanceUse returns tdl::DataInstanceUse: ('a' dataType=[tdl::StructuredDataType|Identifier])) ('a' dataType=[tdl::StructuredDataType|Identifier])) UnassignedFragment? UnassignedFragment? ParameterBindingFragment? ParameterBindingFragment? //TODO: what if PrefixFragment? ReductionFragment ReductionFragment ; ; Loading Loading @@ -385,7 +374,7 @@ AnyValue returns tdl::AnyValue: ('of' 'type' dataType=[tdl::DataType|Identifier])? ('of' 'type' dataType=[tdl::DataType|Identifier])? ; ; AnyValueOrOmit returns tdl::OmitValue: AnyValueOrOmit returns tdl::AnyValueOrOmit: name='*' name='*' ; ; Loading @@ -394,7 +383,6 @@ OmitValue returns tdl::OmitValue: ; ; LiteralValueUse returns tdl::LiteralValueUse: LiteralValueUse returns tdl::LiteralValueUse: //NOTE: Reduction and argument are excluded (value=STRING | intValue=BIGINTEGER | boolValue=BOOLEAN) (value=STRING | intValue=BIGINTEGER | boolValue=BOOLEAN) //TODO: add option to have the type after wards without any keyword e.g. 100 s? //TODO: add option to have the type after wards without any keyword e.g. 100 s? ('of' 'type' dataType=[tdl::DataType|Identifier])? ('of' 'type' dataType=[tdl::DataType|Identifier])? Loading Loading @@ -785,7 +773,6 @@ Interaction returns tdl::Interaction: Message returns tdl::Message: Message returns tdl::Message: AtomicPrefixFragment AtomicPrefixFragment sourceGate=[tdl::GateReference|IdentifierDot] sourceGate=[tdl::GateReference|IdentifierDot] // | sourceGate=[tdl::GateReference|Identifier] ('sends' | (isTrigger?='triggers')) ('sends' | (isTrigger?='triggers')) argument=DataUse argument=DataUse 'to' target+=TargetMessage ( "," target+=TargetMessage)* 'to' target+=TargetMessage ( "," target+=TargetMessage)* Loading @@ -794,7 +781,6 @@ Message returns tdl::Message: TargetMessage returns tdl::Target: TargetMessage returns tdl::Target: //NOTE: No name, annotations or comments //NOTE: No name, annotations or comments targetGate=[tdl::GateReference|IdentifierDot] targetGate=[tdl::GateReference|IdentifierDot] //TODO: check what the correct syntax shall be (valueAssignment+=ValueAssignmentMessage)? (valueAssignment+=ValueAssignmentMessage)? ; ; Loading Loading @@ -887,7 +873,6 @@ ActionReference returns tdl::ActionReference: InlineAction returns tdl::InlineAction: InlineAction returns tdl::InlineAction: AtomicPrefixFragment AtomicPrefixFragment //TODO: simplify syntax further 'perform' 'action' ':' body=EString 'perform' 'action' ':' body=EString ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ('on' componentInstance=[tdl::ComponentInstance|Identifier])? ; ; Loading @@ -906,12 +891,12 @@ Assignment returns tdl::Assignment: //Element : Abstract //Element : Abstract fragment AnnotationFragment returns tdl::Element: fragment AnnotationFragment returns tdl::Element: ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment AnnotationCommentFragment returns tdl::Element: fragment AnnotationCommentFragment returns tdl::Element: (comment+=Comment)* (comment+=Comment)* ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment NameFragment returns tdl::Element: fragment NameFragment returns tdl::Element: Loading @@ -937,9 +922,18 @@ fragment WithNameFragment returns tdl::Element: //DataType: Abstract //DataType: Abstract fragment ConstraintFragment returns tdl::DataType: fragment ConstraintFragment returns tdl::DataType: //TODO: put braces into constraint? LBrace (constraint+=Constraint)+ RBrace ; //Member fragment MemberConstraintFragment returns tdl::Member: //TODO: put braces into constraint? LBrace (constraint+=Constraint)+ RBrace LBrace (constraint+=Constraint)+ RBrace ; ; //DataUse: Abstract //DataUse: Abstract fragment ReductionFragment returns tdl::DataUse: fragment ReductionFragment returns tdl::DataUse: Loading @@ -955,6 +949,7 @@ fragment BareParameterBindingFragment returns tdl::DataUse: =>(argument+=ParameterBinding ( "," argument+=ParameterBinding)*) =>(argument+=ParameterBinding ( "," argument+=ParameterBinding)*) ; ; //DataInstanceUse: Abstract fragment UnassignedFragment returns tdl::DataInstanceUse: fragment UnassignedFragment returns tdl::DataInstanceUse: //TODO: added angle brackets for disambiguation //TODO: added angle brackets for disambiguation Loading Loading @@ -1000,11 +995,6 @@ fragment UnassignedFragment returns tdl::DataInstanceUse: //Member fragment MemberConstraintFragment returns tdl::Member: LBrace (constraint+=Constraint)+ RBrace ; //Behaviour : Abstract //Behaviour : Abstract Loading @@ -1012,7 +1002,6 @@ fragment MemberConstraintFragment returns tdl::Member: fragment WithBehaviourFragment returns tdl::Behaviour: fragment WithBehaviourFragment returns tdl::Behaviour: 'with' 'with' BEGIN BEGIN //At least one element shall be provided? Ambiguity? NameFragment? NameFragment? ObjectiveFragment? ObjectiveFragment? (comment+=Comment)* (comment+=Comment)* Loading @@ -1028,7 +1017,7 @@ fragment ObjectiveFragment returns tdl::Behaviour: fragment TDPrefixFragment returns tdl::TestDescription: fragment TDPrefixFragment returns tdl::TestDescription: (comment+=Comment)* (comment+=Comment)* TDObjectiveFragment? TDObjectiveFragment? ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment TDObjectiveFragment returns tdl::TestDescription: fragment TDObjectiveFragment returns tdl::TestDescription: Loading @@ -1040,7 +1029,7 @@ fragment TDObjectiveFragment returns tdl::TestDescription: fragment AtomicPrefixFragment returns tdl::AtomicBehaviour: fragment AtomicPrefixFragment returns tdl::AtomicBehaviour: ObjectiveFragment? ObjectiveFragment? (comment+=Comment)* (comment+=Comment)* ('@' annotation+=Annotation)* (annotation+=Annotation)* ; ; fragment WithAtomicFragment returns tdl::AtomicBehaviour: fragment WithAtomicFragment returns tdl::AtomicBehaviour: Loading