diff --git a/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext b/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext index 2166b34e3c07f4a1b9fcbd4d9c5787af84b79518..e43d020669796968890f59360d4ceeec61057c0a 100644 --- a/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext +++ b/plugins/org.etsi.mts.tdl.TDLan2/src/org/etsi/mts/tdl/TDLan2.xtext @@ -87,6 +87,7 @@ AnnotationType returns tdl::AnnotationType: {tdl::AnnotationType} 'Annotation' name=Identifier + (extension=Extension)? ('with' '{' (comment+=Comment (comment+=Comment)*)? @@ -183,7 +184,7 @@ Behaviour returns tdl::Behaviour: | UnboundedLoopBehaviour | ConditionalBehaviour | CompoundBehaviour -//| OptionalBehaviour +| OptionalBehaviour | DefaultBehaviour | InterruptBehaviour | VerdictAssignment @@ -328,6 +329,7 @@ ComponentType returns tdl::ComponentType: {tdl::ComponentType} 'Component' 'Type' name=Identifier + (extension=Extension)? 'having' '{' (timer+=Timer)* @@ -698,6 +700,7 @@ GateType returns tdl::GateType: (kind=GateTypeKind)? 'Gate' 'Type' name=Identifier + (extension=Extension)? 'accepts' dataType+=[tdl::DataType|Identifier] ( "," dataType+=[tdl::DataType|Identifier])* ('with' @@ -841,21 +844,21 @@ OmitValue returns tdl::OmitValue: '}')?; -//OptionalBehaviour returns tdl::OptionalBehaviour: -// 'optionally' -// block=Block -// ( -// 'with' -// '{' -// (comment+=Comment (comment+=Comment)*)? -// (annotation+=Annotation (annotation+=Annotation)*)? -// ('test' 'objectives' ':' testObjective+=[tdl::TestObjective|Identifier] ( "," testObjective+=[tdl::TestObjective|Identifier])* ';')? -// ('name' name=Identifier)? -// '}')? -// (exceptional+=ExceptionalBehaviour ( exceptional+=ExceptionalBehaviour)*)? -// (periodic+=PeriodicBehaviour ( periodic+=PeriodicBehaviour)* )? -// ';' -// ; +OptionalBehaviour returns tdl::OptionalBehaviour: + 'optionally' + block=Block + ( + 'with' + '{' + (comment+=Comment (comment+=Comment)*)? + (annotation+=Annotation (annotation+=Annotation)*)? + ('test' 'objectives' ':' testObjective+=[tdl::TestObjective|Identifier] ( "," testObjective+=[tdl::TestObjective|Identifier])* ';')? + ('name' name=Identifier)? + '}')? + (exceptional+=ExceptionalBehaviour ( exceptional+=ExceptionalBehaviour)*)? + (periodic+=PeriodicBehaviour ( periodic+=PeriodicBehaviour)* )? + ';' + ; @@ -987,7 +990,7 @@ SimpleDataType_Impl returns tdl::SimpleDataType: ; StaticDataUse returns tdl::StaticDataUse: - DataInstanceUse | AnyValue | AnyValueOrOmit | OmitValue; + DataInstanceUse | AnyValue | AnyValueOrOmit | OmitValue | LiteralValueUse; Stop returns tdl::Stop: {tdl::Stop} @@ -1032,6 +1035,7 @@ StructuredDataType returns tdl::StructuredDataType: //'Structured' 'Data' 'Type' 'Type' name=Identifier + (extension=Extension)? ('(' member+=Member ( "," member+=Member)* ')')? ( 'with' @@ -1349,4 +1353,25 @@ Wait returns tdl::Wait: NumberAsIdentifier returns ecore::EString: '-'? INT ('.' INT)?; - \ No newline at end of file + +Extension returns tdl::Extension: + 'extends' extending=[tdl::PackageableElement|Identifier] + ; + + + +LiteralValueUse returns tdl::LiteralValueUse: + {tdl::LiteralValueUse} + value=String0 + ( + 'of' 'type' dataType=[tdl::DataType|Identifier] + )? + ('with' + '{' + ('name' name=Identifier)? + (comment+=Comment (comment+=Comment)*)? + (annotation+=Annotation (annotation+=Annotation)*)? + '}')? + ; + +