| Commit message (Collapse) | Author | Age |
|
|
|
| |
The API of the extract_if method has changed to also take a range.
|
|
|
|
|
| |
Definitions were incorrectly not having resolved references associated
with them.
|
| |
|
|
|
|
|
| |
Previously, the Resolver::error method was only checking for undefined
symbols, and not also checking for redefined symbols.
|
|
|
|
| |
This is used for debugging symbol definition and resolution issues.
|
|
|
|
|
|
|
|
| |
As well as the already-implemented tracking of the existing definition
of redefinitions, the resolver will now also track the definition that
resolves each reference, and the references resolved by each definition.
Instead of using tuples to hold this information, named wrapper structs
have been created for each category.
|
| |
|
|
|
|
|
|
| |
A definition can resolve a reference in the same or a deeper namespace,
allowing for proper scoping and shadowing. Multiple definitions in the
same namespace cannot share a name.
|
|
This library can now carry out all stages of assembly from collecting
source fragments to resolving symbols to pruning unused libraries to
generating a single compiled source file.
Pretty-printing of state has also been implemented in this library.
The source tree hierarchy, symbol resolution errors, and file read
errors can all be printed in a tidy format.
|