Table of Contents

Enum ComparisonOperatorSemanticFlags

Namespace
RDCore.SDK.Semantics.Flags
Assembly
RDCore.SDK.dll

The semantic flags of a relational operator operation (MS-VBAL 5.6.9.5).

[Flags]
public enum ComparisonOperatorSemanticFlags

Fields

All = IntegralNumericEffectiveType | FixedPointNumericEffectiveType | FloatingPointNumericEffectiveType | HasNaNOperand | BooleanEffectiveType | ByteEffectiveType | IntegerEffectiveType | LongEffectiveType | LongLongEffectiveType | SingleEffectiveType | DoubleEffectiveType | CurrencyEffectiveType | DecimalEffectiveType | StringEffectiveType | StringComparisonBinary | StringComparisonText | NullEffectiveType | ErrorEffectiveType | HasStandardErrorCodes | IsVariantStringNumericException | IsVariantComparedWithStringAsText | LikePatternHasEmptyCharList | LikePatternIsInvalid | IsVariantStringThatIsNoValueRanked

Combines all values.

BooleanEffectiveType = 16

The semantic effective type of the comparison operation is VBBooleanType.

ByteEffectiveType = 32

The semantic effective type of the comparison operation is VBByteType.

CurrencyEffectiveType = 2048
DecimalEffectiveType = 4096
DoubleEffectiveType = 1024
ErrorEffectiveType = 131072

The semantic effective type of the comparison operation is VBErrorType.

FixedPointNumericEffectiveType = 2

The semantic effective type of the comparison operation is VBCurrencyType or VBDecimalType.

FloatingPointNumericEffectiveType = 4

The semantic effective type of the comparison operation is VBSingleType or VBDoubleType.

HasNaNOperand = 8

The operation involves one or more NaN floating-point values.

HasStandardErrorCodes = 262144

true if both Error values are between 0 and 65535 (standard error codes range).

👉 The result of a comparison operation where the effective type is VBErrorType is otherwise undefined.

IntegerEffectiveType = 64
IntegralNumericEffectiveType = 1

The semantic effective type of the comparison operation is an integral numeric data type.

IsVariantComparedWithStringAsText = 1048576

true if one operand is a VBVariant holding a number, a Date or a Boolean, and the other a String that is no VBVariant - a variable declared As String, a literal: the two are compared as text, as MS-VBA compares them.

👉 MS-VBAL §5.6.9.5 makes the effective type the number's, which makes a String that is no number a type mismatch (13); MS-VBA compares the text of the Variant's value with the String, as Microsoft Learn documents it (RD-VBAL §5.6.9.5).

IsVariantStringNumericException = 524288

true if both operands are VBVariant with one having a VBStringType subtype and the other any VBNumericType.

👉 In such cases the numeric VBVariant operand is always considered less than the string VBVariant operand.

IsVariantStringThatIsNoValueRanked = 8388608

true if one operand is a VBVariant holding a String that is no value of the effective type, and the other a number, a Date or a Boolean that is no VBVariant: the String ranks above it, whatever their values, as MS-VBA compares them.

👉 MS-VBAL §5.6.9.5 makes the String's conversion to the effective type a type mismatch (13); MS-VBA raises nothing, and ranks the two as it ranks two VBVariant operands (IsVariantStringNumericException; RD-VBAL §5.6.9.5).

LikePatternHasEmptyCharList = 2097152

true if the pattern of a Like operation is written in the code, and has a [] or a [!].

👉 MS-VBAL §5.6.9.6 makes either a list of no character; MS-VBA matches [] with no character at all, and [!] with a ! (RD-VBAL §5.6.9.6).

LikePatternIsInvalid = 4194304

true if the pattern of a Like operation is written in the code, and is not a valid like-pattern in the comparison mode of the operation: it has an unterminated list, or a range whose first character is above its last.

👉 MS-VBAL §5.6.9.6 raises error 93 (Invalid pattern string) for such a pattern; MS-VBA raises it only where a match reaches the invalid element (RD-VBAL §5.6.9.6).

LongEffectiveType = 128
LongLongEffectiveType = 256
NullEffectiveType = 65536

The semantic effective type of the comparison operation is VBNullType.

SingleEffectiveType = 512
StringComparisonBinary = 16384

A string comparison is made in a case-sensitive manner by comparing the byte values of each string.

StringComparisonText = 32768

A string comparison is made in a case-insentive manner according to the platform's host-defined regional settings.

StringEffectiveType = 8192

The semantic effective type of the comparison operation is VBStringType.