Currently, Namespaces are entirely isolated from one another.
It should be possible to perform a simple "import" or "uses" statement which gives access to the members of another Namespace.
Initially, these will require the identifiers used to be prefixed by the imported Namespace's name, and the entire Namespace will be imported. Later we can work on aliasing the identifiers, custom prefixes, selectively importing members (using their name without a prefix), etc.
(Alternatively, start with explicit imports, since there's already some logic in place for that.)
Circular dependencies should not be allowed, the parser and/or query system should handle these. (Most likely the parser to start.)
Once the basics are in place, we can hand off some of this to the query system (have it track imports), and also have the VHDL backend emit each namespace as its own package.
Currently, Namespaces are entirely isolated from one another.
It should be possible to perform a simple "import" or "uses" statement which gives access to the members of another Namespace.
Initially, these will require the identifiers used to be prefixed by the imported Namespace's name, and the entire Namespace will be imported. Later we can work on aliasing the identifiers, custom prefixes, selectively importing members (using their name without a prefix), etc. (Alternatively, start with explicit imports, since there's already some logic in place for that.)
Circular dependencies should not be allowed, the parser and/or query system should handle these. (Most likely the parser to start.)
Once the basics are in place, we can hand off some of this to the query system (have it track imports), and also have the VHDL backend emit each namespace as its own package.