Table of Contents

Namespace RDCore.SDK.Semantics.Static

Classes

ArgumentTypedFunctions

The functions of the standard library whose call is of the declared type of its argument: Abs, Int and Fix of a numeric value.

BarePrintStaticSemantics

Where a Print statement with no file number is a statement at all.

ByValArgumentStaticSemantics

RD-VBAL §5.6.13.1: where an argument can be written ByVal, as MS-VBA compiles it (recorded in Excel), which is not where MS-VBAL §5.6.13.1 says - only before an argument of an external procedure.

ClassModuleEventSemantics

The static semantics of what a class module declares about events: its Event declarations (MS-VBAL §5.2.4.3), its WithEvents variables (§5.2.3.1.2) and the procedures that handle an event of one (§5.3.1.8).

ConstantExpressionStaticSemantics

Whether the value of a constant is a constant expression (MS-VBAL §5.6.16.1): one that is evaluated once, statically, as MS-VBA evaluates it (recorded in Excel).

CurrentTypes

The class a declaration is of, as the composition has it now.

DeclarationShadowing

Tells what a local or a parameter hides (Hides): what its name means in the rest of the module.

DeclarationStaticSemanticsEvaluator

The static semantics of what a module declares, apart from what its procedures' bodies say: the declarations themselves.

DeclarationUsage

Counts how the declarations of a module are used by its code, from the expression facts of its procedures, where the count is the whole truth.

ExitStatementStaticSemantics

Where an Exit statement may be written: MS-VBAL §5.4.2.5 (Exit For), §5.4.2.7 (Exit Do), §5.4.2.17 (Exit Sub), §5.4.2.18 (Exit Function) and §5.4.2.19 (Exit Property).

ExpressionStaticSemanticsEvaluator

Recursively determines the declared type of a real, arbitrarily-nested expression tree.

FileStatementStaticSemantics

MS-VBAL §5.4.5 the file statements (static semantics), and the Name statement that sits beside them (RD-VBAL §5.4.5.13).

FormControlExtender

What a form adds to each of its controls: the members and events of the Microsoft Forms Control class, the extender every control of a form is wrapped in.

GraphicsStatementStaticSemantics

Where a Circle, Line, PSet or Scale statement draws.

ImplementsSemantics

The static semantics of the Implements directives of a class module (MS-VBAL §5.2.4.2) and of the implemented name declarations that follow from them (§5.3.1.9).

LetCoercionStaticSemantics

MS-VBAL 5.5.1.1 Let-coercion (static semantics)

MemberRoles

Tells which members of a class module are there to implement a member of an interface it Implements, or to handle an event of one of its WithEvents variables (MS-VBAL §5.3.1.8, §5.3.1.9).

MidStatementStaticSemantics

MS-VBAL §5.4.3.5 the Mid, MidB, Mid$ and MidB$ statements (static semantics).

NameClassificationStaticSemantics

What a name is classified as when it is no value (MS-VBAL §5.6.10, §5.6.12): a project, a procedural module, an enumeration. Each qualifies the names of what it declares (VBA.Len, Strings.Left, Color.Red), and none is a value, a variable or a procedure by itself.

ObjectClassInference

What a variable of no particular class - declared Object or Variant - is known to hold, from the code that assigns it: the classes of the objects it is Set to that are created by name (ObjectCreationFact), its candidate classes.

ObjectValueStaticSemantics

What an object is where a value is expected, at compile time: the static half of MS-VBAL §5.5.1.2.13's simple data value (MS-VBAL §5.5.1.1).

ParamArrayStaticSemantics

What a ParamArray parameter may be given to: Invalid ParamArray use (InvalidParamArrayUse) where it is passed as the argument of a ByRef parameter of a procedure of the code's own (MS-VBAL §5.3.1.11).

PublicMemberSemantics

The static semantics of what a module exposes: which types a public member may be declared with, and which members an object module may expose at all (MS-VBAL §5.2.3.1, §5.2.3.3, §5.3.1).

ReservedNameStaticSemantics

The functions of the standard library whose names are reserved names (MS-VBAL §3.3.5.2), which MS-VBA parses with the arguments they take: Abs, Fix, Int, Sgn, Len, LenB, the conversion functions, and String.

SetCoercionStaticSemantics

MS-VBAL 5.5.2.1 Set-coercion (static semantics)

StatementStaticSemanticsEvaluator

Recursively walks a real, arbitrarily-nested statement tree, evaluating every expression it contains via ExpressionStaticSemanticsEvaluator, threading the innermost enclosing With block's target type (MS-VBAL §5.6.15) through its body, checking Let/Set assignment coercion validity between an assignment's Target and Value, and checking that every label a jump statement names is defined (MS-VBAL §5.4.2.12–§5.4.2.16, §5.4.4.1, §5.4.4.2).

Structs

StaticSemanticsOptions

What the build and the language a body is analyzed for decide about which of its statements the static pass looks at, and which it rejects.

Enums

DeclarationRules

The rules of DeclarationStaticSemanticsEvaluator that depend on what else is defined.

ValueDestination

What a place that expects a value expects of an object, at compile time: what ObjectValueStaticSemantics checks the object it is given against (MS-VBAL §5.5.1.1, as MS-VBA compiles it).