Loading org.etsi.mts.tdl.parent/pom.xml +1 −0 Viewed Changes for org.etsi.mts.tdl.parent/pom.xml: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs <module>../plugins/org.etsi.mts.tdl.tx</module> <module>../plugins/org.etsi.mts.tdl.tx.ide</module> <module>../plugins/org.etsi.mts.tdl.tx.ui</module> <module>../plugins/org.etsi.mts.tdl.tx.tests</module> <module>../plugins/org.etsi.mts.tdl.txi</module> <module>../plugins/org.etsi.mts.tdl.txi.ide</module> <module>../plugins/org.etsi.mts.tdl.txi.ui</module> Loading org.etsi.mts.tdl.parent/top.target +1 −0 Viewed Changes for org.etsi.mts.tdl.parent/top.target: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ <unit id="org.apache.poi.ooxml" version="4.1.1.v20221112-0806"/> <unit id="org.apache.poi.ooxml.schemas" version="4.1.1.v20221112-0806"/> <unit id="org.apache.xmlbeans" version="3.1.0.v20221112-0806"/> <unit id="org.apache.commons.commons-compress" version="0.0.0"/> <repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-09"/> </location> <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> Loading plugins/org.etsi.mts.tdl.model/model/structured.ecore +4 −0 Viewed Changes for plugins/org.etsi.mts.tdl.model/model/structured.ecore: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ eType="ecore:EClass tdl.ecore#//TimeConstraint" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="timeLabel" eType="ecore:EClass tdl.ecore#//TimeLabel" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="occurrence" eType="#//EventOccurrenceSpecification" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="template" eType="#//EventTemplateOccurrence" containment="true"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="ExpectedBehaviour" eSuperTypes="#//Element"> <eStructuralFeatures xsi:type="ecore:EReference" name="whenClause" eType="#//EventSequence" Loading plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF +1 −0 Viewed Changes for plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ Require-Bundle: org.eclipse.core.runtime, org.apache.logging.log4j.slf4j2.impl, org.apache.commons.lang3, org.apache.commons.commons-collections4, org.apache.commons.commons-compress, org.apache.poi;bundle-version="[4.0.0,5.0.0)", org.apache.poi.ooxml;bundle-version="[4.0.0,5.0.0)", org.apache.poi.ooxml.schemas;bundle-version="[4.0.0,5.0.0)", Loading plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +152 −36 Viewed Changes for plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext: 152 added lines, 36 removed lines. Original line number Diff line number Diff line Loading @@ -230,7 +230,7 @@ Member returns tdl::Member: AnnotationCommentFragment (isOptional?='optional')? dataType=[tdl::DataType|Identifier] name=Identifier name=MemberIdentifier (LBrace constraint+=Constraint RBrace)* ; Loading @@ -244,7 +244,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: MemberAssignment returns tdl::MemberAssignment: AnnotationCommentFragment member=[tdl::Member|Identifier] member=[tdl::Member|MemberIdentifier] '=' memberSpec=DataUse ; Loading Loading @@ -340,6 +340,18 @@ PredefinedIdentifierSize returns ecore::EString: 'size' ; // Precedence (lowest to highest): // OrExpression → XorExpression → AndExpression → NotExpression → EqualityExpression // → RelationalExpression → AdditiveExpression → MultiplicativeExpression // → UnaryMinusExpression → PostfixExpression → PrimaryExpression PredefinedIdentifierOr returns ecore::EString: 'or'; PredefinedIdentifierXor returns ecore::EString: 'xor'; PredefinedIdentifierAnd returns ecore::EString: 'and'; PredefinedIdentifierEquality returns ecore::EString: '==' | '!='; PredefinedIdentifierRelational returns ecore::EString: '<' | '>' | '<=' | '>='; PredefinedIdentifierAdditive returns ecore::EString: '+' | '-'; PredefinedIdentifierMultiplicative returns ecore::EString: '*' | '/' | 'mod'; EnumDataType returns tdl::EnumDataType: AnnotationCommentFragment 'Enumerated' name=Identifier Loading @@ -352,18 +364,92 @@ EnumDataType returns tdl::EnumDataType: //## Data Use DataUse returns tdl::DataUse: DataUseWrapped XorExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierBinary] actualParameters+=DataUseWrapped)? function=[tdl::PredefinedFunction|PredefinedIdentifierOr] actualParameters+=XorExpression )* ; XorExpression returns tdl::DataUse: AndExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierXor] actualParameters+=AndExpression )* ; AndExpression returns tdl::DataUse: NotExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierAnd] actualParameters+=NotExpression )* ; NotExpression returns tdl::DataUse: {tdl::PredefinedFunctionCall} function=[tdl::PredefinedFunction|PredefinedIdentifierNot] actualParameters+=NotExpression | EqualityExpression ; EqualityExpression returns tdl::DataUse: RelationalExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierEquality] actualParameters+=RelationalExpression )? ; RelationalExpression returns tdl::DataUse: AdditiveExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierRelational] actualParameters+=AdditiveExpression )? ; AdditiveExpression returns tdl::DataUse: MultiplicativeExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierAdditive] actualParameters+=MultiplicativeExpression )* ; MultiplicativeExpression returns tdl::DataUse: UnaryMinusExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierMultiplicative] actualParameters+=UnaryMinusExpression )* ; UnaryMinusExpression returns tdl::DataUse: {tdl::PredefinedFunctionCall} function=[tdl::PredefinedFunction|PredefinedIdentifierMinus] actualParameters+=UnaryMinusExpression | PostfixExpression ; PostfixExpression returns tdl::DataUse: DataUseWrapped ( reduction+=MemberReference | 'as' {tdl::CastDataUse.dataUse=current} dataType=[tdl::DataType|Identifier] )* ; DataUseWrapped returns tdl::DataUse: //NOTE: No name, annotations or comments DataElementUse PredefinedFunctionCallSize | DataElementUse | StaticDataUse | DynamicDataUse | CastDataUse // CastDataUse is now postfix 'as Type' in PostfixExpression. // | CastDataUse | LParen DataUse RParen ; fragment ReductionFragment returns tdl::DataUse: Loading Loading @@ -391,7 +477,7 @@ fragment ParameterReductionFragment returns tdl::ParameterBinding: ; MemberReference returns tdl::MemberReference: ('.' member=[tdl::Member|Identifier]) ('.' member=[tdl::Member|MemberIdentifier]) | ('.' 'get' LParen collectionIndex=DataUse RParen) ; Loading @@ -407,7 +493,7 @@ DataInstanceUse returns tdl::DataInstanceUse: 'instance' dataInstance=[tdl::DataInstance|Identifier] UnassignedFragment? ParameterBindingFragment? ReductionFragment? // ReductionFragment now handled by PostfixExpression ) | ( Loading Loading @@ -455,7 +541,8 @@ LiteralValueUse returns tdl::LiteralValueUse: //Note overloaded syntax with constraints, in a sense this is a constraint too.. ( LBrace dataType=[tdl::DataType|Identifier] RBrace (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression )? CheckFragment? ; Loading @@ -469,7 +556,8 @@ CastDataUse returns tdl::CastDataUse: //TODO: causes ambiguity // 'as' dataType=[tdl::DataType|Identifier] RParen (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression ; Loading @@ -477,7 +565,10 @@ DynamicDataUse returns tdl::DynamicDataUse: FunctionCall | FormalParameterUse | VariableUse | PredefinedFunctionCall // PredefinedFunctionCallSize is now called from DataUseWrapped. // The other predefined function forms (not, minus, binary) are called // in the precedence ladder and no longer need dedicated rule. // | PredefinedFunctionCall | TimeLabelUse ; Loading @@ -485,19 +576,21 @@ DynamicDataUse returns tdl::DynamicDataUse: FunctionCall returns tdl::FunctionCall: 'instance' 'returned' 'from' function=[tdl::Function|Identifier] ParameterBindingFragment ReductionFragment? // ReductionFragment now handled by PostfixExpression ; //TODO: deprecated? FormalParameterUse returns tdl::FormalParameterUse: 'parameter' parameter=[tdl::FormalParameter|Identifier] (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression ; VariableUse returns tdl::VariableUse: componentInstance=[tdl::ComponentInstance|Identifier] '::' variable=[tdl::Variable|Identifier] (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression ; PredefinedFunctionCall returns tdl::PredefinedFunctionCall: Loading Loading @@ -537,7 +630,7 @@ DataElementUse returns tdl::DataElementUse: dataElement=[tdl::NamedElement|Identifier] UnassignedFragmentNamedElement? ParameterBindingFragment? ReductionFragment? // ReductionFragment now handled by PostfixExpression ->CollectionItemFragment? CheckFragment? ) Loading Loading @@ -811,6 +904,14 @@ Block returns tdl::Block: END ; // Block without guard support — used in contexts where '[' would be ambiguous with CollectionItemFragment NoGuardBlock returns tdl::Block: //NOTE: No annotations or comments BEGIN behaviour+=Behaviour+ END ; LocalExpression returns tdl::LocalExpression: //NOTE: No annotations or comments expression=DataUse Loading Loading @@ -850,7 +951,7 @@ SingleCombinedBehaviour returns tdl::SingleCombinedBehaviour: CompoundBehaviour returns tdl::CompoundBehaviour: AnnotationFragment? block=Block block=NoGuardBlock ; BoundedLoopBehaviour returns tdl::BoundedLoopBehaviour: Loading Loading @@ -1142,6 +1243,25 @@ Identifier: | 'name' | 'type' | 'value' | 'attribute'//TODO: exclude other keywords to the extent possible? ; // MemberIdentifier — extends Identifier with keywords commonly useful as // structure member names. Used in Member name, MemberAssignment cross-ref, // and MemberReference cross-ref positions only. MemberIdentifier: Identifier | 'start' | 'stop' | 'from' | 'to' | 'before' | 'after' | 'time' | 'point' | 'default' | 'entity' | 'event' | 'size' | 'instance' | 'component' | 'gate' | 'variable' | 'parameter' | 'argument' | 'action' | 'behaviour' | 'timer' | 'verdict' | 'exception' | 'get' ; AIdentifier: Identifier | InitialBlockName Loading Loading @@ -1488,11 +1608,17 @@ RepeatedEventSequence returns to::RepeatedEventSequence: ; FirstEventOccurrence returns to::EventOccurrence: FirstEventOccurrenceSpecification | FirstEventTemplateOccurrence EventOccurrenceFragment ; EventOccurrence returns to::EventOccurrence: EventOccurrenceSpecification | EventTemplateOccurrence ElementAndOrPrefix EventOccurrenceFragment ; fragment EventOccurrenceFragment returns to::EventOccurrence: EventTimingPrefix? (occurrence=EventOccurrenceSpecification | template=EventTemplateOccurrence) ; fragment EventTimingPrefix returns to::EventOccurrence: Loading @@ -1500,7 +1626,7 @@ fragment EventTimingPrefix returns to::EventOccurrence: ( (timeLabel=PrefixTimeLabel (',' timeConstraint+=PrefixTimeConstraint)?) | timeConstraint+=TimeConstraint timeConstraint+=PrefixTimeConstraint ) ':' ) Loading Loading @@ -1540,24 +1666,14 @@ PrefixTimeConstraint returns tdl::TimeConstraint: ; FirstEventOccurrenceSpecification returns to::EventOccurrenceSpecification: EventOccurrenceSpecificationFragment ; EventOccurrenceSpecification returns to::EventOccurrenceSpecification: ElementAndOrPrefix EventOccurrenceSpecificationFragment ; fragment EventOccurrenceSpecificationFragment returns to::EventOccurrenceSpecification: // EventTimingPrefix? entityReference=EntityReference? eventReference=EventReference eventArgument=Argument? (oppositeEntityReference+=OppositeEntityReference (',' oppositeEntityReference+=OppositeEntityReference)* )? EventTimingSuffix? // EventTimingSuffix? CommentFragment? ; Loading Loading @@ -1770,7 +1886,7 @@ EventSpecificationTemplate returns to::EventSpecificationTemplate: AnnotationCommentFragment 'Template' name=Identifier BEGIN eventSpecification=FirstEventOccurrenceSpecification eventSpecification=EventOccurrenceSpecification END ; Loading @@ -1779,7 +1895,7 @@ FirstEventTemplateOccurrence returns to::EventTemplateOccurrence: ; EventTemplateOccurrence returns to::EventTemplateOccurrence: ElementAndOrPrefix // ElementAndOrPrefix EventTemplateOccurrenceFragment ; Loading @@ -1790,8 +1906,8 @@ fragment EventTemplateOccurrenceFragment returns to::EventTemplateOccurrence: 'occurs' ('with' BEGIN EventTimeLabelFragment? EventTimeConstraintFragment? // EventTimeLabelFragment? // EventTimeConstraintFragment? (entityBinding+=EntityBinding (',' entityBinding+=EntityBinding)*)? ('argument' 'replaced' 'by' occurrenceArgument=Argument)? END Loading Loading @@ -1895,7 +2011,7 @@ ExpectedBehaviourBehaviour returns tdl::CompoundBehaviour: ) //TODO: this does not seem to work | block=Block block=NoGuardBlock ; FinalConditionsBehaviour returns tdl::CompoundBehaviour: Loading Loading
org.etsi.mts.tdl.parent/pom.xml +1 −0 Viewed Changes for org.etsi.mts.tdl.parent/pom.xml: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs <module>../plugins/org.etsi.mts.tdl.tx</module> <module>../plugins/org.etsi.mts.tdl.tx.ide</module> <module>../plugins/org.etsi.mts.tdl.tx.ui</module> <module>../plugins/org.etsi.mts.tdl.tx.tests</module> <module>../plugins/org.etsi.mts.tdl.txi</module> <module>../plugins/org.etsi.mts.tdl.txi.ide</module> <module>../plugins/org.etsi.mts.tdl.txi.ui</module> Loading
org.etsi.mts.tdl.parent/top.target +1 −0 Viewed Changes for org.etsi.mts.tdl.parent/top.target: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ <unit id="org.apache.poi.ooxml" version="4.1.1.v20221112-0806"/> <unit id="org.apache.poi.ooxml.schemas" version="4.1.1.v20221112-0806"/> <unit id="org.apache.xmlbeans" version="3.1.0.v20221112-0806"/> <unit id="org.apache.commons.commons-compress" version="0.0.0"/> <repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2023-09"/> </location> <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> Loading
plugins/org.etsi.mts.tdl.model/model/structured.ecore +4 −0 Viewed Changes for plugins/org.etsi.mts.tdl.model/model/structured.ecore: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -61,6 +61,10 @@ eType="ecore:EClass tdl.ecore#//TimeConstraint" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="timeLabel" eType="ecore:EClass tdl.ecore#//TimeLabel" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="occurrence" eType="#//EventOccurrenceSpecification" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="template" eType="#//EventTemplateOccurrence" containment="true"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="ExpectedBehaviour" eSuperTypes="#//Element"> <eStructuralFeatures xsi:type="ecore:EReference" name="whenClause" eType="#//EventSequence" Loading
plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF +1 −0 Viewed Changes for plugins/org.etsi.mts.tdl.tools.to.docx.poi/META-INF/MANIFEST.MF: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ Require-Bundle: org.eclipse.core.runtime, org.apache.logging.log4j.slf4j2.impl, org.apache.commons.lang3, org.apache.commons.commons-collections4, org.apache.commons.commons-compress, org.apache.poi;bundle-version="[4.0.0,5.0.0)", org.apache.poi.ooxml;bundle-version="[4.0.0,5.0.0)", org.apache.poi.ooxml.schemas;bundle-version="[4.0.0,5.0.0)", Loading
plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +152 −36 Viewed Changes for plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext: 152 added lines, 36 removed lines. Original line number Diff line number Diff line Loading @@ -230,7 +230,7 @@ Member returns tdl::Member: AnnotationCommentFragment (isOptional?='optional')? dataType=[tdl::DataType|Identifier] name=Identifier name=MemberIdentifier (LBrace constraint+=Constraint RBrace)* ; Loading @@ -244,7 +244,7 @@ StructuredDataInstance returns tdl::StructuredDataInstance: MemberAssignment returns tdl::MemberAssignment: AnnotationCommentFragment member=[tdl::Member|Identifier] member=[tdl::Member|MemberIdentifier] '=' memberSpec=DataUse ; Loading Loading @@ -340,6 +340,18 @@ PredefinedIdentifierSize returns ecore::EString: 'size' ; // Precedence (lowest to highest): // OrExpression → XorExpression → AndExpression → NotExpression → EqualityExpression // → RelationalExpression → AdditiveExpression → MultiplicativeExpression // → UnaryMinusExpression → PostfixExpression → PrimaryExpression PredefinedIdentifierOr returns ecore::EString: 'or'; PredefinedIdentifierXor returns ecore::EString: 'xor'; PredefinedIdentifierAnd returns ecore::EString: 'and'; PredefinedIdentifierEquality returns ecore::EString: '==' | '!='; PredefinedIdentifierRelational returns ecore::EString: '<' | '>' | '<=' | '>='; PredefinedIdentifierAdditive returns ecore::EString: '+' | '-'; PredefinedIdentifierMultiplicative returns ecore::EString: '*' | '/' | 'mod'; EnumDataType returns tdl::EnumDataType: AnnotationCommentFragment 'Enumerated' name=Identifier Loading @@ -352,18 +364,92 @@ EnumDataType returns tdl::EnumDataType: //## Data Use DataUse returns tdl::DataUse: DataUseWrapped XorExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierBinary] actualParameters+=DataUseWrapped)? function=[tdl::PredefinedFunction|PredefinedIdentifierOr] actualParameters+=XorExpression )* ; XorExpression returns tdl::DataUse: AndExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierXor] actualParameters+=AndExpression )* ; AndExpression returns tdl::DataUse: NotExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierAnd] actualParameters+=NotExpression )* ; NotExpression returns tdl::DataUse: {tdl::PredefinedFunctionCall} function=[tdl::PredefinedFunction|PredefinedIdentifierNot] actualParameters+=NotExpression | EqualityExpression ; EqualityExpression returns tdl::DataUse: RelationalExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierEquality] actualParameters+=RelationalExpression )? ; RelationalExpression returns tdl::DataUse: AdditiveExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierRelational] actualParameters+=AdditiveExpression )? ; AdditiveExpression returns tdl::DataUse: MultiplicativeExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierAdditive] actualParameters+=MultiplicativeExpression )* ; MultiplicativeExpression returns tdl::DataUse: UnaryMinusExpression ({tdl::PredefinedFunctionCall.actualParameters+=current} function=[tdl::PredefinedFunction|PredefinedIdentifierMultiplicative] actualParameters+=UnaryMinusExpression )* ; UnaryMinusExpression returns tdl::DataUse: {tdl::PredefinedFunctionCall} function=[tdl::PredefinedFunction|PredefinedIdentifierMinus] actualParameters+=UnaryMinusExpression | PostfixExpression ; PostfixExpression returns tdl::DataUse: DataUseWrapped ( reduction+=MemberReference | 'as' {tdl::CastDataUse.dataUse=current} dataType=[tdl::DataType|Identifier] )* ; DataUseWrapped returns tdl::DataUse: //NOTE: No name, annotations or comments DataElementUse PredefinedFunctionCallSize | DataElementUse | StaticDataUse | DynamicDataUse | CastDataUse // CastDataUse is now postfix 'as Type' in PostfixExpression. // | CastDataUse | LParen DataUse RParen ; fragment ReductionFragment returns tdl::DataUse: Loading Loading @@ -391,7 +477,7 @@ fragment ParameterReductionFragment returns tdl::ParameterBinding: ; MemberReference returns tdl::MemberReference: ('.' member=[tdl::Member|Identifier]) ('.' member=[tdl::Member|MemberIdentifier]) | ('.' 'get' LParen collectionIndex=DataUse RParen) ; Loading @@ -407,7 +493,7 @@ DataInstanceUse returns tdl::DataInstanceUse: 'instance' dataInstance=[tdl::DataInstance|Identifier] UnassignedFragment? ParameterBindingFragment? ReductionFragment? // ReductionFragment now handled by PostfixExpression ) | ( Loading Loading @@ -455,7 +541,8 @@ LiteralValueUse returns tdl::LiteralValueUse: //Note overloaded syntax with constraints, in a sense this is a constraint too.. ( LBrace dataType=[tdl::DataType|Identifier] RBrace (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression )? CheckFragment? ; Loading @@ -469,7 +556,8 @@ CastDataUse returns tdl::CastDataUse: //TODO: causes ambiguity // 'as' dataType=[tdl::DataType|Identifier] RParen (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression ; Loading @@ -477,7 +565,10 @@ DynamicDataUse returns tdl::DynamicDataUse: FunctionCall | FormalParameterUse | VariableUse | PredefinedFunctionCall // PredefinedFunctionCallSize is now called from DataUseWrapped. // The other predefined function forms (not, minus, binary) are called // in the precedence ladder and no longer need dedicated rule. // | PredefinedFunctionCall | TimeLabelUse ; Loading @@ -485,19 +576,21 @@ DynamicDataUse returns tdl::DynamicDataUse: FunctionCall returns tdl::FunctionCall: 'instance' 'returned' 'from' function=[tdl::Function|Identifier] ParameterBindingFragment ReductionFragment? // ReductionFragment now handled by PostfixExpression ; //TODO: deprecated? FormalParameterUse returns tdl::FormalParameterUse: 'parameter' parameter=[tdl::FormalParameter|Identifier] (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression ; VariableUse returns tdl::VariableUse: componentInstance=[tdl::ComponentInstance|Identifier] '::' variable=[tdl::Variable|Identifier] (ParameterBindingFragment | ReductionFragment)? ParameterBindingFragment? // ReductionFragment now handled by PostfixExpression ; PredefinedFunctionCall returns tdl::PredefinedFunctionCall: Loading Loading @@ -537,7 +630,7 @@ DataElementUse returns tdl::DataElementUse: dataElement=[tdl::NamedElement|Identifier] UnassignedFragmentNamedElement? ParameterBindingFragment? ReductionFragment? // ReductionFragment now handled by PostfixExpression ->CollectionItemFragment? CheckFragment? ) Loading Loading @@ -811,6 +904,14 @@ Block returns tdl::Block: END ; // Block without guard support — used in contexts where '[' would be ambiguous with CollectionItemFragment NoGuardBlock returns tdl::Block: //NOTE: No annotations or comments BEGIN behaviour+=Behaviour+ END ; LocalExpression returns tdl::LocalExpression: //NOTE: No annotations or comments expression=DataUse Loading Loading @@ -850,7 +951,7 @@ SingleCombinedBehaviour returns tdl::SingleCombinedBehaviour: CompoundBehaviour returns tdl::CompoundBehaviour: AnnotationFragment? block=Block block=NoGuardBlock ; BoundedLoopBehaviour returns tdl::BoundedLoopBehaviour: Loading Loading @@ -1142,6 +1243,25 @@ Identifier: | 'name' | 'type' | 'value' | 'attribute'//TODO: exclude other keywords to the extent possible? ; // MemberIdentifier — extends Identifier with keywords commonly useful as // structure member names. Used in Member name, MemberAssignment cross-ref, // and MemberReference cross-ref positions only. MemberIdentifier: Identifier | 'start' | 'stop' | 'from' | 'to' | 'before' | 'after' | 'time' | 'point' | 'default' | 'entity' | 'event' | 'size' | 'instance' | 'component' | 'gate' | 'variable' | 'parameter' | 'argument' | 'action' | 'behaviour' | 'timer' | 'verdict' | 'exception' | 'get' ; AIdentifier: Identifier | InitialBlockName Loading Loading @@ -1488,11 +1608,17 @@ RepeatedEventSequence returns to::RepeatedEventSequence: ; FirstEventOccurrence returns to::EventOccurrence: FirstEventOccurrenceSpecification | FirstEventTemplateOccurrence EventOccurrenceFragment ; EventOccurrence returns to::EventOccurrence: EventOccurrenceSpecification | EventTemplateOccurrence ElementAndOrPrefix EventOccurrenceFragment ; fragment EventOccurrenceFragment returns to::EventOccurrence: EventTimingPrefix? (occurrence=EventOccurrenceSpecification | template=EventTemplateOccurrence) ; fragment EventTimingPrefix returns to::EventOccurrence: Loading @@ -1500,7 +1626,7 @@ fragment EventTimingPrefix returns to::EventOccurrence: ( (timeLabel=PrefixTimeLabel (',' timeConstraint+=PrefixTimeConstraint)?) | timeConstraint+=TimeConstraint timeConstraint+=PrefixTimeConstraint ) ':' ) Loading Loading @@ -1540,24 +1666,14 @@ PrefixTimeConstraint returns tdl::TimeConstraint: ; FirstEventOccurrenceSpecification returns to::EventOccurrenceSpecification: EventOccurrenceSpecificationFragment ; EventOccurrenceSpecification returns to::EventOccurrenceSpecification: ElementAndOrPrefix EventOccurrenceSpecificationFragment ; fragment EventOccurrenceSpecificationFragment returns to::EventOccurrenceSpecification: // EventTimingPrefix? entityReference=EntityReference? eventReference=EventReference eventArgument=Argument? (oppositeEntityReference+=OppositeEntityReference (',' oppositeEntityReference+=OppositeEntityReference)* )? EventTimingSuffix? // EventTimingSuffix? CommentFragment? ; Loading Loading @@ -1770,7 +1886,7 @@ EventSpecificationTemplate returns to::EventSpecificationTemplate: AnnotationCommentFragment 'Template' name=Identifier BEGIN eventSpecification=FirstEventOccurrenceSpecification eventSpecification=EventOccurrenceSpecification END ; Loading @@ -1779,7 +1895,7 @@ FirstEventTemplateOccurrence returns to::EventTemplateOccurrence: ; EventTemplateOccurrence returns to::EventTemplateOccurrence: ElementAndOrPrefix // ElementAndOrPrefix EventTemplateOccurrenceFragment ; Loading @@ -1790,8 +1906,8 @@ fragment EventTemplateOccurrenceFragment returns to::EventTemplateOccurrence: 'occurs' ('with' BEGIN EventTimeLabelFragment? EventTimeConstraintFragment? // EventTimeLabelFragment? // EventTimeConstraintFragment? (entityBinding+=EntityBinding (',' entityBinding+=EntityBinding)*)? ('argument' 'replaced' 'by' occurrenceArgument=Argument)? END Loading Loading @@ -1895,7 +2011,7 @@ ExpectedBehaviourBehaviour returns tdl::CompoundBehaviour: ) //TODO: this does not seem to work | block=Block block=NoGuardBlock ; FinalConditionsBehaviour returns tdl::CompoundBehaviour: Loading