summaryrefslogtreecommitdiff
path: root/src/stages
Commit message (Collapse)AuthorAge
* Support local identifiers as macro names and in macro definitionsBen Bridle2025-03-25
| | | | | | Macro names beginning with a ~ character will be prefixed with the name of the most recently defined label, and local invocations inside macro definition bodies will also expand correctly.
* Recognise : as a valid symbolBen Bridle2025-03-25
| | | | | | When parsing a standalone : character, the following characters were also being consumed and appended instead of the expected behaviour where the current token should end as soon as a : is encountered.
* Improve error reporting for macros invoked before definitionBen Bridle2025-03-25
| | | | | | These errors were only being correctly reported when the invocation was inside a macro body. The error report has been expanded to also report the location of the eventual matching macro definition.
* Fix incorrect block addressesBen Bridle2025-03-25
| | | | | The value used for every block open token was their own address, instead of the address of the matching block close token.
* Fix invocations not being recorded as symbol referencesBen Bridle2025-03-25
| | | | This was a significant oversight.
* Fix misleading variable nameBen Bridle2025-03-25
| | | | | This stage previously operated on semantic tokens, but was later changed to operate on syntactic tokens.
* Improve wording of error messagesBen Bridle2025-03-25
|
* Fix label definition issueBen Bridle2025-03-25
| | | | | Label definitions were being gathered in the bytecode stage, but then were incorrectly dropped instead of being used.
* Simplify syntactic catch-all branchBen Bridle2025-03-23
| | | | | A cascading if-else structure is more readable than a set of nested match expressions.
* Rewrite libraryBen Bridle2025-03-18