Class UnaryArithmeticOperatorStaticSemantics
Uses pattern-matching rules to encapsulate unary arithmetic operator static semantics as defined in MS-VBAL 5.6.9.3.
public record UnaryArithmeticOperatorStaticSemantics : StaticSemantics, IEquatable<StaticSemantics>, IStaticSemantics, IEquatable<UnaryArithmeticOperatorStaticSemantics>
- Inheritance
-
UnaryArithmeticOperatorStaticSemantics
- Implements
- Derived
- Inherited Members
Remarks
This is implicitly the specification for the unary '+' operator, which is omitted from MS-VBAL.
Methods
DetermineDeclaredType(StaticEvaluationContext, ExpressionNode, params VBType[])
Determines a static VBType from specified operands.
public override StaticSemanticsEvaluationResult DetermineDeclaredType(StaticEvaluationContext context, ExpressionNode expression, params VBType[] operandDeclaredTypes)
Parameters
contextStaticEvaluationContextThe compile-time context this expression is evaluated against.
expressionExpressionNodeThe expression node being evaluated.
operandDeclaredTypesVBType[]The declared type of each operand involved in the evaluation.
Returns
- StaticSemanticsEvaluationResult
A StaticSemanticsEvaluationResult encapsulating the resulting VBType if successful, or VBCompileErrorInfo error metadata otherwise.
DetermineOperatorStaticType(StaticEvaluationContext, ExpressionNode, VBType)
MS-VBAL 5.6.9.3 Arithmetic Operators (static semantics) The operator has the declared type returned by this method, based on the declared type of its operands.
protected virtual StaticSemanticsEvaluationResult DetermineOperatorStaticType(StaticEvaluationContext context, ExpressionNode expression, VBType operand)
Parameters
contextStaticEvaluationContextexpressionExpressionNodeThe expression node being evaluated.
operandVBTypeThe declared type of the operand.