I am a Symbol Table. I am built based on a specific Microsoft Access project. I may contain information of other Microsoft Projects if my original project uses other Microsoft Access projects as dependency. I have two main instance variables: external holds a namespace which aggregates all the symbols declared within my main project. assembly holds namespaces per each associated (referenced) artifact: libraries or other Access projects.
The external namespace is named external as it holds not only the subhierarchies of symbols but also all publically visible elements (or the external visibility of the project).
external assembly allSymbols
Obtains a namespace for a given name
Exports a symbol table in ston format. Receives a file path as parameter (String | FileReference)
Imports a symbol table in ston format. Receives a file path as parameter (String | FileReference)
A kind denotes a kind of symbol.
Symbols are described with this kind of value to denote the nature of the artefacts they declare.
Like this, when we find a function declaration, we register the symbol of kind JinNSKind function
kind
Any symbol with this kind is related with a report
Any symbol with this kind is related with a property setter
Any symbol with this kind is related with a subprocedure
Any symbol with this kind is related with a global variable
Any symbol with this kind is related with a query
Any symbol with this kind is related with an class alias
Any symbol with this kind is related with a module
Any symbol with this kind is related with an class module
Any symbol with this kind is related with a form
Any symbol with this kind is related with an enumeration
Any symbol with this kind is related with an attribute
Any symbol with this kind is related with a function
Any symbol with this kind is related with a property letter
Any symbol with this kind is related with a property getter
Any symbol with this kind is related with a method
Any symbol with this kind is related with a reference
Any symbol with this kind is related with an enum value
Any symbol with this kind is related with a property
Any symbol with this kind is related with a user type
Any symbol with this kind is related with a variable
Any symbol with this kind is related with an event
Any symbol with this kind is related with an external function
Any symbol with this kind is related with a table
Any symbol with this kind is related with a field
Any symbol with this kind is related with an interface
Any symbol with this kind is related with a constant
Any symbol with this kind is related with a primitive type
Any symbol with this kind is related with an external subprocedure
Any symbol with this kind is related with a struct
Any symbol with this kind is related with a parameter
A name entry is a symbol which has a kind (JinNSKind - what it is) an owner (JinNSEntryOwner where it was defined).
parent name owner kind
Return all the entries where this element has been declared, starting by the inner-most element. Function, Module, Library, Project
Polimorphic with a namespace. If the given string matches this symbols name, it returns a collection with self within. Empty collection if not.
There are Five levels of namespace in VBA: Export (the things that are accessible externally from an assembly) Assembly (The configuration of a single VBA project) Reference (AccessModule / Library) Type (class, module, table, etc). Method / Function / Producedure.
parent tag name entries entriesMutex friends allSymbols
Return all symbols visible by in any friend namespace named as given.
Find any entry (sub-namespace included) with the name and kind given within the context of this (sub)namespace.
Returns an Anchor. An anchor is the path to take to find a specific symbol from the root namespace .
Return all the entries where this element has been declared, starting by the inner-most element. Function, Module, Library, Project
Return all symbols visible by in this namespace named as given.
Find any entry (sub-namespace included) with the name and kind given within the context of any "friend" (sub)namespace. (for example, in the context of a project, the friend namespaces are those of included libraries)
Subnamespaces are symbols (named entries) which contain other entries within. As a defined a named context (with the name of the class) and contains all the entries within representing other names (attributes, functions, etc).
parent tag name entries entriesMutex friends allSymbols owner path
Returns an Anchor. An anchor is the path to take to find a specific symbol from the root namespace .
Return all the entries where this element has been declared, starting by the inner-most element. Function, Module, Library, Project