Loading plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +46 −48 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ import "http://www.etsi.org/spec/TDL/1.3.1/configurations" as extendedconfigurat //Needs to be the first rule Package returns tdl::Package: {tdl::Package} PrefixFragment AnnotationFragment 'Package' name=Identifier BEGIN Loading Loading @@ -62,7 +62,7 @@ PackageableElement returns tdl::PackageableElement: ElementImport returns tdl::ElementImport: {tdl::ElementImport} PrefixCommentFragment AnnotationCommentFragment 'Import' ('all' | (importedElement+=[tdl::PackageableElement|Identifier] Loading @@ -83,7 +83,7 @@ Annotation returns tdl::Annotation: AnnotationType returns tdl::AnnotationType: {tdl::AnnotationType} PrefixCommentFragment AnnotationCommentFragment 'AnnotationType' name=Identifier extension=Extension? Loading @@ -91,7 +91,7 @@ AnnotationType returns tdl::AnnotationType: TestObjective returns tdl::TestObjective: {tdl::TestObjective} PrefixCommentFragment AnnotationCommentFragment 'TestObjective' name=Identifier ( Loading @@ -108,7 +108,7 @@ Extension returns tdl::Extension: ; ConstraintType returns tdl::ConstraintType: PrefixCommentFragment AnnotationCommentFragment 'Constraint' name=Identifier ; Loading @@ -125,14 +125,14 @@ Constraint returns tdl::Constraint: DataResourceMapping returns tdl::DataResourceMapping: {tdl::DataResourceMapping} PrefixCommentFragment AnnotationCommentFragment 'Use' resourceURI=EString 'as' name=Identifier ; DataElementMapping returns tdl::DataElementMapping: PrefixCommentFragment AnnotationCommentFragment 'Map' mappableDataElement=[tdl::MappableDataElement|Identifier] ('to' elementURI=EString)? Loading @@ -146,7 +146,7 @@ DataElementMapping returns tdl::DataElementMapping: ; ParameterMapping returns tdl::ParameterMapping: PrefixCommentFragment AnnotationCommentFragment parameter=[tdl::Parameter|Identifier] '->' parameterURI=EString ; Loading @@ -154,14 +154,14 @@ ParameterMapping returns tdl::ParameterMapping: SimpleDataType_Impl returns tdl::SimpleDataType: {tdl::SimpleDataType} PrefixCommentFragment AnnotationCommentFragment 'Type' ConstraintFragment? name=Identifier ; SimpleDataInstance returns tdl::SimpleDataInstance: PrefixCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] name=Identifier ; Loading @@ -169,7 +169,7 @@ SimpleDataInstance returns tdl::SimpleDataInstance: //TODO: alternative specification dialects? StructuredDataType returns tdl::StructuredDataType: {tdl::StructuredDataType} PrefixCommentFragment AnnotationCommentFragment 'Type' //TODO: reconsider order (conflicts, also for other types) ConstraintFragment? Loading @@ -181,7 +181,7 @@ StructuredDataType returns tdl::StructuredDataType: ; Member returns tdl::Member: PrefixCommentFragment AnnotationCommentFragment MemberConstraintFragment? (isOptional?='optional')? dataType=[tdl::DataType|Identifier] Loading @@ -190,7 +190,7 @@ Member returns tdl::Member: //TODO: alternative specification dialects? StructuredDataInstance returns tdl::StructuredDataInstance: PrefixCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] name=Identifier //TODO: use keywords for unassigned member treatment? Loading @@ -201,7 +201,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: ; MemberAssignment returns tdl::MemberAssignment: PrefixCommentFragment AnnotationCommentFragment member=[tdl::Member|Identifier] '=' memberSpec=StaticDataUse ; Loading @@ -211,7 +211,7 @@ MemberAssignment returns tdl::MemberAssignment: // currently: a bit of reinvention CollectionDataType returns tdl::CollectionDataType: PrefixCommentFragment AnnotationCommentFragment 'Collection' name=Identifier ConstraintFragment? Loading @@ -219,21 +219,21 @@ CollectionDataType returns tdl::CollectionDataType: ; CollectionDataInstance returns tdl::CollectionDataInstance: PrefixCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] name=Identifier '[' item+=StaticDataUse* ']' ; ProcedureSignature returns tdl::ProcedureSignature: PrefixCommentFragment AnnotationCommentFragment 'Signature' name=Identifier '(' parameter+=ProcedureParameter ( "," parameter+=ProcedureParameter)* ')' ; ProcedureParameter returns tdl::ProcedureParameter: PrefixFragment AnnotationFragment kind=ParameterKind dataType=[tdl::DataType|Identifier] name=Identifier Loading @@ -248,14 +248,14 @@ Parameter returns tdl::Parameter: Member | FormalParameter | ProcedureParameter; FormalParameter returns tdl::FormalParameter: PrefixFragment AnnotationFragment dataType=[tdl::DataType|Identifier] name=Identifier WithCommentFragment? ; Variable returns tdl::Variable: PrefixCommentFragment AnnotationCommentFragment 'variable' dataType=[tdl::DataType|Identifier] name=Identifier Loading @@ -268,7 +268,7 @@ Action returns tdl::Action: Action_Impl returns tdl::Action: {tdl::Action} PrefixCommentFragment AnnotationCommentFragment 'Action' name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? Loading @@ -276,7 +276,7 @@ Action_Impl returns tdl::Action: ; Function returns tdl::Function: PrefixCommentFragment AnnotationCommentFragment 'Function' name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? Loading @@ -289,7 +289,7 @@ enum UnassignedMemberTreatment returns tdl::UnassignedMemberTreatment: PredefinedFunction returns tdl::PredefinedFunction: {tdl::PredefinedFunction} PrefixCommentFragment AnnotationCommentFragment 'Predefined' (name=PredefinedIdentifierBinary | name=PredefinedIdentifierNot Loading @@ -313,7 +313,7 @@ PredefinedIdentifierSize returns ecore::EString: ; EnumDataType returns tdl::EnumDataType: PrefixCommentFragment AnnotationCommentFragment 'Enumerated' name=Identifier BEGIN Loading Loading @@ -490,7 +490,7 @@ PredefinedFunctionCallBinary returns tdl::PredefinedFunctionCall: Time returns tdl::Time: {tdl::Time} PrefixCommentFragment AnnotationCommentFragment 'Time' name=Identifier ; Loading Loading @@ -520,7 +520,7 @@ TimeConstraint returns tdl::TimeConstraint: Timer returns tdl::Timer: {tdl::Timer} PrefixCommentFragment AnnotationCommentFragment 'timer' name=Identifier ; Loading Loading @@ -582,7 +582,7 @@ TimeOut returns tdl::TimeOut: //# Test Configuration GateType returns tdl::GateType: PrefixCommentFragment AnnotationCommentFragment kind=GateTypeKind 'Gate' name=Identifier Loading @@ -594,7 +594,7 @@ enum GateTypeKind returns tdl::GateTypeKind: Message = 'Message' | Procedure = 'Procedure'; GateInstance returns tdl::GateInstance: PrefixCommentFragment AnnotationCommentFragment 'gate' type=[tdl::GateType|Identifier] name=Identifier Loading @@ -602,7 +602,7 @@ GateInstance returns tdl::GateInstance: ; ComponentType returns tdl::ComponentType: PrefixCommentFragment AnnotationCommentFragment 'Component' name=Identifier (extension=Extension)? Loading @@ -614,7 +614,7 @@ ComponentType returns tdl::ComponentType: ; ComponentInstance returns tdl::ComponentInstance: PrefixCommentFragment AnnotationCommentFragment 'create' role=ComponentInstanceRole name=Identifier Loading @@ -633,7 +633,7 @@ GateReference returns tdl::GateReference: ; Connection returns tdl::Connection: PrefixCommentFragment AnnotationCommentFragment 'connect' endPoint+=GateReference 'to' endPoint+=GateReference WithNameFragment? Loading @@ -641,7 +641,7 @@ Connection returns tdl::Connection: TestConfiguration returns tdl::TestConfiguration: PrefixCommentFragment AnnotationCommentFragment 'Configuration' name=Identifier BEGIN Loading Loading @@ -713,25 +713,25 @@ SingleCombinedBehaviour returns tdl::SingleCombinedBehaviour: ; CompoundBehaviour returns tdl::CompoundBehaviour: PrefixFragment AnnotationFragment block=Block ; BoundedLoopBehaviour returns tdl::BoundedLoopBehaviour: PrefixFragment AnnotationFragment 'repeat' numIteration+=LocalLoopExpression (',' numIteration+=LocalLoopExpression)* block=Block ; UnboundedLoopBehaviour returns tdl::UnboundedLoopBehaviour: PrefixFragment AnnotationFragment 'repeat' block=Block ; OptionalBehaviour returns tdl::OptionalBehaviour: PrefixFragment AnnotationFragment 'optionally' block=Block ; Loading @@ -743,7 +743,7 @@ MultipleCombinedBehaviour returns tdl::MultipleCombinedBehaviour: ; ConditionalBehaviour returns tdl::ConditionalBehaviour: PrefixFragment AnnotationFragment 'if' block+=Block (=>('else' block+=Block) | (('else' 'if' block+=Block)* Loading @@ -751,7 +751,7 @@ ConditionalBehaviour returns tdl::ConditionalBehaviour: ; AlternativeBehaviour returns tdl::AlternativeBehaviour: PrefixFragment AnnotationFragment 'alternatively' block+=Block //TODO: enforce 2+? Loading @@ -759,7 +759,7 @@ AlternativeBehaviour returns tdl::AlternativeBehaviour: ; ParallelBehaviour returns tdl::ParallelBehaviour: PrefixFragment AnnotationFragment 'run' block+=Block //TODO: enforce 2+? //TODO: simplify keywords / syntax Loading @@ -771,7 +771,7 @@ ExceptionalBehaviour returns tdl::ExceptionalBehaviour: DefaultBehaviour | InterruptBehaviour; DefaultBehaviour returns tdl::DefaultBehaviour: PrefixFragment AnnotationFragment 'default' ('on' guardedComponent=[tdl::ComponentInstance|Identifier])? block=Block Loading @@ -779,7 +779,7 @@ DefaultBehaviour returns tdl::DefaultBehaviour: ; InterruptBehaviour returns tdl::InterruptBehaviour: PrefixFragment AnnotationFragment 'interrupt' ('on' guardedComponent=[tdl::ComponentInstance|Identifier])? block=Block Loading @@ -787,7 +787,7 @@ InterruptBehaviour returns tdl::InterruptBehaviour: ; PeriodicBehaviour returns tdl::PeriodicBehaviour: PrefixFragment AnnotationFragment 'every' (period+=LocalExpression (',' period+=LocalExpression)*) block=Block Loading Loading @@ -936,7 +936,7 @@ TestDescriptionReference returns tdl::TestDescriptionReference: ; ComponentInstanceBinding returns tdl::ComponentInstanceBinding: PrefixCommentFragment AnnotationCommentFragment 'bind' formalComponent=[tdl::ComponentInstance|Identifier] 'to' actualComponent=[tdl::ComponentInstance|Identifier] ; Loading Loading @@ -975,11 +975,11 @@ Assignment returns tdl::Assignment: //## Fragments //Element : Abstract fragment PrefixFragment returns tdl::Element: fragment AnnotationFragment returns tdl::Element: ('@' annotation+=Annotation)* ; fragment PrefixCommentFragment returns tdl::Element: fragment AnnotationCommentFragment returns tdl::Element: (comment+=Comment)* ('@' annotation+=Annotation)* ; Loading @@ -1000,9 +1000,7 @@ fragment WithCommentFragment returns tdl::Element: fragment WithNameFragment returns tdl::Element: 'with' BEGIN //At least one element shall be provided? Ambiguity? NameFragment? (comment+=Comment)* NameFragment END ; Loading Loading
plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +46 −48 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ import "http://www.etsi.org/spec/TDL/1.3.1/configurations" as extendedconfigurat //Needs to be the first rule Package returns tdl::Package: {tdl::Package} PrefixFragment AnnotationFragment 'Package' name=Identifier BEGIN Loading Loading @@ -62,7 +62,7 @@ PackageableElement returns tdl::PackageableElement: ElementImport returns tdl::ElementImport: {tdl::ElementImport} PrefixCommentFragment AnnotationCommentFragment 'Import' ('all' | (importedElement+=[tdl::PackageableElement|Identifier] Loading @@ -83,7 +83,7 @@ Annotation returns tdl::Annotation: AnnotationType returns tdl::AnnotationType: {tdl::AnnotationType} PrefixCommentFragment AnnotationCommentFragment 'AnnotationType' name=Identifier extension=Extension? Loading @@ -91,7 +91,7 @@ AnnotationType returns tdl::AnnotationType: TestObjective returns tdl::TestObjective: {tdl::TestObjective} PrefixCommentFragment AnnotationCommentFragment 'TestObjective' name=Identifier ( Loading @@ -108,7 +108,7 @@ Extension returns tdl::Extension: ; ConstraintType returns tdl::ConstraintType: PrefixCommentFragment AnnotationCommentFragment 'Constraint' name=Identifier ; Loading @@ -125,14 +125,14 @@ Constraint returns tdl::Constraint: DataResourceMapping returns tdl::DataResourceMapping: {tdl::DataResourceMapping} PrefixCommentFragment AnnotationCommentFragment 'Use' resourceURI=EString 'as' name=Identifier ; DataElementMapping returns tdl::DataElementMapping: PrefixCommentFragment AnnotationCommentFragment 'Map' mappableDataElement=[tdl::MappableDataElement|Identifier] ('to' elementURI=EString)? Loading @@ -146,7 +146,7 @@ DataElementMapping returns tdl::DataElementMapping: ; ParameterMapping returns tdl::ParameterMapping: PrefixCommentFragment AnnotationCommentFragment parameter=[tdl::Parameter|Identifier] '->' parameterURI=EString ; Loading @@ -154,14 +154,14 @@ ParameterMapping returns tdl::ParameterMapping: SimpleDataType_Impl returns tdl::SimpleDataType: {tdl::SimpleDataType} PrefixCommentFragment AnnotationCommentFragment 'Type' ConstraintFragment? name=Identifier ; SimpleDataInstance returns tdl::SimpleDataInstance: PrefixCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] name=Identifier ; Loading @@ -169,7 +169,7 @@ SimpleDataInstance returns tdl::SimpleDataInstance: //TODO: alternative specification dialects? StructuredDataType returns tdl::StructuredDataType: {tdl::StructuredDataType} PrefixCommentFragment AnnotationCommentFragment 'Type' //TODO: reconsider order (conflicts, also for other types) ConstraintFragment? Loading @@ -181,7 +181,7 @@ StructuredDataType returns tdl::StructuredDataType: ; Member returns tdl::Member: PrefixCommentFragment AnnotationCommentFragment MemberConstraintFragment? (isOptional?='optional')? dataType=[tdl::DataType|Identifier] Loading @@ -190,7 +190,7 @@ Member returns tdl::Member: //TODO: alternative specification dialects? StructuredDataInstance returns tdl::StructuredDataInstance: PrefixCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] name=Identifier //TODO: use keywords for unassigned member treatment? Loading @@ -201,7 +201,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: ; MemberAssignment returns tdl::MemberAssignment: PrefixCommentFragment AnnotationCommentFragment member=[tdl::Member|Identifier] '=' memberSpec=StaticDataUse ; Loading @@ -211,7 +211,7 @@ MemberAssignment returns tdl::MemberAssignment: // currently: a bit of reinvention CollectionDataType returns tdl::CollectionDataType: PrefixCommentFragment AnnotationCommentFragment 'Collection' name=Identifier ConstraintFragment? Loading @@ -219,21 +219,21 @@ CollectionDataType returns tdl::CollectionDataType: ; CollectionDataInstance returns tdl::CollectionDataInstance: PrefixCommentFragment AnnotationCommentFragment dataType=[tdl::DataType|Identifier] name=Identifier '[' item+=StaticDataUse* ']' ; ProcedureSignature returns tdl::ProcedureSignature: PrefixCommentFragment AnnotationCommentFragment 'Signature' name=Identifier '(' parameter+=ProcedureParameter ( "," parameter+=ProcedureParameter)* ')' ; ProcedureParameter returns tdl::ProcedureParameter: PrefixFragment AnnotationFragment kind=ParameterKind dataType=[tdl::DataType|Identifier] name=Identifier Loading @@ -248,14 +248,14 @@ Parameter returns tdl::Parameter: Member | FormalParameter | ProcedureParameter; FormalParameter returns tdl::FormalParameter: PrefixFragment AnnotationFragment dataType=[tdl::DataType|Identifier] name=Identifier WithCommentFragment? ; Variable returns tdl::Variable: PrefixCommentFragment AnnotationCommentFragment 'variable' dataType=[tdl::DataType|Identifier] name=Identifier Loading @@ -268,7 +268,7 @@ Action returns tdl::Action: Action_Impl returns tdl::Action: {tdl::Action} PrefixCommentFragment AnnotationCommentFragment 'Action' name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? Loading @@ -276,7 +276,7 @@ Action_Impl returns tdl::Action: ; Function returns tdl::Function: PrefixCommentFragment AnnotationCommentFragment 'Function' name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? Loading @@ -289,7 +289,7 @@ enum UnassignedMemberTreatment returns tdl::UnassignedMemberTreatment: PredefinedFunction returns tdl::PredefinedFunction: {tdl::PredefinedFunction} PrefixCommentFragment AnnotationCommentFragment 'Predefined' (name=PredefinedIdentifierBinary | name=PredefinedIdentifierNot Loading @@ -313,7 +313,7 @@ PredefinedIdentifierSize returns ecore::EString: ; EnumDataType returns tdl::EnumDataType: PrefixCommentFragment AnnotationCommentFragment 'Enumerated' name=Identifier BEGIN Loading Loading @@ -490,7 +490,7 @@ PredefinedFunctionCallBinary returns tdl::PredefinedFunctionCall: Time returns tdl::Time: {tdl::Time} PrefixCommentFragment AnnotationCommentFragment 'Time' name=Identifier ; Loading Loading @@ -520,7 +520,7 @@ TimeConstraint returns tdl::TimeConstraint: Timer returns tdl::Timer: {tdl::Timer} PrefixCommentFragment AnnotationCommentFragment 'timer' name=Identifier ; Loading Loading @@ -582,7 +582,7 @@ TimeOut returns tdl::TimeOut: //# Test Configuration GateType returns tdl::GateType: PrefixCommentFragment AnnotationCommentFragment kind=GateTypeKind 'Gate' name=Identifier Loading @@ -594,7 +594,7 @@ enum GateTypeKind returns tdl::GateTypeKind: Message = 'Message' | Procedure = 'Procedure'; GateInstance returns tdl::GateInstance: PrefixCommentFragment AnnotationCommentFragment 'gate' type=[tdl::GateType|Identifier] name=Identifier Loading @@ -602,7 +602,7 @@ GateInstance returns tdl::GateInstance: ; ComponentType returns tdl::ComponentType: PrefixCommentFragment AnnotationCommentFragment 'Component' name=Identifier (extension=Extension)? Loading @@ -614,7 +614,7 @@ ComponentType returns tdl::ComponentType: ; ComponentInstance returns tdl::ComponentInstance: PrefixCommentFragment AnnotationCommentFragment 'create' role=ComponentInstanceRole name=Identifier Loading @@ -633,7 +633,7 @@ GateReference returns tdl::GateReference: ; Connection returns tdl::Connection: PrefixCommentFragment AnnotationCommentFragment 'connect' endPoint+=GateReference 'to' endPoint+=GateReference WithNameFragment? Loading @@ -641,7 +641,7 @@ Connection returns tdl::Connection: TestConfiguration returns tdl::TestConfiguration: PrefixCommentFragment AnnotationCommentFragment 'Configuration' name=Identifier BEGIN Loading Loading @@ -713,25 +713,25 @@ SingleCombinedBehaviour returns tdl::SingleCombinedBehaviour: ; CompoundBehaviour returns tdl::CompoundBehaviour: PrefixFragment AnnotationFragment block=Block ; BoundedLoopBehaviour returns tdl::BoundedLoopBehaviour: PrefixFragment AnnotationFragment 'repeat' numIteration+=LocalLoopExpression (',' numIteration+=LocalLoopExpression)* block=Block ; UnboundedLoopBehaviour returns tdl::UnboundedLoopBehaviour: PrefixFragment AnnotationFragment 'repeat' block=Block ; OptionalBehaviour returns tdl::OptionalBehaviour: PrefixFragment AnnotationFragment 'optionally' block=Block ; Loading @@ -743,7 +743,7 @@ MultipleCombinedBehaviour returns tdl::MultipleCombinedBehaviour: ; ConditionalBehaviour returns tdl::ConditionalBehaviour: PrefixFragment AnnotationFragment 'if' block+=Block (=>('else' block+=Block) | (('else' 'if' block+=Block)* Loading @@ -751,7 +751,7 @@ ConditionalBehaviour returns tdl::ConditionalBehaviour: ; AlternativeBehaviour returns tdl::AlternativeBehaviour: PrefixFragment AnnotationFragment 'alternatively' block+=Block //TODO: enforce 2+? Loading @@ -759,7 +759,7 @@ AlternativeBehaviour returns tdl::AlternativeBehaviour: ; ParallelBehaviour returns tdl::ParallelBehaviour: PrefixFragment AnnotationFragment 'run' block+=Block //TODO: enforce 2+? //TODO: simplify keywords / syntax Loading @@ -771,7 +771,7 @@ ExceptionalBehaviour returns tdl::ExceptionalBehaviour: DefaultBehaviour | InterruptBehaviour; DefaultBehaviour returns tdl::DefaultBehaviour: PrefixFragment AnnotationFragment 'default' ('on' guardedComponent=[tdl::ComponentInstance|Identifier])? block=Block Loading @@ -779,7 +779,7 @@ DefaultBehaviour returns tdl::DefaultBehaviour: ; InterruptBehaviour returns tdl::InterruptBehaviour: PrefixFragment AnnotationFragment 'interrupt' ('on' guardedComponent=[tdl::ComponentInstance|Identifier])? block=Block Loading @@ -787,7 +787,7 @@ InterruptBehaviour returns tdl::InterruptBehaviour: ; PeriodicBehaviour returns tdl::PeriodicBehaviour: PrefixFragment AnnotationFragment 'every' (period+=LocalExpression (',' period+=LocalExpression)*) block=Block Loading Loading @@ -936,7 +936,7 @@ TestDescriptionReference returns tdl::TestDescriptionReference: ; ComponentInstanceBinding returns tdl::ComponentInstanceBinding: PrefixCommentFragment AnnotationCommentFragment 'bind' formalComponent=[tdl::ComponentInstance|Identifier] 'to' actualComponent=[tdl::ComponentInstance|Identifier] ; Loading Loading @@ -975,11 +975,11 @@ Assignment returns tdl::Assignment: //## Fragments //Element : Abstract fragment PrefixFragment returns tdl::Element: fragment AnnotationFragment returns tdl::Element: ('@' annotation+=Annotation)* ; fragment PrefixCommentFragment returns tdl::Element: fragment AnnotationCommentFragment returns tdl::Element: (comment+=Comment)* ('@' annotation+=Annotation)* ; Loading @@ -1000,9 +1000,7 @@ fragment WithCommentFragment returns tdl::Element: fragment WithNameFragment returns tdl::Element: 'with' BEGIN //At least one element shall be provided? Ambiguity? NameFragment? (comment+=Comment)* NameFragment END ; Loading