3.2.0 Literal Expressions
VBLiteralExpression (MS-VBAL §5.6.5) represents a value that is statically resolved to a VBTypedValue.
3.2.0.1 Static Symbols
The environment host defines a number of static symbols that are globally defined, on top of the global IStdConstantsModule:
|Type|Value|Literal (token)|
|VBBooleanType|VBBooleanValue|True,False|
|VBStringType|VBStringValue|VBEmptyString|
|VBNullType|VBNullValue|Null|
|VBVariantType|VBEmptyValue|Empty|
|VBObjectType|VBNothingValue|Nothing|
3.2.0.1.1 Instance Expressions - "Me"
Note
MS-VBAL §5.6.11 describes instance expressions as values with the declared type defined by the class module containing the enclosing procedure, statically invalid within a procedural ("standard") module. At run-time, it represents the current instance of the type defined by the enclosing class module and has this type as its value type.
It would be aligned with the specification to implement this "expression" not as such, but rather as a simple runtime artifact: the current object is a common concept in many programming languages (often expressed with the token this). The implementation could be as simple as having the runtime context inject a VBObjectValue presenting the default interface of the enclosing class type - pushing it to the stack frame of instance member calls as it would any parameter.
Tip
In other words, we can get this one "for free" by having the runtime inject an implicit Me (ByVal) parameter to all instance member calls, pointed at the current object.
⏮️ RD-VBAL §3.1 Attributes and Directives | ⏭️ RD-VBAL §3.3 Operators