Commit Graph

9 Commits

Author SHA1 Message Date
cmounce 3bddc3c85e Implement new algorithm for local label processing
This change allows qualified references to local labels from other
sections: you can do `#send section.local` and it will take you to the
appropriate `:.local` label. When `section.local` is ambiguous due to
sections/locals sharing the same names, the reference resolves to the
local in the first such section.
2025-07-11 02:18:17 -07:00
cmounce 3ff40241ee Add more error messages for local/anonymous labels 2025-07-06 01:06:11 -07:00
cmounce eee57848e0 Add tests for label-processing diagnostics 2025-07-05 23:30:10 -07:00
cmounce b65e188cb9 Flesh out support for namespaces 2025-06-22 01:10:47 -07:00
cmounce 84cec642a3 Use section numbers when resolving local labels
This changes the semantics of local labels. Previously, local labels
were just shorthand for writing out `name.local`, which meant if there
were multiple sections named "name", there could potentially be name
collisions.

This commit adds a unique numeric suffix to each section's ID string.
This guarantees that locals in one section won't interfere with those in
a different section.
2025-06-21 22:14:02 -07:00
cmounce 71906cf4b8 Add support for local labels 2025-06-20 02:14:13 -07:00
cmounce 0f59dd668a Finish adding anonymous labels, unit tests 2025-06-18 00:40:43 -07:00
cmounce 6ea50ac3f0 Switch unit tests to new label parser 2025-06-08 18:53:38 -07:00
cmounce 773ee19158 WIP Progress on parsing labels
- Add parsing for motion at start of line
- Start parsing if statements
- Add first file-based parsing test
- Implement Rule for `Box<dyn Rule>`
2025-05-19 01:25:29 -07:00