Loading plugins/Prototypes/org.etsi.mts.tdl.tx/.launch/TDL.tx and TDL.txi.launch +1 −0 Original line number Diff line number Diff line Loading @@ -270,6 +270,7 @@ <setEntry value="org.w3c.dom.svg@default:default"/> </setAttribute> <setAttribute key="selected_workspace_bundles"> <setEntry value="org.etsi.mts.tdl.common@default:default"/> <setEntry value="org.etsi.mts.tdl.model@default:default"/> <setEntry value="org.etsi.mts.tdl.rt.ui@default:default"/> <setEntry value="org.etsi.mts.tdl.tx.ide@default:default"/> Loading plugins/Prototypes/org.etsi.mts.tdl.tx/META-INF/MANIFEST.MF +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ Require-Bundle: org.etsi.mts.tdl.model, org.eclipse.equinox.common;bundle-version="3.5.0", org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", org.eclipse.xtext.util, org.etsi.mts.tdl.common, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.parser.antlr.internal, Loading plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +96 −76 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ Package returns tdl::Package: {tdl::Package} PrefixFragment? 'Package' name=EString name=Identifier BEGIN WithFragment? (^import+=ElementImport)* Loading Loading @@ -60,11 +60,12 @@ ElementImport returns tdl::ElementImport: {tdl::ElementImport} 'Import' ('all' | (importedElement+=[tdl::PackageableElement|EString] ( "," importedElement+=[tdl::PackageableElement|EString])* (importedElement+=[tdl::PackageableElement|Identifier] ( "," importedElement+=[tdl::PackageableElement|Identifier])* ) ) 'from' importedPackage=[tdl::Package|EString] //TODO: check if this (still) works 'from' (importedPackage=[tdl::Package|Identifier] | importedPackage=[tdl::Package|QIdentifier]) WithFragment? ; Loading @@ -73,14 +74,14 @@ Comment returns tdl::Comment: ; Annotation returns tdl::Annotation: key=[tdl::AnnotationType|EString] key=[tdl::AnnotationType|Identifier] (':' value=EString)? ; AnnotationType returns tdl::AnnotationType: {tdl::AnnotationType} 'AnnotationType' name=EString name=Identifier extension=Extension? WithFragmentNested? ; Loading @@ -88,16 +89,16 @@ AnnotationType returns tdl::AnnotationType: TestObjective returns tdl::TestObjective: {tdl::TestObjective} 'TestObjective' name=EString name=Identifier (BEGIN ('Description:' description=EString)? ('References:' (objectiveURI+=EString)+)? ('Description:' description=Identifier)? ('References:' (objectiveURI+=Identifier)+)? WithFragment? END)? ; Extension returns tdl::Extension: 'extends' extending=[tdl::PackageableElement|EString] 'extends' extending=[tdl::PackageableElement|Identifier] ; //# Data Loading @@ -107,17 +108,17 @@ Extension returns tdl::Extension: DataResourceMapping returns tdl::DataResourceMapping: {tdl::DataResourceMapping} 'Use' resourceURI=EString 'as' name=EString resourceURI=Identifier 'as' name=Identifier WithFragmentNested? ; DataElementMapping returns tdl::DataElementMapping: 'Map' mappableDataElement=[tdl::MappableDataElement|EString] ('to' elementURI=EString)? 'in' dataResourceMapping=[tdl::DataResourceMapping|EString] 'as' name=EString mappableDataElement=[tdl::MappableDataElement|Identifier] ('to' elementURI=Identifier)? 'in' dataResourceMapping=[tdl::DataResourceMapping|Identifier] 'as' name=Identifier ( BEGIN WithFragment? Loading @@ -127,8 +128,8 @@ DataElementMapping returns tdl::DataElementMapping: ; ParameterMapping returns tdl::ParameterMapping: parameter=[tdl::Parameter|EString] '->' parameterURI=EString parameter=[tdl::Parameter|Identifier] '->' parameterURI=Identifier WithFragmentNested? ; Loading @@ -136,13 +137,13 @@ ParameterMapping returns tdl::ParameterMapping: SimpleDataType_Impl returns tdl::SimpleDataType: {tdl::SimpleDataType} 'Type' name=EString name=Identifier WithFragmentNested? ; SimpleDataInstance returns tdl::SimpleDataInstance: dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier WithFragmentNested? ; Loading @@ -153,7 +154,7 @@ StructuredDataType returns tdl::StructuredDataType: //TODO: extract to packageable element? PrefixFragment? 'Type' name=EString name=Identifier extension=Extension? BEGIN //WithFragment? Loading @@ -163,15 +164,15 @@ StructuredDataType returns tdl::StructuredDataType: Member returns tdl::Member: (isOptional?='optional')? dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier WithFragmentNested? ; StructuredDataInstance returns tdl::StructuredDataInstance: PrefixFragment? dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier (unassignedMember=UnassignedMemberTreatment)? BEGIN //WithFragment? Loading @@ -180,7 +181,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: ; MemberAssignment returns tdl::MemberAssignment: member=[tdl::Member|EString] member=[tdl::Member|Identifier] '=' memberSpec=StaticDataUse WithFragmentNested? ; Loading @@ -193,37 +194,35 @@ MemberAssignment returns tdl::MemberAssignment: CollectionDataType returns tdl::CollectionDataType: PrefixFragment? 'Collection' name=EString 'of' itemType=[tdl::DataType|EString] name=Identifier 'of' itemType=[tdl::DataType|Identifier] ; CollectionDataInstance returns tdl::CollectionDataInstance: PrefixFragment? //TODO: keep angle brackets? '['dataType=[tdl::DataType|EString]']' //TODO: keep square brackets? ->discuss later (exclusive to guards or guards shall use a word?) dataType=[tdl::DataType|Identifier] //-> should probably be preferred for index or also for begin/end below //alternatively dataType 'collection' name? name=EString (BEGIN item+=StaticDataUse* END)? name=Identifier '[' item+=StaticDataUse* ']' ; ProcedureSignature returns tdl::ProcedureSignature: PrefixFragment? 'Signature' name=EString name=Identifier '(' parameter+=ProcedureParameter ( "," parameter+=ProcedureParameter)* ')' ; ProcedureParameter returns tdl::ProcedureParameter: kind=ParameterKind dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier WithFragmentNested? ; enum ParameterKind returns tdl::ParameterKind: //TODO: add @ prefixes? //TODO: add @ prefixes? ->no In = 'in' | Out = 'out' | Exception = 'exception'; Parameter returns tdl::Parameter: Loading @@ -231,17 +230,17 @@ Parameter returns tdl::Parameter: FormalParameter returns tdl::FormalParameter: PrefixFragment? dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier //TODO: fix fragments //WithFragmentNested ; Variable returns tdl::Variable: PrefixFragment? dataType=[tdl::DataType|EString] dataType=[tdl::DataType|Identifier] 'variable' name=EString name=Identifier ; //TODO: remove? Loading @@ -252,7 +251,7 @@ Action_Impl returns tdl::Action: {tdl::Action} PrefixFragment? 'Action' name=EString name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? (':' body=EString)? ; Loading @@ -260,9 +259,9 @@ Action_Impl returns tdl::Action: Function returns tdl::Function: PrefixFragment? 'Function' name=EString name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? 'returns' returnType=[tdl::DataType|EString] 'returns' returnType=[tdl::DataType|Identifier] (':' body=EString)? ; Loading @@ -277,8 +276,8 @@ PredefinedFunction returns tdl::PredefinedFunction: {tdl::PredefinedFunction} PrefixFragment? 'Predefined' name=EString ('returns' returnType=[tdl::DataType|EString])? name=Identifier ('returns' returnType=[tdl::DataType|Identifier])? ; //## Data Use Loading @@ -302,7 +301,7 @@ Timer returns tdl::Timer: {tdl::Timer} PrefixFragment? 'timer' name=EString name=Identifier ; TimeConstraint returns tdl::TimeConstraint: Loading @@ -314,7 +313,7 @@ TimeConstraint returns tdl::TimeConstraint: TimeLabel returns tdl::TimeLabel: {tdl::TimeLabel} PrefixFragment? name=EString name=Identifier ; enum TimeLabelUseKind returns tdl::TimeLabelUseKind: Loading @@ -334,26 +333,26 @@ GateType returns tdl::GateType: PrefixFragment? kind=GateTypeKind 'Gate' name=EString name=Identifier (extension=Extension)? 'supports' dataType+=[tdl::DataType|EString] ( "," dataType+=[tdl::DataType|EString])* 'supports' dataType+=[tdl::DataType|Identifier] ( "," dataType+=[tdl::DataType|Identifier])* ; enum GateTypeKind returns tdl::GateTypeKind: //TODO: add '@' prefix? //TODO: add '@' prefix? -> no Message = 'Message' | Procedure = 'Procedure'; GateInstance returns tdl::GateInstance: PrefixFragment? type=[tdl::GateType|EString] type=[tdl::GateType|Identifier] 'gate' name=EString name=Identifier ; ComponentType returns tdl::ComponentType: PrefixFragment? 'Component' name=EString name=Identifier (extension=Extension)? //TODO: align order? BEGIN Loading @@ -365,11 +364,14 @@ ComponentType returns tdl::ComponentType: ComponentInstance returns tdl::ComponentInstance: PrefixFragment? type=[tdl::ComponentType|EString] type=[tdl::ComponentType|Identifier] 'component' name=EString name=Identifier 'as' //TODO: or use annotation syntax? //TODO: or use annotation syntax? -> no //TODO: re-evaluate existing notation -> condense to more compact definition //create ROLE TYPE ID //create ROLE ID of type TYPE (old notation) -> to be aligned with data type syntax and the rest role=ComponentInstanceRole ; Loading @@ -378,12 +380,12 @@ enum ComponentInstanceRole returns tdl::ComponentInstanceRole: SUT = 'SUT' | Tester = 'Tester'; GateReference returns tdl::GateReference: //name=EString //name=Identifier //TODO: check how it was done previously //TODO: fix fragments component=[tdl::ComponentInstance|EString] component=[tdl::ComponentInstance|Identifier] '.' gate=[tdl::GateInstance|EString] gate=[tdl::GateInstance|Identifier] // WithFragmentNested? // NameFragment? ; Loading @@ -399,7 +401,7 @@ Connection returns tdl::Connection: TestConfiguration returns tdl::TestConfiguration: PrefixFragment? 'Configuration' name=EString name=Identifier BEGIN //TODO: enforce '+'? (componentInstance+=ComponentInstance)* Loading @@ -416,9 +418,9 @@ TestDescription returns tdl::TestDescription: PrefixTDObjectiveFragment? 'TestDescription' (isLocallyOrdered?='Implementation')? name=EString name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')' )? 'uses' testConfiguration=[tdl::TestConfiguration|EString] 'uses' testConfiguration=[tdl::TestConfiguration|Identifier] ( behaviourDescription=BehaviourDescription )? Loading Loading @@ -453,7 +455,7 @@ Block returns tdl::Block: LocalExpression returns tdl::LocalExpression: PrefixFragment? PrefixNameFragment? (scope=[tdl::ComponentInstance|EString] ':')? (scope=[tdl::ComponentInstance|Identifier] ':')? expression=StaticDataUse //TODO: revert to DataUse ; Loading @@ -480,9 +482,9 @@ TimerStart returns tdl::TimerStart: PrefixTimeLabelFragment? PrefixTimeConstraintFragment? 'start' componentInstance=[tdl::ComponentInstance|EString] componentInstance=[tdl::ComponentInstance|Identifier] '.' timer=[tdl::Timer|EString] timer=[tdl::Timer|Identifier] 'for' period=StaticDataUse //TODO: shortcut, restore original //'for' period=DataUse Loading @@ -495,9 +497,9 @@ TimerStop returns tdl::TimerStop: PrefixTimeLabelFragment? PrefixTimeConstraintFragment? 'stop' componentInstance=[tdl::ComponentInstance|EString] componentInstance=[tdl::ComponentInstance|Identifier] '.' timer=[tdl::Timer|EString] timer=[tdl::Timer|Identifier] ; TimeOut returns tdl::TimeOut: Loading @@ -506,9 +508,9 @@ TimeOut returns tdl::TimeOut: PrefixNameFragment? PrefixTimeLabelFragment? PrefixTimeConstraintFragment? componentInstance=[tdl::ComponentInstance|EString] componentInstance=[tdl::ComponentInstance|Identifier] '.' timer=[tdl::Timer|EString] timer=[tdl::Timer|Identifier] 'expired' ; Loading Loading @@ -537,15 +539,15 @@ fragment WithFragment returns tdl::Element: ; fragment ObjectiveFragment returns tdl::Behaviour: 'Objective:' testObjective+=[tdl::TestObjective|EString] ( "," testObjective+=[tdl::TestObjective|EString])* 'Objective:' testObjective+=[tdl::TestObjective|Identifier] ( "," testObjective+=[tdl::TestObjective|Identifier])* ; fragment TDObjectiveFragment returns tdl::TestDescription: 'Objective:' testObjective+=[tdl::TestObjective|EString] ( "," testObjective+=[tdl::TestObjective|EString])* 'Objective:' testObjective+=[tdl::TestObjective|Identifier] ( "," testObjective+=[tdl::TestObjective|Identifier])* ; fragment NameFragment returns tdl::Element: 'Name:' name=EString 'Name:' name=Identifier ; Loading @@ -563,6 +565,7 @@ fragment PrefixFragment returns tdl::Element: ('@' comment+=Comment | '@' annotation+=Annotation)+ ; fragment PrefixNameFragment returns tdl::Element: '@' NameFragment ; Loading @@ -587,7 +590,24 @@ fragment PrefixTimeLabelFragment returns tdl::AtomicBehaviour: //## ValueConverter Rules (Pseudo-terminals) EString returns ecore::EString: STRING | ID; STRING // | ID ; Identifier returns ecore::EString: ID ; IdentifierDot returns ecore::EString: ID '.' ID ; QIdentifier returns ecore::EString: ID ('.' ID)+ ; //## Terminals Loading plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/scoping/TDLtxScopeProvider.java +10 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ */ package org.etsi.mts.tdl.scoping; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.xtext.scoping.IScope; /** * This class contains custom scoping description. Loading @@ -10,6 +13,11 @@ package org.etsi.mts.tdl.scoping; * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping * on how and when to use it. */ public class TDLtxScopeProvider extends AbstractTDLtxScopeProvider { public class TDLtxScopeProvider extends TDLScopeProvider { @Override public IScope getScope(EObject context, EReference reference) { return super.getScope(context, reference); } } No newline at end of file Loading
plugins/Prototypes/org.etsi.mts.tdl.tx/.launch/TDL.tx and TDL.txi.launch +1 −0 Original line number Diff line number Diff line Loading @@ -270,6 +270,7 @@ <setEntry value="org.w3c.dom.svg@default:default"/> </setAttribute> <setAttribute key="selected_workspace_bundles"> <setEntry value="org.etsi.mts.tdl.common@default:default"/> <setEntry value="org.etsi.mts.tdl.model@default:default"/> <setEntry value="org.etsi.mts.tdl.rt.ui@default:default"/> <setEntry value="org.etsi.mts.tdl.tx.ide@default:default"/> Loading
plugins/Prototypes/org.etsi.mts.tdl.tx/META-INF/MANIFEST.MF +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ Require-Bundle: org.etsi.mts.tdl.model, org.eclipse.equinox.common;bundle-version="3.5.0", org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", org.eclipse.xtext.util, org.etsi.mts.tdl.common, org.antlr.runtime;bundle-version="[3.2.0,3.2.1)" Bundle-RequiredExecutionEnvironment: JavaSE-11 Export-Package: org.etsi.mts.tdl.parser.antlr.internal, Loading
plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +96 −76 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ Package returns tdl::Package: {tdl::Package} PrefixFragment? 'Package' name=EString name=Identifier BEGIN WithFragment? (^import+=ElementImport)* Loading Loading @@ -60,11 +60,12 @@ ElementImport returns tdl::ElementImport: {tdl::ElementImport} 'Import' ('all' | (importedElement+=[tdl::PackageableElement|EString] ( "," importedElement+=[tdl::PackageableElement|EString])* (importedElement+=[tdl::PackageableElement|Identifier] ( "," importedElement+=[tdl::PackageableElement|Identifier])* ) ) 'from' importedPackage=[tdl::Package|EString] //TODO: check if this (still) works 'from' (importedPackage=[tdl::Package|Identifier] | importedPackage=[tdl::Package|QIdentifier]) WithFragment? ; Loading @@ -73,14 +74,14 @@ Comment returns tdl::Comment: ; Annotation returns tdl::Annotation: key=[tdl::AnnotationType|EString] key=[tdl::AnnotationType|Identifier] (':' value=EString)? ; AnnotationType returns tdl::AnnotationType: {tdl::AnnotationType} 'AnnotationType' name=EString name=Identifier extension=Extension? WithFragmentNested? ; Loading @@ -88,16 +89,16 @@ AnnotationType returns tdl::AnnotationType: TestObjective returns tdl::TestObjective: {tdl::TestObjective} 'TestObjective' name=EString name=Identifier (BEGIN ('Description:' description=EString)? ('References:' (objectiveURI+=EString)+)? ('Description:' description=Identifier)? ('References:' (objectiveURI+=Identifier)+)? WithFragment? END)? ; Extension returns tdl::Extension: 'extends' extending=[tdl::PackageableElement|EString] 'extends' extending=[tdl::PackageableElement|Identifier] ; //# Data Loading @@ -107,17 +108,17 @@ Extension returns tdl::Extension: DataResourceMapping returns tdl::DataResourceMapping: {tdl::DataResourceMapping} 'Use' resourceURI=EString 'as' name=EString resourceURI=Identifier 'as' name=Identifier WithFragmentNested? ; DataElementMapping returns tdl::DataElementMapping: 'Map' mappableDataElement=[tdl::MappableDataElement|EString] ('to' elementURI=EString)? 'in' dataResourceMapping=[tdl::DataResourceMapping|EString] 'as' name=EString mappableDataElement=[tdl::MappableDataElement|Identifier] ('to' elementURI=Identifier)? 'in' dataResourceMapping=[tdl::DataResourceMapping|Identifier] 'as' name=Identifier ( BEGIN WithFragment? Loading @@ -127,8 +128,8 @@ DataElementMapping returns tdl::DataElementMapping: ; ParameterMapping returns tdl::ParameterMapping: parameter=[tdl::Parameter|EString] '->' parameterURI=EString parameter=[tdl::Parameter|Identifier] '->' parameterURI=Identifier WithFragmentNested? ; Loading @@ -136,13 +137,13 @@ ParameterMapping returns tdl::ParameterMapping: SimpleDataType_Impl returns tdl::SimpleDataType: {tdl::SimpleDataType} 'Type' name=EString name=Identifier WithFragmentNested? ; SimpleDataInstance returns tdl::SimpleDataInstance: dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier WithFragmentNested? ; Loading @@ -153,7 +154,7 @@ StructuredDataType returns tdl::StructuredDataType: //TODO: extract to packageable element? PrefixFragment? 'Type' name=EString name=Identifier extension=Extension? BEGIN //WithFragment? Loading @@ -163,15 +164,15 @@ StructuredDataType returns tdl::StructuredDataType: Member returns tdl::Member: (isOptional?='optional')? dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier WithFragmentNested? ; StructuredDataInstance returns tdl::StructuredDataInstance: PrefixFragment? dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier (unassignedMember=UnassignedMemberTreatment)? BEGIN //WithFragment? Loading @@ -180,7 +181,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: ; MemberAssignment returns tdl::MemberAssignment: member=[tdl::Member|EString] member=[tdl::Member|Identifier] '=' memberSpec=StaticDataUse WithFragmentNested? ; Loading @@ -193,37 +194,35 @@ MemberAssignment returns tdl::MemberAssignment: CollectionDataType returns tdl::CollectionDataType: PrefixFragment? 'Collection' name=EString 'of' itemType=[tdl::DataType|EString] name=Identifier 'of' itemType=[tdl::DataType|Identifier] ; CollectionDataInstance returns tdl::CollectionDataInstance: PrefixFragment? //TODO: keep angle brackets? '['dataType=[tdl::DataType|EString]']' //TODO: keep square brackets? ->discuss later (exclusive to guards or guards shall use a word?) dataType=[tdl::DataType|Identifier] //-> should probably be preferred for index or also for begin/end below //alternatively dataType 'collection' name? name=EString (BEGIN item+=StaticDataUse* END)? name=Identifier '[' item+=StaticDataUse* ']' ; ProcedureSignature returns tdl::ProcedureSignature: PrefixFragment? 'Signature' name=EString name=Identifier '(' parameter+=ProcedureParameter ( "," parameter+=ProcedureParameter)* ')' ; ProcedureParameter returns tdl::ProcedureParameter: kind=ParameterKind dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier WithFragmentNested? ; enum ParameterKind returns tdl::ParameterKind: //TODO: add @ prefixes? //TODO: add @ prefixes? ->no In = 'in' | Out = 'out' | Exception = 'exception'; Parameter returns tdl::Parameter: Loading @@ -231,17 +230,17 @@ Parameter returns tdl::Parameter: FormalParameter returns tdl::FormalParameter: PrefixFragment? dataType=[tdl::DataType|EString] name=EString dataType=[tdl::DataType|Identifier] name=Identifier //TODO: fix fragments //WithFragmentNested ; Variable returns tdl::Variable: PrefixFragment? dataType=[tdl::DataType|EString] dataType=[tdl::DataType|Identifier] 'variable' name=EString name=Identifier ; //TODO: remove? Loading @@ -252,7 +251,7 @@ Action_Impl returns tdl::Action: {tdl::Action} PrefixFragment? 'Action' name=EString name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? (':' body=EString)? ; Loading @@ -260,9 +259,9 @@ Action_Impl returns tdl::Action: Function returns tdl::Function: PrefixFragment? 'Function' name=EString name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')')? 'returns' returnType=[tdl::DataType|EString] 'returns' returnType=[tdl::DataType|Identifier] (':' body=EString)? ; Loading @@ -277,8 +276,8 @@ PredefinedFunction returns tdl::PredefinedFunction: {tdl::PredefinedFunction} PrefixFragment? 'Predefined' name=EString ('returns' returnType=[tdl::DataType|EString])? name=Identifier ('returns' returnType=[tdl::DataType|Identifier])? ; //## Data Use Loading @@ -302,7 +301,7 @@ Timer returns tdl::Timer: {tdl::Timer} PrefixFragment? 'timer' name=EString name=Identifier ; TimeConstraint returns tdl::TimeConstraint: Loading @@ -314,7 +313,7 @@ TimeConstraint returns tdl::TimeConstraint: TimeLabel returns tdl::TimeLabel: {tdl::TimeLabel} PrefixFragment? name=EString name=Identifier ; enum TimeLabelUseKind returns tdl::TimeLabelUseKind: Loading @@ -334,26 +333,26 @@ GateType returns tdl::GateType: PrefixFragment? kind=GateTypeKind 'Gate' name=EString name=Identifier (extension=Extension)? 'supports' dataType+=[tdl::DataType|EString] ( "," dataType+=[tdl::DataType|EString])* 'supports' dataType+=[tdl::DataType|Identifier] ( "," dataType+=[tdl::DataType|Identifier])* ; enum GateTypeKind returns tdl::GateTypeKind: //TODO: add '@' prefix? //TODO: add '@' prefix? -> no Message = 'Message' | Procedure = 'Procedure'; GateInstance returns tdl::GateInstance: PrefixFragment? type=[tdl::GateType|EString] type=[tdl::GateType|Identifier] 'gate' name=EString name=Identifier ; ComponentType returns tdl::ComponentType: PrefixFragment? 'Component' name=EString name=Identifier (extension=Extension)? //TODO: align order? BEGIN Loading @@ -365,11 +364,14 @@ ComponentType returns tdl::ComponentType: ComponentInstance returns tdl::ComponentInstance: PrefixFragment? type=[tdl::ComponentType|EString] type=[tdl::ComponentType|Identifier] 'component' name=EString name=Identifier 'as' //TODO: or use annotation syntax? //TODO: or use annotation syntax? -> no //TODO: re-evaluate existing notation -> condense to more compact definition //create ROLE TYPE ID //create ROLE ID of type TYPE (old notation) -> to be aligned with data type syntax and the rest role=ComponentInstanceRole ; Loading @@ -378,12 +380,12 @@ enum ComponentInstanceRole returns tdl::ComponentInstanceRole: SUT = 'SUT' | Tester = 'Tester'; GateReference returns tdl::GateReference: //name=EString //name=Identifier //TODO: check how it was done previously //TODO: fix fragments component=[tdl::ComponentInstance|EString] component=[tdl::ComponentInstance|Identifier] '.' gate=[tdl::GateInstance|EString] gate=[tdl::GateInstance|Identifier] // WithFragmentNested? // NameFragment? ; Loading @@ -399,7 +401,7 @@ Connection returns tdl::Connection: TestConfiguration returns tdl::TestConfiguration: PrefixFragment? 'Configuration' name=EString name=Identifier BEGIN //TODO: enforce '+'? (componentInstance+=ComponentInstance)* Loading @@ -416,9 +418,9 @@ TestDescription returns tdl::TestDescription: PrefixTDObjectiveFragment? 'TestDescription' (isLocallyOrdered?='Implementation')? name=EString name=Identifier ('(' formalParameter+=FormalParameter ( "," formalParameter+=FormalParameter)* ')' )? 'uses' testConfiguration=[tdl::TestConfiguration|EString] 'uses' testConfiguration=[tdl::TestConfiguration|Identifier] ( behaviourDescription=BehaviourDescription )? Loading Loading @@ -453,7 +455,7 @@ Block returns tdl::Block: LocalExpression returns tdl::LocalExpression: PrefixFragment? PrefixNameFragment? (scope=[tdl::ComponentInstance|EString] ':')? (scope=[tdl::ComponentInstance|Identifier] ':')? expression=StaticDataUse //TODO: revert to DataUse ; Loading @@ -480,9 +482,9 @@ TimerStart returns tdl::TimerStart: PrefixTimeLabelFragment? PrefixTimeConstraintFragment? 'start' componentInstance=[tdl::ComponentInstance|EString] componentInstance=[tdl::ComponentInstance|Identifier] '.' timer=[tdl::Timer|EString] timer=[tdl::Timer|Identifier] 'for' period=StaticDataUse //TODO: shortcut, restore original //'for' period=DataUse Loading @@ -495,9 +497,9 @@ TimerStop returns tdl::TimerStop: PrefixTimeLabelFragment? PrefixTimeConstraintFragment? 'stop' componentInstance=[tdl::ComponentInstance|EString] componentInstance=[tdl::ComponentInstance|Identifier] '.' timer=[tdl::Timer|EString] timer=[tdl::Timer|Identifier] ; TimeOut returns tdl::TimeOut: Loading @@ -506,9 +508,9 @@ TimeOut returns tdl::TimeOut: PrefixNameFragment? PrefixTimeLabelFragment? PrefixTimeConstraintFragment? componentInstance=[tdl::ComponentInstance|EString] componentInstance=[tdl::ComponentInstance|Identifier] '.' timer=[tdl::Timer|EString] timer=[tdl::Timer|Identifier] 'expired' ; Loading Loading @@ -537,15 +539,15 @@ fragment WithFragment returns tdl::Element: ; fragment ObjectiveFragment returns tdl::Behaviour: 'Objective:' testObjective+=[tdl::TestObjective|EString] ( "," testObjective+=[tdl::TestObjective|EString])* 'Objective:' testObjective+=[tdl::TestObjective|Identifier] ( "," testObjective+=[tdl::TestObjective|Identifier])* ; fragment TDObjectiveFragment returns tdl::TestDescription: 'Objective:' testObjective+=[tdl::TestObjective|EString] ( "," testObjective+=[tdl::TestObjective|EString])* 'Objective:' testObjective+=[tdl::TestObjective|Identifier] ( "," testObjective+=[tdl::TestObjective|Identifier])* ; fragment NameFragment returns tdl::Element: 'Name:' name=EString 'Name:' name=Identifier ; Loading @@ -563,6 +565,7 @@ fragment PrefixFragment returns tdl::Element: ('@' comment+=Comment | '@' annotation+=Annotation)+ ; fragment PrefixNameFragment returns tdl::Element: '@' NameFragment ; Loading @@ -587,7 +590,24 @@ fragment PrefixTimeLabelFragment returns tdl::AtomicBehaviour: //## ValueConverter Rules (Pseudo-terminals) EString returns ecore::EString: STRING | ID; STRING // | ID ; Identifier returns ecore::EString: ID ; IdentifierDot returns ecore::EString: ID '.' ID ; QIdentifier returns ecore::EString: ID ('.' ID)+ ; //## Terminals Loading
plugins/Prototypes/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/scoping/TDLtxScopeProvider.java +10 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ */ package org.etsi.mts.tdl.scoping; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.xtext.scoping.IScope; /** * This class contains custom scoping description. Loading @@ -10,6 +13,11 @@ package org.etsi.mts.tdl.scoping; * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping * on how and when to use it. */ public class TDLtxScopeProvider extends AbstractTDLtxScopeProvider { public class TDLtxScopeProvider extends TDLScopeProvider { @Override public IScope getScope(EObject context, EReference reference) { return super.getScope(context, reference); } } No newline at end of file