Loading plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +94 −14 Original line number Diff line number Diff line 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,83 @@ 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 | DataUseWrapped ; DataUseWrapped returns tdl::DataUse: //NOTE: No name, annotations or comments DataElementUse PredefinedFunctionCallSize | DataElementUse | StaticDataUse | DynamicDataUse | CastDataUse | LParen DataUse RParen ; fragment ReductionFragment returns tdl::DataUse: Loading Loading @@ -477,7 +554,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 Loading
plugins/org.etsi.mts.tdl.tx/src/org/etsi/mts/tdl/TDLtx.xtext +94 −14 Original line number Diff line number Diff line 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,83 @@ 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 | DataUseWrapped ; DataUseWrapped returns tdl::DataUse: //NOTE: No name, annotations or comments DataElementUse PredefinedFunctionCallSize | DataElementUse | StaticDataUse | DynamicDataUse | CastDataUse | LParen DataUse RParen ; fragment ReductionFragment returns tdl::DataUse: Loading Loading @@ -477,7 +554,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