13.2.3BehaviorInvocationExpression
An invocation of a behavior referenced by name.
Generalizations
Synthesized Properties
The qualified name of the behavior to be invoked.
Derived Properties
None
Constraints
[1] behaviorInvocationExpressionArgumentCompatibility
An input argument expression must be assignable to its corresponding parameter. An output parameter must be assignable to its corresponding argument expression. (Note that this implies that the type of an argument expression for an inout parameter must be the same as the type of that parameter.)
[2] behaviorInvocationExpressionFeatureDerivation
If the target qualified name disambiguates to a feature reference, then the feature of a behavior invocation expression is that feature reference.
[3] behaviorInvocationExpressionReferentConstraint
If the target qualified name does not disambiguate to a feature reference, then it must resolve to a behavior or an association end. Otherwise it must resolve to a single feature referent according to the overloading resolution rules, unless it is an implicit destructor call (in which case it has no referent).
[4] behaviorInvocationExpressionReferentDerivation
The referent of a behavior invocation expression is the behavior named by the target or, if the target disambiguates to a feature reference, the operation or signal being invoked.
Helper Operations
None
13.2.4BinaryExpression
An expression consisting of an operator acting on two operand expressions.
Generalizations
Synthesized Properties
The expression giving the first operand.
The expression giving the second operand.
The symbol representing the operator.
Derived Properties
None
Constraints
[1] binaryExpressionOperandAssignments
The assignments in the operand expressions of a binary expression must be valid (as determined by the validateAssignments helper operation).
[2] binaryExpressionOperandMultiplicity
The operands of a binary expression must both have a multiplicity upper bound of 1.
Helper Operations
[1] updateAssignments ( ) : AssignedSource [*]
The assignments after a binary expression include all the assignments before the expression that are not reassigned in either operand expression, plus the new assignments from each of the operand expressions.
[2] validateAssignments ( ) : Boolean
In general the assignments before the operand expressions of a binary expression are the same as those before the binary expression and, if an assignment for a name is changed in one operand expression, then the assignment for that name may not change in the other operand expression. (This is overridden for conditional logical expressions.)
13.2.5BitStringUnaryExpression
Generalizations
Synthesized Properties
None
Derived Properties
Whether BitString conversion is required on the operand expression.
Constraints
[1] bitStringUnaryExpresionIsBitStringConversionDerivation
BitString conversion is required if the operand expression of a BitString unary expression has type Integer.
[2] bitStringUnaryExpressionLowerDerivation
A BitString unary expression has the same multiplicity lower bound as its operand expression.
[3] bitStringUnaryExpressionOperand
The operand expression of a BitString unary expression must have type BitString or Integer and a multiplicity upper bound of 1.
[4] bitStringUnaryExpressionTypeDerivation
A BitString unary expression has type BitString.
[5] bitStringUnaryExpressionUpperDerivation
A BitString unary expression has a multiplicity upper bound of 1.
Helper Operations
None
13.2.6BooleanLiteralExpression
An expression that comprises a Boolean literal.
Generalizations
Synthesized Properties
The textual image of the literal token for this expression.
Derived Properties
None
Constraints
[1] booleanLiteralExpressionTypeDerivation
The type of a boolean literal expression is Boolean.
Helper Operations
None
13.2.7BooleanUnaryExpression
A unary expression with a Boolean operator.
Generalizations
Synthesized Properties
None
Derived Properties
None
Constraints
[1] booleanUnaryExpressionLowerDerivation
A Boolean unary expression has the same multiplicity lower bound as its operand expression.
[2] booleanUnaryExpressionOperand
The operand expression of a Boolean unary expression must have type Boolean and a multiplicity upper bound of 1.
[3] booleanUnaryExpressionTypeDerivation
A Boolean unary expression has type Boolean.
[4] booleanUnaryExpressionUpperDerivation
A Boolean unary expression has a multiplicity upper bound of 1.
Helper Operations
None
Share with your friends: |